Closed Roehrich closed 4 years ago
Nice source diving to see that I'm skipping the section data. I can add that in. Would you mind posting a result file here so I can include it for my unit testing? The smaller the better, and if you wouldn't mind including the expected output from MAPDL that would be helpful as well.
Thanks for your reply! I will send the data on Monday.
Hi, find attached a very small rst file, the corresponding input file as well as the expected output from MAPDL. Please let me know if you need any additional information. SHELL281.zip
Thanks for the sample file, it's exactly what I need to work on this.
ANSYS really buries the material properties and doesn't label everything. Still, making progress, and I should have something in a few days.
Hi, perfect - thanks for your efforts!
I've gotten the material properties working. There was enough information in the ANSYS header files included in the install that I could interpret the results for all material properties:
rst = pyansys.read_binary('file.rst')
rst.materials
{1: {'EX': 40000000000.0,
'EY': 10000000000.0,
'EZ': 10000000000.0,
'NUXY': 0.07500000000000001,
'NUYZ': 0.30000000000000004,
'NUXZ': 0.07500000000000001,
'GXY': 5000000000.0,
'GYZ': 5000000000.0,
'GXZ': 5000000000.0,
'PRXY': 0.30000000000000004,
'PRYZ': 0.30000000000000004,
'PRXZ': 0.30000000000000004},
2: {'EX': 40000000000.0,
'EY': 10000000000.0,
'EZ': 10000000000.0,
'NUXY': 0.07500000000000001,
'NUYZ': 0.30000000000000004,
'NUXZ': 0.07500000000000001,
'GXY': 5000000000.0,
'GYZ': 5000000000.0,
'GXZ': 5000000000.0,
'PRXY': 0.30000000000000004,
'PRYZ': 0.30000000000000004,
'PRXZ': 0.30000000000000004}}
However, it's a different story for the section data. Here's the raw output I've been able to read in:
for i, item in enumerate(rst.section_data[3]): print('%3d' % i, item)
0 2.0
1 538976288.0
2 538976288.0
3 0.003
4 3.0
5 9.0
6 3.0
7 1.0
8 1.0
9 0.0
10 0.7825633252851375
11 -1.103929041252917e-18
12 0.6265587724551406
13 1.0
14 0.0
15 0.0
16 0.0
17 0.0
18 0.0
19 0.0
20 0.0
21 0.0
22 0.0
23 1.0
24 1.0
25 1.0
26 1.0
27 0.0
28 0.0
29 0.001
30 2.0
31 0.0
32 3.0
33 0.001
34 2.0
35 45.0
36 3.0
37 0.001
38 2.0
39 -45.0
40 3.0
41 2.0
42 2.0
43 2.0
44 2.0
45 2.0
46 2.0
47 2.0
48 2.0
49 2.0
50 1.0
51 1.0
52 1.0
53 2.0
54 2.0
55 2.0
56 3.0
57 3.0
58 3.0
59 0.0
60 0.0
61 0.0
62 45.0
63 45.0
64 45.0
65 -45.0
66 -45.0
67 -45.0
68 0.1111111111111111
69 0.4444444444444444
70 0.1111111111111111
71 0.1111111111111111
72 0.4444444444444444
73 0.1111111111111111
74 0.1111111111111111
75 0.4444444444444444
76 0.1111111111111111
77 -1.0
78 -0.6666666666666666
79 -0.3333333333333333
80 -0.3333333333333333
81 0.0
82 0.3333333333333333
83 0.3333333333333333
84 0.6666666666666666
85 1.0
86 -2.2205146933576494e-17
87 0.5438245756189379
88 0.784905128619397
89 0.784905128619397
90 0.7491814833845594
91 0.5729093986365412
92 0.5729093986365411
93 0.3384154725112908
94 -1.3372214807262066e-16
95 -9.962450570801805e-18
96 0.38281646048078116
97 0.6298052964038664
98 0.6298052964038664
99 0.8837920249365444
100 0.8687141075226417
101 0.8687141075226417
102 0.5470920816260001
103 -1.4634568481518775e-17
104 0.0
Here's what I've been able to interpret so far:
# sec[3] # total thickness
# sec[4] # number of layers (?)
# sec[5] # total integration points (?)
# ...
# sec[29] # start of a layer (thickness)
# - MatID
# - Ori. Angle
# - Num Intg.
# sec[33] # start of another layer
# sec[37] # start of another layer
These indices probably only work for this section type (which I'm not sure where it's defined in the section data). Will these work for you? I'd really like to list the section data as a dictionary as with the result data, but there's no information in the header files about how the section data is written out.
Great work - Thanks a lot for the tremendous effort! I had some problems compiling the code but now it's working perfectly. Do you have an idea if the failure critieria data for the materials (see tblist,fcli,... in MAPDL.inp) could be accessed, too?
Hi,
I was able to read nodal stresses of layered SHELL elements without any problems from a rst file. Really great! Is there a possibility for postprocessing purpose to get as well the corresponding section ID? I saw that load_elements from the _binary_reader should be able to get this but the data is currently skipped. There is a working alternative to read the data from the .cdb file. But for that I would need to write a cdb file from Workbench - the dat file seems to be not readable. To get all the data from rst file would be a much nicer approach I think. Further I would need to read the section data and the corresponding material data to be able to perform the postprocessing. I was not able to find a way for that - is there a possibility?
Thanks a lot for your help and the great work!