added basic abaqus inp parser

This commit is contained in:
Jukka Aho
2015-06-25 19:58:26 +03:00
parent 1edbdc305a
commit d69dcd3920
5 changed files with 721 additions and 4 deletions
+566
View File
@@ -0,0 +1,566 @@
**NSET COUNT = 298
*NODE,NSET=NALL
1, 20.00000, 5.00000, 5.00000
2, 25.00000, 5.00000, 5.00000
3, 40.00000, 5.00000, 5.00000
4, 42.50000, 5.00000, 2.50000
5, 47.50000, 7.50000, 5.00000
6, 42.50000, 7.50000, 5.00000
7, 85.00000, 5.00000, 5.00000
8, 90.00000, 5.00000, 5.00000
9, 80.00000, 5.00000, 5.00000
10, 77.50000, 5.00000, 2.50000
11, 92.50000, 2.50000, 5.00000
12, 97.50000, 2.50000, 5.00000
13, 95.00000, 7.50000, 7.50000
14, 97.50000, 5.00000, 2.50000
15, 92.50000, 5.00000, 2.50000
16, 97.50000, 7.50000, 5.00000
17, 2.50000, 2.50000, 5.00000
18, 5.00000, 2.50000, 2.50000
19, 35.00000, 5.00000, 5.00000
20, 10.00000, 5.00000, 5.00000
21, 15.00000, 5.00000, 5.00000
22, 55.00000, 2.50000, 7.50000
23, 77.50000, 5.00000, 7.50000
24, 75.00000, 7.50000, 7.50000
25, 75.00000, 2.50000, 7.50000
26, 75.00000, 5.00000, 5.00000
27, 75.00000, 2.50000, 2.50000
28, 75.00000, 7.50000, 2.50000
29, 2.50000, 7.50000, 5.00000
30, 7.50000, 7.50000, 5.00000
31, 5.00000, 5.00000, 5.00000
32, 7.50000, 2.50000, 5.00000
33, 5.00000, 2.50000, 7.50000
34, 30.00000, 5.00000, 5.00000
35, 50.36999, 4.74900, 5.47225
36, 50.18499, 2.37450, 7.73613
37, 47.68499, 4.87450, 7.73613
38, 52.68499, 4.87450, 7.73613
39, 45.00000, 2.50000, 7.50000
40, 47.68499, 2.37450, 5.23613
41, 52.68499, 2.37450, 5.23613
42, 55.00000, 7.50000, 7.50000
43, 55.00000, 5.00000, 5.00000
44, 52.68499, 7.37450, 5.23613
45, 50.18499, 7.37450, 7.73613
46, 50.18499, 7.37450, 2.73613
47, 47.50000, 5.00000, 2.50000
48, 50.18499, 2.37450, 2.73613
49, 52.68499, 4.87450, 2.73613
50, 55.00000, 2.50000, 2.50000
51, 55.00000, 7.50000, 2.50000
52, 65.13577, 4.94114, 4.99547
53, 62.56788, 2.47057, 7.49773
54, 62.56788, 2.47057, 2.49773
55, 60.06788, 2.47057, 4.99773
56, 60.06788, 7.47057, 4.99773
57, 57.50000, 5.00000, 2.50000
58, 57.50000, 5.00000, 7.50000
59, 62.56788, 7.47057, 7.49773
60, 67.56788, 7.47057, 7.49773
61, 67.56788, 2.47057, 7.49773
62, 67.56788, 2.47057, 2.49773
63, 70.06788, 2.47057, 4.99773
64, 70.06788, 7.47057, 4.99773
65, 72.50000, 5.00000, 7.50000
66, 70.06788, 4.97057, 2.49773
67, 67.56788, 7.47057, 2.49773
68, 62.56788, 7.47057, 2.49773
69, 50.00000, 10.00000, 0.00000
70, 50.00000, 10.00000, 10.00000
71, 55.00000, 10.00000, 5.00000
72, 50.00000, 10.00000, 5.00000
73, 52.50000, 10.00000, 7.50000
74, 52.50000, 10.00000, 2.50000
75, 60.00000, 10.00000, 10.00000
76, 55.00000, 10.00000, 10.00000
77, 57.50000, 10.00000, 7.50000
78, 60.00000, 10.00000, 0.00000
79, 55.00000, 10.00000, 0.00000
80, 57.50000, 10.00000, 2.50000
81, 60.00000, 10.00000, 5.00000
82, 100.00000, 10.00000, 0.00000
83, 95.00000, 10.00000, 5.00000
84, 100.00000, 10.00000, 10.00000
85, 97.50000, 10.00000, 2.50000
86, 97.50000, 10.00000, 7.50000
87, 100.00000, 10.00000, 5.00000
88, 90.00000, 10.00000, 10.00000
89, 92.50000, 10.00000, 7.50000
90, 95.00000, 10.00000, 10.00000
91, 90.00000, 10.00000, 0.00000
92, 95.00000, 10.00000, 0.00000
93, 92.50000, 10.00000, 2.50000
94, 90.00000, 10.00000, 5.00000
95, 70.00000, 10.00000, 10.00000
96, 80.00000, 10.00000, 10.00000
97, 75.00000, 10.00000, 5.00000
98, 75.00000, 10.00000, 10.00000
99, 77.50000, 10.00000, 7.50000
100, 72.50000, 10.00000, 7.50000
101, 80.00000, 10.00000, 0.00000
102, 80.00000, 10.00000, 5.00000
103, 77.50000, 10.00000, 2.50000
104, 70.00000, 10.00000, 0.00000
105, 72.50000, 10.00000, 2.50000
106, 70.00000, 10.00000, 5.00000
107, 75.00000, 10.00000, 0.00000
108, 0.00000, 10.00000, 0.00000
109, 0.00000, 10.00000, 10.00000
110, 10.00000, 10.00000, 0.00000
111, 0.00000, 10.00000, 5.00000
112, 5.00000, 10.00000, 5.00000
113, 5.00000, 10.00000, 0.00000
114, 10.00000, 10.00000, 10.00000
115, 10.00000, 10.00000, 5.00000
116, 5.00000, 10.00000, 10.00000
117, 20.00000, 10.00000, 0.00000
118, 20.00000, 10.00000, 10.00000
119, 30.00000, 10.00000, 0.00000
120, 20.00000, 10.00000, 5.00000
121, 25.00000, 10.00000, 5.00000
122, 25.00000, 10.00000, 0.00000
123, 30.00000, 10.00000, 10.00000
124, 30.00000, 10.00000, 5.00000
125, 25.00000, 10.00000, 10.00000
126, 65.00000, 10.00000, 0.00000
127, 65.00000, 10.00000, 5.00000
128, 65.00000, 10.00000, 10.00000
129, 40.00000, 10.00000, 10.00000
130, 40.00000, 10.00000, 0.00000
131, 45.00000, 10.00000, 10.00000
132, 45.00000, 10.00000, 5.00000
133, 40.00000, 10.00000, 5.00000
134, 45.00000, 10.00000, 0.00000
135, 15.00000, 10.00000, 5.00000
136, 15.00000, 10.00000, 0.00000
137, 35.00000, 10.00000, 0.00000
138, 35.00000, 10.00000, 5.00000
139, 85.00000, 10.00000, 5.00000
140, 85.00000, 10.00000, 0.00000
141, 85.00000, 10.00000, 10.00000
142, 35.00000, 10.00000, 10.00000
143, 15.00000, 10.00000, 10.00000
144, 55.00000, 5.00000, 0.00000
145, 50.00000, 0.00000, 0.00000
146, 52.50000, 7.50000, 0.00000
147, 52.50000, 2.50000, 0.00000
148, 50.00000, 5.00000, 0.00000
149, 60.00000, 0.00000, 0.00000
150, 57.50000, 2.50000, 0.00000
151, 55.00000, 0.00000, 0.00000
152, 57.50000, 7.50000, 0.00000
153, 60.00000, 5.00000, 0.00000
154, 10.00000, 0.00000, 0.00000
155, 0.00000, 0.00000, 0.00000
156, 5.00000, 5.00000, 0.00000
157, 5.00000, 0.00000, 0.00000
158, 2.50000, 2.50000, 0.00000
159, 7.50000, 2.50000, 0.00000
160, 7.50000, 7.50000, 0.00000
161, 10.00000, 5.00000, 0.00000
162, 0.00000, 5.00000, 0.00000
163, 2.50000, 7.50000, 0.00000
164, 80.00000, 0.00000, 0.00000
165, 70.00000, 0.00000, 0.00000
166, 75.00000, 5.00000, 0.00000
167, 75.00000, 0.00000, 0.00000
168, 72.50000, 2.50000, 0.00000
169, 77.50000, 2.50000, 0.00000
170, 77.50000, 7.50000, 0.00000
171, 80.00000, 5.00000, 0.00000
172, 70.00000, 5.00000, 0.00000
173, 72.50000, 7.50000, 0.00000
174, 45.00000, 5.00000, 0.00000
175, 40.00000, 0.00000, 0.00000
176, 40.00000, 5.00000, 0.00000
177, 45.00000, 0.00000, 0.00000
178, 90.00000, 0.00000, 0.00000
179, 100.00000, 0.00000, 0.00000
180, 90.00000, 5.00000, 0.00000
181, 95.00000, 5.00000, 0.00000
182, 95.00000, 0.00000, 0.00000
183, 85.00000, 0.00000, 0.00000
184, 85.00000, 5.00000, 0.00000
185, 65.00000, 5.00000, 0.00000
186, 65.00000, 0.00000, 0.00000
187, 30.00000, 0.00000, 0.00000
188, 30.00000, 5.00000, 0.00000
189, 35.00000, 5.00000, 0.00000
190, 35.00000, 0.00000, 0.00000
191, 20.00000, 0.00000, 0.00000
192, 25.00000, 0.00000, 0.00000
193, 25.00000, 5.00000, 0.00000
194, 15.00000, 0.00000, 0.00000
195, 15.00000, 5.00000, 0.00000
196, 20.00000, 5.00000, 0.00000
197, 100.00000, 5.00000, 0.00000
198, 55.00000, 0.00000, 5.00000
199, 45.00000, 0.00000, 5.00000
200, 52.50000, 0.00000, 2.50000
201, 50.00000, 0.00000, 5.00000
202, 47.50000, 0.00000, 2.50000
203, 50.00000, 0.00000, 10.00000
204, 40.00000, 0.00000, 10.00000
205, 47.50000, 0.00000, 7.50000
206, 45.00000, 0.00000, 10.00000
207, 42.50000, 0.00000, 7.50000
208, 42.50000, 0.00000, 2.50000
209, 40.00000, 0.00000, 5.00000
210, 52.50000, 0.00000, 7.50000
211, 60.00000, 0.00000, 10.00000
212, 57.50000, 0.00000, 7.50000
213, 55.00000, 0.00000, 10.00000
214, 57.50000, 0.00000, 2.50000
215, 60.00000, 0.00000, 5.00000
216, 0.00000, 0.00000, 10.00000
217, 5.00000, 0.00000, 5.00000
218, 10.00000, 0.00000, 10.00000
219, 2.50000, 0.00000, 7.50000
220, 7.50000, 0.00000, 7.50000
221, 5.00000, 0.00000, 10.00000
222, 7.50000, 0.00000, 2.50000
223, 10.00000, 0.00000, 5.00000
224, 2.50000, 0.00000, 2.50000
225, 0.00000, 0.00000, 5.00000
226, 75.00000, 0.00000, 5.00000
227, 77.50000, 0.00000, 2.50000
228, 72.50000, 0.00000, 2.50000
229, 70.00000, 0.00000, 10.00000
230, 72.50000, 0.00000, 7.50000
231, 70.00000, 0.00000, 5.00000
232, 80.00000, 0.00000, 10.00000
233, 80.00000, 0.00000, 5.00000
234, 77.50000, 0.00000, 7.50000
235, 75.00000, 0.00000, 10.00000
236, 90.00000, 0.00000, 10.00000
237, 90.00000, 0.00000, 5.00000
238, 85.00000, 0.00000, 5.00000
239, 85.00000, 0.00000, 10.00000
240, 30.00000, 0.00000, 10.00000
241, 30.00000, 0.00000, 5.00000
242, 25.00000, 0.00000, 5.00000
243, 20.00000, 0.00000, 10.00000
244, 20.00000, 0.00000, 5.00000
245, 25.00000, 0.00000, 10.00000
246, 100.00000, 0.00000, 10.00000
247, 95.00000, 0.00000, 5.00000
248, 95.00000, 0.00000, 10.00000
249, 100.00000, 0.00000, 5.00000
250, 65.00000, 0.00000, 5.00000
251, 35.00000, 0.00000, 5.00000
252, 15.00000, 0.00000, 5.00000
253, 15.00000, 0.00000, 10.00000
254, 35.00000, 0.00000, 10.00000
255, 65.00000, 0.00000, 10.00000
256, 100.00000, 5.00000, 5.00000
257, 100.00000, 5.00000, 10.00000
258, 55.00000, 5.00000, 10.00000
259, 45.00000, 5.00000, 10.00000
260, 52.50000, 2.50000, 10.00000
261, 50.00000, 5.00000, 10.00000
262, 47.50000, 2.50000, 10.00000
263, 42.50000, 2.50000, 10.00000
264, 42.50000, 7.50000, 10.00000
265, 47.50000, 7.50000, 10.00000
266, 40.00000, 5.00000, 10.00000
267, 75.00000, 5.00000, 10.00000
268, 77.50000, 7.50000, 10.00000
269, 77.50000, 2.50000, 10.00000
270, 80.00000, 5.00000, 10.00000
271, 72.50000, 2.50000, 10.00000
272, 72.50000, 7.50000, 10.00000
273, 70.00000, 5.00000, 10.00000
274, 52.50000, 7.50000, 10.00000
275, 57.50000, 7.50000, 10.00000
276, 57.50000, 2.50000, 10.00000
277, 60.00000, 5.00000, 10.00000
278, 5.00000, 5.00000, 10.00000
279, 2.50000, 7.50000, 10.00000
280, 7.50000, 7.50000, 10.00000
281, 0.00000, 5.00000, 10.00000
282, 2.50000, 2.50000, 10.00000
283, 7.50000, 2.50000, 10.00000
284, 10.00000, 5.00000, 10.00000
285, 95.00000, 5.00000, 10.00000
286, 97.50000, 2.50000, 10.00000
287, 92.50000, 2.50000, 10.00000
288, 97.50000, 7.50000, 10.00000
289, 92.50000, 7.50000, 10.00000
290, 90.00000, 5.00000, 10.00000
291, 85.00000, 5.00000, 10.00000
292, 65.00000, 5.00000, 10.00000
293, 15.00000, 5.00000, 10.00000
294, 25.00000, 5.00000, 10.00000
295, 20.00000, 5.00000, 10.00000
296, 35.00000, 5.00000, 10.00000
297, 30.00000, 5.00000, 10.00000
298, 0.00000, 5.00000, 5.00000
**
**ELSET COUNT = 120
**HWCOLOR COMP 36 1
*ELEMENT, TYPE=C3D10, ELSET=Body1
1, 243, 240, 191, 117, 245, 242, 244,
1, 2, 196
2, 204, 199, 175, 130, 207, 208, 209,
3, 4, 176
3, 259, 70, 69, 130, 265, 72, 5,
6, 132, 134
4, 145, 175, 199, 130, 177, 208, 202,
174, 176, 4
5, 96, 88, 236, 178, 141, 290, 291,
7, 8, 237
6, 96, 101, 164, 97, 102, 171, 9,
99, 103, 10
7, 236, 88, 285, 178, 290, 289, 287,
237, 8, 11
8, 285, 179, 178, 83, 12, 182, 11,
13, 14, 15
9, 84, 246, 285, 82, 257, 286, 288,
87, 256, 16
10, 155, 216, 278, 109, 225, 282, 17,
298, 281, 279
11, 155, 217, 154, 156, 224, 222, 157,
158, 18, 159
12, 204, 175, 240, 130, 209, 251, 254,
3, 176, 19
13, 114, 218, 154, 117, 284, 223, 20,
135, 21, 195
14, 203, 258, 211, 198, 260, 276, 213,
210, 22, 212
15, 96, 164, 101, 91, 9, 171, 102,
139, 184, 140
16, 232, 96, 164, 226, 270, 9, 233,
234, 23, 227
17, 97, 267, 226, 96, 24, 25, 26,
99, 268, 23
18, 164, 166, 226, 97, 169, 27, 227,
10, 28, 26
19, 179, 82, 91, 83, 197, 92, 181,
14, 85, 93
20, 236, 285, 246, 178, 287, 286, 248,
237, 11, 247
21, 88, 178, 91, 83, 8, 180, 94,
89, 15, 93
22, 267, 232, 229, 226, 269, 235, 271,
25, 234, 230
23, 108, 109, 156, 110, 111, 29, 163,
113, 112, 160
24, 114, 154, 110, 117, 20, 161, 115,
135, 195, 136
25, 156, 114, 278, 154, 30, 280, 31,
159, 20, 32
26, 278, 154, 217, 156, 32, 222, 33,
31, 159, 18
27, 108, 109, 155, 156, 111, 298, 162,
163, 29, 158
28, 114, 154, 156, 110, 20, 159, 30,
115, 161, 160
29, 109, 114, 278, 156, 116, 280, 279,
29, 30, 31
30, 278, 155, 156, 217, 17, 158, 31,
33, 224, 18
31, 109, 155, 156, 278, 298, 158, 29,
279, 17, 31
32, 164, 101, 166, 97, 171, 170, 169,
10, 103, 28
33, 109, 114, 156, 110, 116, 30, 29,
112, 115, 160
34, 165, 226, 164, 166, 228, 227, 167,
168, 27, 169
35, 285, 82, 83, 84, 16, 85, 13,
288, 87, 86
36, 204, 240, 129, 130, 254, 296, 266,
3, 19, 133
37, 259, 129, 70, 130, 264, 131, 265,
6, 133, 132
38, 240, 118, 123, 119, 294, 125, 297,
34, 121, 124
39, 240, 175, 187, 119, 251, 190, 241,
34, 189, 188
40, 240, 119, 191, 117, 34, 193, 242,
2, 122, 196
41, 240, 118, 119, 117, 294, 121, 34,
2, 120, 122
42, 243, 191, 154, 117, 244, 194, 252,
1, 196, 195
43, 114, 118, 243, 117, 143, 295, 293,
135, 120, 1
44, 218, 243, 154, 117, 253, 252, 223,
21, 1, 195
45, 129, 240, 123, 119, 296, 297, 142,
138, 34, 124
46, 240, 187, 191, 119, 241, 192, 242,
34, 188, 193
47, 114, 243, 218, 117, 293, 253, 284,
135, 1, 21
48, 203, 259, 258, 35, 262, 261, 260,
36, 37, 38
49, 203, 199, 259, 35, 205, 39, 262,
36, 40, 37
50, 203, 198, 199, 35, 210, 201, 205,
36, 41, 40
51, 203, 258, 198, 35, 260, 22, 210,
36, 38, 41
52, 258, 71, 198, 35, 42, 43, 22,
38, 44, 41
53, 258, 70, 71, 35, 274, 73, 42,
38, 45, 44
54, 70, 69, 71, 35, 72, 74, 73,
45, 46, 44
55, 259, 69, 70, 35, 5, 72, 265,
37, 46, 45
56, 258, 259, 70, 35, 261, 265, 274,
38, 37, 45
57, 259, 69, 199, 130, 5, 47, 39,
6, 134, 4
58, 35, 259, 69, 199, 37, 5, 46,
40, 39, 47
59, 179, 82, 83, 285, 197, 85, 14,
12, 16, 13
60, 145, 69, 199, 35, 148, 47, 202,
48, 46, 40
61, 145, 144, 69, 35, 147, 146, 148,
48, 49, 46
62, 145, 198, 144, 35, 200, 50, 147,
48, 41, 49
63, 145, 199, 198, 35, 202, 201, 200,
48, 40, 41
64, 198, 71, 144, 35, 43, 51, 50,
41, 44, 49
65, 69, 144, 71, 35, 146, 51, 74,
46, 49, 44
66, 211, 149, 198, 52, 215, 214, 212,
53, 54, 55
67, 198, 71, 52, 149, 43, 56, 55,
214, 57, 54
68, 71, 144, 149, 198, 51, 150, 57,
43, 50, 214
69, 198, 258, 75, 71, 22, 275, 58,
43, 42, 77
70, 211, 258, 75, 198, 276, 275, 277,
212, 22, 58
71, 75, 198, 52, 211, 58, 55, 59,
277, 212, 53
72, 95, 211, 75, 52, 292, 277, 128,
60, 53, 59
73, 229, 211, 95, 52, 255, 292, 273,
61, 53, 60
74, 229, 165, 211, 52, 231, 250, 255,
61, 62, 53
75, 229, 226, 165, 52, 230, 228, 231,
61, 63, 62
76, 226, 97, 52, 229, 26, 64, 63,
230, 65, 61
77, 97, 267, 229, 226, 24, 271, 65,
26, 25, 230
78, 226, 97, 166, 52, 26, 28, 27,
63, 64, 66
79, 165, 226, 166, 52, 228, 27, 168,
62, 63, 66
80, 165, 166, 104, 52, 168, 173, 172,
62, 66, 67
81, 165, 104, 78, 52, 172, 126, 185,
62, 67, 68
82, 149, 165, 78, 52, 186, 185, 153,
54, 62, 68
83, 211, 165, 149, 52, 250, 186, 215,
53, 62, 54
84, 149, 71, 52, 78, 57, 56, 54,
153, 80, 68
85, 78, 144, 149, 71, 152, 150, 153,
80, 51, 57
86, 75, 71, 78, 52, 77, 80, 81,
59, 56, 68
87, 71, 198, 52, 75, 43, 55, 56,
77, 58, 59
88, 95, 75, 78, 52, 128, 81, 127,
60, 59, 68
89, 95, 78, 104, 52, 127, 126, 106,
60, 68, 67
90, 95, 104, 97, 52, 106, 105, 100,
60, 67, 64
91, 166, 97, 104, 52, 28, 105, 173,
66, 64, 67
92, 95, 267, 229, 97, 272, 271, 273,
100, 24, 65
93, 229, 97, 52, 95, 65, 64, 61,
273, 100, 60
94, 259, 204, 129, 130, 263, 266, 264,
6, 3, 133
95, 240, 130, 175, 119, 19, 176, 251,
34, 137, 189
96, 129, 130, 240, 119, 133, 19, 296,
138, 137, 34
97, 285, 178, 88, 83, 11, 8, 289,
13, 15, 89
98, 218, 154, 217, 278, 223, 222, 220,
283, 32, 33
99, 226, 96, 164, 97, 23, 9, 227,
26, 99, 10
100, 96, 88, 178, 91, 141, 8, 7,
139, 94, 180
101, 145, 199, 69, 130, 202, 47, 148,
174, 4, 134
102, 96, 236, 164, 178, 291, 238, 9,
7, 237, 183
103, 96, 178, 164, 91, 7, 183, 9,
139, 180, 184
104, 246, 285, 179, 178, 286, 12, 249,
247, 11, 182
105, 166, 101, 104, 97, 170, 107, 173,
28, 103, 105
106, 285, 88, 84, 83, 289, 90, 288,
13, 89, 86
107, 145, 198, 149, 144, 200, 214, 151,
147, 50, 150
108, 82, 246, 285, 179, 256, 286, 16,
197, 249, 12
109, 258, 70, 75, 71, 274, 76, 275,
42, 73, 77
110, 96, 267, 226, 232, 268, 25, 23,
270, 269, 234
111, 243, 118, 240, 117, 295, 294, 245,
1, 120, 2
112, 96, 236, 232, 164, 291, 239, 270,
9, 238, 233
113, 216, 278, 218, 217, 282, 283, 221,
219, 33, 220
114, 217, 216, 278, 155, 219, 282, 33,
224, 225, 17
115, 69, 144, 78, 71, 146, 152, 79,
74, 51, 80
116, 154, 114, 278, 218, 20, 280, 32,
223, 284, 283
117, 179, 91, 178, 83, 181, 180, 182,
14, 93, 15
118, 203, 204, 259, 199, 206, 263, 262,
205, 207, 39
119, 96, 267, 95, 97, 268, 272, 98,
99, 24, 100
120, 259, 199, 204, 130, 39, 207, 263,
6, 4, 3
**
**NSET COUNT = 9
*NSET, NSET=SUPPORT
108, 109, 111, 155, 162, 216, 225, 281,
298,
**NSET COUNT = 9
*NSET, NSET=LOAD
82, 84, 87, 179, 197, 246, 249, 256,
257,
**NSET COUNT = 83
*NSET, NSET=TOP
70, 75, 76, 84, 88, 90, 95, 96,
98, 109, 114, 116, 118, 123, 125, 128,
129, 131, 141, 142, 143, 203, 204, 206,
211, 213, 216, 218, 221, 229, 232, 235,
236, 239, 240, 243, 245, 246, 248, 253,
254, 255, 257, 258, 259, 260, 261, 262,
263, 264, 265, 266, 267, 268, 269, 270,
271, 272, 273, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297,
+2 -3
View File
@@ -1,13 +1,12 @@
# This file is a part of JuliaFEM.
# This file is a part of JuliaFEM.
# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md
module JuliaFEM
VERSION < v"0.4-" && using Docile
# import solvers
include("elasticity_solver.jl")
include("xdmf.jl")
#using elasticity_solver
include("abaqus_reader.jl")
export Model, new_model, new_field, get_field, add_nodes, get_nodes, add_elements, get_elements
+132
View File
@@ -0,0 +1,132 @@
# This file is a part of JuliaFEM. License is MIT: https://github.com/ovainola/JuliaFEM/blob/master/README.md
module abaqus_reader
using Logging
@Logging.configure(level=DEBUG)
VERSION < v"0.4-" && using Docile
eldims = Dict("C3D10" => 10)
global handlers = Dict()
"""
Register new handler for parser
"""
function add_handler(section, function_name)
handlers[section] = function_name
end
function create_or_get(model, key)
if !(key in keys(model))
model[key] = Dict()
end
return model[key]
end
function parse_header(header_line)
args = map(s -> strip(s), split(header_line, ","))
args[1] = strip(args[1], '*')
d = Dict({"section" => args[1]})
options = Dict()
for k in args[2:end]
args2 = split(k, "=")
options[args2[1]] = args2[2]
end
d["options"] = options
return d
end
function parse_node_section(model, header, data)
nodes = create_or_get(model, "nodes")
for line in split(data, "\n")
m = matchall(r"[-0-9.]+", line)
id = parse(Int, m[1])
coords = float(m[2:end])
nodes[id] = coords
end
end
function parse_element_section(model, header, data)
eltype = header["options"]["TYPE"]
if !(eltype in keys(eldims))
throw("Element $eltype dimension information missing")
end
eldim = eldims[eltype]
m = matchall(r"[0-9]+", data)
m = map(integer, m)
elements = create_or_get(model, "elements")
m = reshape(m, eldim+1, round(Int, length(m)/(eldim+1)))
nel = size(m)[2]
Logging.debug("$nel elements found")
for i=1:nel
elements[m[1,i]] = m[2:end,i]
end
if "ELSET" in keys(header["options"])
elsets = create_or_get(model, "elsets")
elset_name = header["options"]["ELSET"]
Logging.info("Creating ELSET $elset_name")
elsets[elset_name] = Int64[]
for i=1:nel
push!(elsets[elset_name], m[1,i])
end
end
end
function parse_nodeset_section(model, header, data)
nset_name = header["options"]["NSET"]
Logging.debug("Creating node set $nset_name")
m = matchall(r"[0-9]+", data)
node_ids = map(integer, m)
nsets = create_or_get(model, "nsets")
nsets[nset_name] = Int64[]
for j in node_ids
push!(nsets[nset_name], j)
end
end
function parse_abaqus(fid)
model = Dict()
section = None
header = None
data = ""
Logging.info("Registered handlers: $(keys(handlers))")
function process_section(section)
if section == None
return
end
if !(section in keys(handlers))
Logging.info("Don't know what to do with data in section $section")
Logging.info("Skipping $(length(data)) bytes of unknown data")
return
end
handlers[section](model, header, strip(data))
data = ""
end
for line in eachline(fid)
if beginswith(line, "**")
continue
end
if beginswith(line, "*")
process_section(section)
header = parse_header(line)
Logging.debug("Found ", header["section"], " section")
section = header["section"]
continue
end
data *= line
end
process_section(section)
return model
end
# add handlers
add_handler("NODE", parse_node_section)
add_handler("ELEMENT", parse_element_section)
add_handler("NSET", parse_nodeset_section)
end
+4 -1
View File
@@ -102,5 +102,8 @@ function xdmf_new_field(grid, name, source, data)
add_text(dataitem, join(data, " "))
end
function xdmf_save_model(xdoc, filename)
save_file(xdoc, filename)
end
end
end
+17
View File
@@ -0,0 +1,17 @@
using FactCheck
using Logging
@Logging.configure(level=INFO)
using JuliaFEM.abaqus_reader: parse_abaqus
facts("test import abaqus model") do
fid = open("../geometry/3d_beam/palkki.inp")
model = parse_abaqus(fid)
close(fid)
@fact length(model["nodes"]) => 298
@fact length(model["elements"]) => 120
@fact length(model["elsets"]["Body1"]) => 120
@fact length(model["nsets"]["SUPPORT"]) => 9
@fact length(model["nsets"]["LOAD"]) => 9
@fact length(model["nsets"]["TOP"]) => 83
end