1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 
6 #ifndef INC_HECMW_MESH_DEFINE
7 #define INC_HECMW_MESH_DEFINE
8 
9 #define HECMW_COMMON_E_ALLOCATION 1111111
10 #define HECMW_COMMON_E_OUT_OF_RANGE 1111112
11 #define HECMW_COMMON_W_NO_EQN_BLOCK 1111113
12 
13 /*
14  *   element types in HEC-MW
15  */
16 #define HECMW_ETYPE_MAX 3614
17 #define HECMW_ETYPE_ROD1 111
18 #define HECMW_ETYPE_ROD2 112
19 #define HECMW_ETYPE_TRI1 231
20 #define HECMW_ETYPE_TRI2 232
21 #define HECMW_ETYPE_TRI22 2322
22 #define HECMW_ETYPE_QUA1 241
23 #define HECMW_ETYPE_QUA2 242
24 #define HECMW_ETYPE_ROD31 301
25 #define HECMW_ETYPE_TET1 341
26 #define HECMW_ETYPE_TET1_4 3414
27 #define HECMW_ETYPE_TET2 342
28 #define HECMW_ETYPE_TET22 3422
29 #define HECMW_ETYPE_PRI1 351
30 #define HECMW_ETYPE_PRI2 352
31 #define HECMW_ETYPE_HEX1 361
32 #define HECMW_ETYPE_HEX1_4 3614
33 #define HECMW_ETYPE_HEX2 362
34 #define HECMW_ETYPE_PYR1 371
35 #define HECMW_ETYPE_PYR2 372
36 #define HECMW_ETYPE_MST1 431
37 #define HECMW_ETYPE_MST2 432
38 #define HECMW_ETYPE_MSQ1 441
39 #define HECMW_ETYPE_MSQ2 442
40 #define HECMW_ETYPE_JTB1 501
41 #define HECMW_ETYPE_JTT1 531
42 #define HECMW_ETYPE_JTT2 532
43 #define HECMW_ETYPE_JTQ1 541
44 #define HECMW_ETYPE_JTQ2 542
45 #define HECMW_ETYPE_BEM1 611
46 #define HECMW_ETYPE_BEM2 612
47 #define HECMW_ETYPE_BEM3 641 /* mixed beam-341*/
48 #define HECMW_ETYPE_SHT1 731
49 #define HECMW_ETYPE_SHT2 732
50 #define HECMW_ETYPE_SHQ1 741
51 #define HECMW_ETYPE_SHQ2 742
52 #define HECMW_ETYPE_SHQ3 743
53 #define HECMW_ETYPE_SHT6 761 /* mixed shell-solid */
54 #define HECMW_ETYPE_SHQ8 781
55 #define HECMW_ETYPE_LN11 911
56 #define HECMW_ETYPE_LN12 912
57 #define HECMW_ETYPE_LN13 913
58 #define HECMW_ETYPE_LN14 914
59 #define HECMW_ETYPE_LN15 915
60 #define HECMW_ETYPE_LN16 916
61 #define HECMW_ETYPE_LN21 921
62 #define HECMW_ETYPE_LN22 922
63 #define HECMW_ETYPE_LN23 923
64 #define HECMW_ETYPE_LN24 924
65 #define HECMW_ETYPE_LN25 925
66 #define HECMW_ETYPE_LN26 926
67 #define HECMW_ETYPE_LN31 931
68 #define HECMW_ETYPE_LN32 932
69 #define HECMW_ETYPE_LN33 933
70 #define HECMW_ETYPE_LN34 934
71 #define HECMW_ETYPE_LN35 935
72 #define HECMW_ETYPE_LN36 936
73 #define HECMW_ETYPE_LN41 941
74 #define HECMW_ETYPE_LN42 942
75 #define HECMW_ETYPE_LN43 943
76 #define HECMW_ETYPE_LN44 944
77 #define HECMW_ETYPE_LN45 945
78 #define HECMW_ETYPE_LN46 946
79 #define HECMW_ETYPE_LN51 951
80 #define HECMW_ETYPE_LN52 952
81 #define HECMW_ETYPE_LN53 953
82 #define HECMW_ETYPE_LN54 954
83 #define HECMW_ETYPE_LN55 955
84 #define HECMW_ETYPE_LN56 956
85 #define HECMW_ETYPE_LN61 961
86 #define HECMW_ETYPE_LN62 962
87 #define HECMW_ETYPE_LN63 963
88 #define HECMW_ETYPE_LN64 964
89 #define HECMW_ETYPE_LN65 965
90 #define HECMW_ETYPE_LN66 966
91 #define HECMW_ETYPE_PTT1 1031
92 #define HECMW_ETYPE_PTT2 1032
93 #define HECMW_ETYPE_PTQ1 1041
94 #define HECMW_ETYPE_PTQ2 1042
95 
96 /*
97  *   element types in GeoFEM
98  */
99 #define HECMW_GEOFEM_ETYPE_MAX 3314
100 
101 #define HECMW_GEOFEM_ETYPE_ROD1 111
102 #define HECMW_GEOFEM_ETYPE_ROD2 112
103 #define HECMW_GEOFEM_ETYPE_TRI1 211
104 #define HECMW_GEOFEM_ETYPE_TRI2 212
105 #define HECMW_GEOFEM_ETYPE_QUA1 221
106 #define HECMW_GEOFEM_ETYPE_QUA2 222
107 #define HECMW_GEOFEM_ETYPE_TET1 311
108 #define HECMW_GEOFEM_ETYPE_TET1_4 3114
109 #define HECMW_GEOFEM_ETYPE_TET2 312
110 #define HECMW_GEOFEM_ETYPE_PRI1 321
111 #define HECMW_GEOFEM_ETYPE_PRI2 322
112 #define HECMW_GEOFEM_ETYPE_HEX1 331
113 #define HECMW_GEOFEM_ETYPE_HEX1_4 3314
114 #define HECMW_GEOFEM_ETYPE_HEX2 332
115 #define HECMW_GEOFEM_ETYPE_MST1 411
116 #define HECMW_GEOFEM_ETYPE_MST2 412
117 #define HECMW_GEOFEM_ETYPE_MSQ1 421
118 #define HECMW_GEOFEM_ETYPE_MSQ2 422
119 #define HECMW_GEOFEM_ETYPE_JTB1 501
120 #define HECMW_GEOFEM_ETYPE_JTT1 511
121 #define HECMW_GEOFEM_ETYPE_JTT2 512
122 #define HECMW_GEOFEM_ETYPE_JTQ1 521
123 #define HECMW_GEOFEM_ETYPE_JTQ2 522
124 #define HECMW_GEOFEM_ETYPE_BEM1 611
125 #define HECMW_GEOFEM_ETYPE_BEM2 612
126 #define HECMW_GEOFEM_ETYPE_BEM3 641 /* mixed beam-341*/
127 #define HECMW_GEOFEM_ETYPE_SHT1 711
128 #define HECMW_GEOFEM_ETYPE_SHT2 712
129 #define HECMW_GEOFEM_ETYPE_SHQ1 721
130 #define HECMW_GEOFEM_ETYPE_SHQ2 722
131 
132 /*
133  *   element types in mesh utility
134  */
135 #define HECMW_MESH_ETYPE_MAX 78
136 
137 #define HECMW_MESH_ETYPE_PNT 0
138 #define HECMW_MESH_ETYPE_ROD1 1
139 #define HECMW_MESH_ETYPE_ROD2 2
140 #define HECMW_MESH_ETYPE_TRI1 3
141 #define HECMW_MESH_ETYPE_TRI2 4
142 #define HECMW_MESH_ETYPE_QUA1 5
143 #define HECMW_MESH_ETYPE_QUA2 6
144 #define HECMW_MESH_ETYPE_TET1 7
145 #define HECMW_MESH_ETYPE_TET2 8
146 #define HECMW_MESH_ETYPE_PRI1 9
147 #define HECMW_MESH_ETYPE_PRI2 10
148 #define HECMW_MESH_ETYPE_HEX1 11
149 #define HECMW_MESH_ETYPE_HEX2 12
150 #define HECMW_MESH_ETYPE_PYR1 13
151 #define HECMW_MESH_ETYPE_PYR2 14
152 #define HECMW_MESH_ETYPE_MST1 15
153 #define HECMW_MESH_ETYPE_MST2 16
154 #define HECMW_MESH_ETYPE_MSQ1 17
155 #define HECMW_MESH_ETYPE_MSQ2 18
156 #define HECMW_MESH_ETYPE_JTB1 74
157 #define HECMW_MESH_ETYPE_JTT1 19
158 #define HECMW_MESH_ETYPE_JTT2 20
159 #define HECMW_MESH_ETYPE_JTQ1 21
160 #define HECMW_MESH_ETYPE_JTQ2 22
161 #define HECMW_MESH_ETYPE_BEM1 23
162 #define HECMW_MESH_ETYPE_BEM2 24
163 #define HECMW_MESH_ETYPE_BEM3 71 /* mixed beam-341*/
164 #define HECMW_MESH_ETYPE_SHT1 25
165 #define HECMW_MESH_ETYPE_SHT2 26
166 #define HECMW_MESH_ETYPE_SHQ1 27
167 #define HECMW_MESH_ETYPE_SHQ2 28
168 #define HECMW_MESH_ETYPE_SHQ3 68
169 #define HECMW_MESH_ETYPE_SHT6 69 /* mixed shell-solid */
170 #define HECMW_MESH_ETYPE_SHQ8 70
171 #define HECMW_MESH_ETYPE_LN11 29
172 #define HECMW_MESH_ETYPE_LN12 30
173 #define HECMW_MESH_ETYPE_LN13 31
174 #define HECMW_MESH_ETYPE_LN14 32
175 #define HECMW_MESH_ETYPE_LN15 33
176 #define HECMW_MESH_ETYPE_LN16 34
177 #define HECMW_MESH_ETYPE_LN21 35
178 #define HECMW_MESH_ETYPE_LN22 36
179 #define HECMW_MESH_ETYPE_LN23 37
180 #define HECMW_MESH_ETYPE_LN24 38
181 #define HECMW_MESH_ETYPE_LN25 39
182 #define HECMW_MESH_ETYPE_LN26 40
183 #define HECMW_MESH_ETYPE_LN31 41
184 #define HECMW_MESH_ETYPE_LN32 42
185 #define HECMW_MESH_ETYPE_LN33 43
186 #define HECMW_MESH_ETYPE_LN34 44
187 #define HECMW_MESH_ETYPE_LN35 45
188 #define HECMW_MESH_ETYPE_LN36 46
189 #define HECMW_MESH_ETYPE_LN41 47
190 #define HECMW_MESH_ETYPE_LN42 48
191 #define HECMW_MESH_ETYPE_LN43 49
192 #define HECMW_MESH_ETYPE_LN44 50
193 #define HECMW_MESH_ETYPE_LN45 51
194 #define HECMW_MESH_ETYPE_LN46 52
195 #define HECMW_MESH_ETYPE_LN51 53
196 #define HECMW_MESH_ETYPE_LN52 54
197 #define HECMW_MESH_ETYPE_LN53 55
198 #define HECMW_MESH_ETYPE_LN54 56
199 #define HECMW_MESH_ETYPE_LN55 57
200 #define HECMW_MESH_ETYPE_LN56 58
201 #define HECMW_MESH_ETYPE_LN61 59
202 #define HECMW_MESH_ETYPE_LN62 60
203 #define HECMW_MESH_ETYPE_LN63 61
204 #define HECMW_MESH_ETYPE_LN64 62
205 #define HECMW_MESH_ETYPE_LN65 63
206 #define HECMW_MESH_ETYPE_LN66 64
207 #define HECMW_MESH_ETYPE_TRI22 65
208 #define HECMW_MESH_ETYPE_TET22 66
209 #define HECMW_MESH_ETYPE_ROD31 67
210 #define HECMW_MESH_ETYPE_TET1_4 72
211 #define HECMW_MESH_ETYPE_HEX1_4 73
212 #define HECMW_MESH_ETYPE_PTT1 75
213 #define HECMW_MESH_ETYPE_PTT2 76
214 #define HECMW_MESH_ETYPE_PTQ1 77
215 #define HECMW_MESH_ETYPE_PTQ2 78
216 
217 /*
218  *   UCD labels
219  */
220 #define HECMW_UCD_LABEL_PNT "pt"
221 #define HECMW_UCD_LABEL_ROD1 "line"
222 #define HECMW_UCD_LABEL_ROD2 "line2"
223 #define HECMW_UCD_LABEL_TRI1 "tri"
224 #define HECMW_UCD_LABEL_TRI2 "tri2"
225 #define HECMW_UCD_LABEL_QUA1 "quad"
226 #define HECMW_UCD_LABEL_QUA2 "quad2"
227 #define HECMW_UCD_LABEL_ROD31 "line"
228 #define HECMW_UCD_LABEL_TET1 "tet"
229 #define HECMW_UCD_LABEL_TET1_4 "tet"
230 #define HECMW_UCD_LABEL_TET2 "tet2"
231 #define HECMW_UCD_LABEL_PRI1 "prism"
232 #define HECMW_UCD_LABEL_PRI2 "prism2"
233 #define HECMW_UCD_LABEL_HEX1 "hex"
234 #define HECMW_UCD_LABEL_HEX1_4 "hex"
235 #define HECMW_UCD_LABEL_HEX2 "hex2"
236 #define HECMW_UCD_LABEL_PYR1 "pyr"
237 #define HECMW_UCD_LABEL_PYR2 "pyr2"
238 #define HECMW_UCD_LABEL_MST1 "tet"
239 #define HECMW_UCD_LABEL_MST2 "tet2"
240 #define HECMW_UCD_LABEL_MSQ1 "pyr"
241 #define HECMW_UCD_LABEL_MSQ2 "pyr2"
242 #define HECMW_UCD_LABEL_JTB1 "line"
243 #define HECMW_UCD_LABEL_JTT1 "prism"
244 #define HECMW_UCD_LABEL_JTT2 "prism2"
245 #define HECMW_UCD_LABEL_JTQ1 "hex"
246 #define HECMW_UCD_LABEL_JTQ2 "hex2"
247 #define HECMW_UCD_LABEL_BEM1 "line"
248 #define HECMW_UCD_LABEL_BEM2 "line2"
249 #define HECMW_UCD_LABEL_BEM3 "line" /* mixed beam-341*/
250 #define HECMW_UCD_LABEL_SHT1 "tri"
251 #define HECMW_UCD_LABEL_SHT2 "tri2"
252 #define HECMW_UCD_LABEL_SHQ1 "quad"
253 #define HECMW_UCD_LABEL_SHQ2 "quad2"
254 #define HECMW_UCD_LABEL_SHT6 "tri"  /* mixed shell-solid */
255 #define HECMW_UCD_LABEL_SHQ8 "quad" /* mixed shell-solid */
256 #define HECMW_UCD_LABEL_LN11 "line"
257 #define HECMW_UCD_LABEL_LN12 "line"
258 #define HECMW_UCD_LABEL_LN13 "line"
259 #define HECMW_UCD_LABEL_LN14 "line"
260 #define HECMW_UCD_LABEL_LN15 "line"
261 #define HECMW_UCD_LABEL_LN16 "line"
262 #define HECMW_UCD_LABEL_LN21 "line"
263 #define HECMW_UCD_LABEL_LN22 "line"
264 #define HECMW_UCD_LABEL_LN23 "line"
265 #define HECMW_UCD_LABEL_LN24 "line"
266 #define HECMW_UCD_LABEL_LN25 "line"
267 #define HECMW_UCD_LABEL_LN26 "line"
268 #define HECMW_UCD_LABEL_LN31 "line"
269 #define HECMW_UCD_LABEL_LN32 "line"
270 #define HECMW_UCD_LABEL_LN33 "line"
271 #define HECMW_UCD_LABEL_LN34 "line"
272 #define HECMW_UCD_LABEL_LN35 "line"
273 #define HECMW_UCD_LABEL_LN36 "line"
274 #define HECMW_UCD_LABEL_LN41 "line"
275 #define HECMW_UCD_LABEL_LN42 "line"
276 #define HECMW_UCD_LABEL_LN43 "line"
277 #define HECMW_UCD_LABEL_LN44 "line"
278 #define HECMW_UCD_LABEL_LN45 "line"
279 #define HECMW_UCD_LABEL_LN46 "line"
280 #define HECMW_UCD_LABEL_LN51 "line"
281 #define HECMW_UCD_LABEL_LN52 "line"
282 #define HECMW_UCD_LABEL_LN53 "line"
283 #define HECMW_UCD_LABEL_LN54 "line"
284 #define HECMW_UCD_LABEL_LN55 "line"
285 #define HECMW_UCD_LABEL_LN56 "line"
286 #define HECMW_UCD_LABEL_LN61 "line"
287 #define HECMW_UCD_LABEL_LN62 "line"
288 #define HECMW_UCD_LABEL_LN63 "line"
289 #define HECMW_UCD_LABEL_LN64 "line"
290 #define HECMW_UCD_LABEL_LN65 "line"
291 #define HECMW_UCD_LABEL_LN66 "line"
292 #define HECMW_UCD_LABEL_PTT1 "tri"
293 #define HECMW_UCD_LABEL_PTT2 "tri2"
294 #define HECMW_UCD_LABEL_PTQ1 "quad"
295 #define HECMW_UCD_LABEL_PTQ2 "quad2"
296 
297 /*
298  *   number of component nodes on finite element
299  */
300 #define HECMW_MAX_NODE_MAX 20
301 
302 #define HECMW_MAX_NODE_PNT 1
303 #define HECMW_MAX_NODE_ROD1 2
304 #define HECMW_MAX_NODE_ROD2 3
305 #define HECMW_MAX_NODE_TRI1 3
306 #define HECMW_MAX_NODE_TRI2 6
307 #define HECMW_MAX_NODE_QUA1 4
308 #define HECMW_MAX_NODE_QUA2 8
309 #define HECMW_MAX_NODE_ROD31 2
310 #define HECMW_MAX_NODE_TET1 4
311 #define HECMW_MAX_NODE_TET1_4 4
312 #define HECMW_MAX_NODE_TET2 10
313 #define HECMW_MAX_NODE_PRI1 6
314 #define HECMW_MAX_NODE_PRI2 15
315 #define HECMW_MAX_NODE_HEX1 8
316 #define HECMW_MAX_NODE_HEX1_4 8
317 #define HECMW_MAX_NODE_HEX2 20
318 #define HECMW_MAX_NODE_PYR1 5
319 #define HECMW_MAX_NODE_PYR2 13
320 #define HECMW_MAX_NODE_MST1 4
321 #define HECMW_MAX_NODE_MST2 7
322 #define HECMW_MAX_NODE_MSQ1 5
323 #define HECMW_MAX_NODE_MSQ2 9
324 #define HECMW_MAX_NODE_JTB1 2
325 #define HECMW_MAX_NODE_JTT1 6
326 #define HECMW_MAX_NODE_JTT2 12
327 #define HECMW_MAX_NODE_JTQ1 8
328 #define HECMW_MAX_NODE_JTQ2 16
329 #define HECMW_MAX_NODE_BEM1 2
330 #define HECMW_MAX_NODE_BEM2 3
331 #define HECMW_MAX_NODE_BEM3 4 /* mixed beam-341*/
332 #define HECMW_MAX_NODE_SHT1 3
333 #define HECMW_MAX_NODE_SHT2 6
334 #define HECMW_MAX_NODE_SHQ1 4
335 #define HECMW_MAX_NODE_SHQ2 8
336 #define HECMW_MAX_NODE_SHQ3 9
337 #define HECMW_MAX_NODE_SHT6 6 /* mixed shell-solid */
338 #define HECMW_MAX_NODE_SHQ8 8
339 #define HECMW_MAX_NODE_LN11 2
340 #define HECMW_MAX_NODE_LN12 2
341 #define HECMW_MAX_NODE_LN13 2
342 #define HECMW_MAX_NODE_LN14 2
343 #define HECMW_MAX_NODE_LN15 2
344 #define HECMW_MAX_NODE_LN16 2
345 #define HECMW_MAX_NODE_LN21 2
346 #define HECMW_MAX_NODE_LN22 2
347 #define HECMW_MAX_NODE_LN23 2
348 #define HECMW_MAX_NODE_LN24 2
349 #define HECMW_MAX_NODE_LN25 2
350 #define HECMW_MAX_NODE_LN26 2
351 #define HECMW_MAX_NODE_LN31 2
352 #define HECMW_MAX_NODE_LN32 2
353 #define HECMW_MAX_NODE_LN33 2
354 #define HECMW_MAX_NODE_LN34 2
355 #define HECMW_MAX_NODE_LN35 2
356 #define HECMW_MAX_NODE_LN36 2
357 #define HECMW_MAX_NODE_LN41 2
358 #define HECMW_MAX_NODE_LN42 2
359 #define HECMW_MAX_NODE_LN43 2
360 #define HECMW_MAX_NODE_LN44 2
361 #define HECMW_MAX_NODE_LN45 2
362 #define HECMW_MAX_NODE_LN46 2
363 #define HECMW_MAX_NODE_LN51 2
364 #define HECMW_MAX_NODE_LN52 2
365 #define HECMW_MAX_NODE_LN53 2
366 #define HECMW_MAX_NODE_LN54 2
367 #define HECMW_MAX_NODE_LN55 2
368 #define HECMW_MAX_NODE_LN56 2
369 #define HECMW_MAX_NODE_LN61 2
370 #define HECMW_MAX_NODE_LN62 2
371 #define HECMW_MAX_NODE_LN63 2
372 #define HECMW_MAX_NODE_LN64 2
373 #define HECMW_MAX_NODE_LN65 2
374 #define HECMW_MAX_NODE_LN66 2
375 #define HECMW_MAX_NODE_PTT1 3
376 #define HECMW_MAX_NODE_PTT2 6
377 #define HECMW_MAX_NODE_PTQ1 4
378 #define HECMW_MAX_NODE_PTQ2 8
379 
380 /*
381  *   number of component edges on finite element
382  */
383 #define HECMW_MAX_EDGE_MAX 24
384 
385 #define HECMW_MAX_EDGE_PNT 0
386 #define HECMW_MAX_EDGE_ROD1 1
387 #define HECMW_MAX_EDGE_ROD2 2
388 #define HECMW_MAX_EDGE_TRI1 3
389 #define HECMW_MAX_EDGE_TRI2 6
390 #define HECMW_MAX_EDGE_QUA1 4
391 #define HECMW_MAX_EDGE_QUA2 8
392 #define HECMW_MAX_EDGE_TET1 6
393 #define HECMW_MAX_EDGE_TET1_4 6
394 #define HECMW_MAX_EDGE_TET2 12
395 #define HECMW_MAX_EDGE_PRI1 9
396 #define HECMW_MAX_EDGE_PRI2 18
397 #define HECMW_MAX_EDGE_HEX1 12
398 #define HECMW_MAX_EDGE_HEX1_4 12
399 #define HECMW_MAX_EDGE_HEX2 24
400 #define HECMW_MAX_EDGE_PYR1 8
401 #define HECMW_MAX_EDGE_PYR2 16
402 #define HECMW_MAX_EDGE_MST1 6
403 #define HECMW_MAX_EDGE_MST2 9
404 #define HECMW_MAX_EDGE_MSQ1 8
405 #define HECMW_MAX_EDGE_MSQ2 12
406 #define HECMW_MAX_EDGE_JTB1 1
407 #define HECMW_MAX_EDGE_JTT1 9
408 #define HECMW_MAX_EDGE_JTT2 15
409 #define HECMW_MAX_EDGE_JTQ1 12
410 #define HECMW_MAX_EDGE_JTQ2 20
411 #define HECMW_MAX_EDGE_BEM1 1
412 #define HECMW_MAX_EDGE_BEM2 2
413 #define HECMW_MAX_EDGE_BEM3 6 /* mixed beam-341*/
414 #define HECMW_MAX_EDGE_SHT1 3
415 #define HECMW_MAX_EDGE_SHT2 6
416 #define HECMW_MAX_EDGE_SHQ1 4
417 #define HECMW_MAX_EDGE_SHQ2 8
418 #define HECMW_MAX_EDGE_SHT6 9 /* mixed shell-solid */
419 #define HECMW_MAX_EDGE_SHQ8 12
420 #define HECMW_MAX_EDGE_LN11 1
421 #define HECMW_MAX_EDGE_LN12 1
422 #define HECMW_MAX_EDGE_LN13 1
423 #define HECMW_MAX_EDGE_LN14 1
424 #define HECMW_MAX_EDGE_LN15 1
425 #define HECMW_MAX_EDGE_LN16 1
426 #define HECMW_MAX_EDGE_LN21 1
427 #define HECMW_MAX_EDGE_LN22 1
428 #define HECMW_MAX_EDGE_LN23 1
429 #define HECMW_MAX_EDGE_LN24 1
430 #define HECMW_MAX_EDGE_LN25 1
431 #define HECMW_MAX_EDGE_LN26 1
432 #define HECMW_MAX_EDGE_LN31 1
433 #define HECMW_MAX_EDGE_LN32 1
434 #define HECMW_MAX_EDGE_LN33 1
435 #define HECMW_MAX_EDGE_LN34 1
436 #define HECMW_MAX_EDGE_LN35 1
437 #define HECMW_MAX_EDGE_LN36 1
438 #define HECMW_MAX_EDGE_LN41 1
439 #define HECMW_MAX_EDGE_LN42 1
440 #define HECMW_MAX_EDGE_LN43 1
441 #define HECMW_MAX_EDGE_LN44 1
442 #define HECMW_MAX_EDGE_LN45 1
443 #define HECMW_MAX_EDGE_LN46 1
444 #define HECMW_MAX_EDGE_LN51 1
445 #define HECMW_MAX_EDGE_LN52 1
446 #define HECMW_MAX_EDGE_LN53 1
447 #define HECMW_MAX_EDGE_LN54 1
448 #define HECMW_MAX_EDGE_LN55 1
449 #define HECMW_MAX_EDGE_LN56 1
450 #define HECMW_MAX_EDGE_LN61 1
451 #define HECMW_MAX_EDGE_LN62 1
452 #define HECMW_MAX_EDGE_LN63 1
453 #define HECMW_MAX_EDGE_LN64 1
454 #define HECMW_MAX_EDGE_LN65 1
455 #define HECMW_MAX_EDGE_LN66 1
456 #define HECMW_MAX_EDGE_PTT1 3
457 #define HECMW_MAX_EDGE_PTT2 6
458 #define HECMW_MAX_EDGE_PTQ1 4
459 #define HECMW_MAX_EDGE_PTQ2 8
460 
461 /*
462  *   number of component surfaces on finite element
463  */
464 #define HECMW_MAX_SURF_MAX 6
465 
466 #define HECMW_MAX_SURF_PNT 0
467 #define HECMW_MAX_SURF_ROD1 0
468 #define HECMW_MAX_SURF_ROD2 0
469 #define HECMW_MAX_SURF_TRI1 3
470 #define HECMW_MAX_SURF_TRI2 3
471 #define HECMW_MAX_SURF_QUA1 4
472 #define HECMW_MAX_SURF_QUA2 4
473 #define HECMW_MAX_SURF_TET1 4
474 #define HECMW_MAX_SURF_TET1_4 4
475 #define HECMW_MAX_SURF_TET2 4
476 #define HECMW_MAX_SURF_PRI1 5
477 #define HECMW_MAX_SURF_PRI2 5
478 #define HECMW_MAX_SURF_HEX1 6
479 #define HECMW_MAX_SURF_HEX1_4 6
480 #define HECMW_MAX_SURF_HEX2 6
481 #define HECMW_MAX_SURF_PYR1 5
482 #define HECMW_MAX_SURF_PYR2 5
483 #define HECMW_MAX_SURF_MST1 1
484 #define HECMW_MAX_SURF_MST2 1
485 #define HECMW_MAX_SURF_MSQ1 1
486 #define HECMW_MAX_SURF_MSQ2 1
487 #define HECMW_MAX_SURF_JTB1 0
488 #define HECMW_MAX_SURF_JTT1 2
489 #define HECMW_MAX_SURF_JTT2 2
490 #define HECMW_MAX_SURF_JTQ1 2
491 #define HECMW_MAX_SURF_JTQ2 2
492 #define HECMW_MAX_SURF_BEM1 0
493 #define HECMW_MAX_SURF_BEM2 0
494 #define HECMW_MAX_SURF_BEM3 4 /* mixed beam-341*/
495 #define HECMW_MAX_SURF_SHT1 2
496 #define HECMW_MAX_SURF_SHT2 2
497 #define HECMW_MAX_SURF_SHQ1 2
498 #define HECMW_MAX_SURF_SHQ2 2
499 #define HECMW_MAX_SURF_SHT6 5 /* mixed shell-solid */
500 #define HECMW_MAX_SURF_SHQ8 6
501 #define HECMW_MAX_SURF_LN11 0
502 #define HECMW_MAX_SURF_LN12 0
503 #define HECMW_MAX_SURF_LN13 0
504 #define HECMW_MAX_SURF_LN14 0
505 #define HECMW_MAX_SURF_LN15 0
506 #define HECMW_MAX_SURF_LN16 0
507 #define HECMW_MAX_SURF_LN21 0
508 #define HECMW_MAX_SURF_LN22 0
509 #define HECMW_MAX_SURF_LN23 0
510 #define HECMW_MAX_SURF_LN24 0
511 #define HECMW_MAX_SURF_LN25 0
512 #define HECMW_MAX_SURF_LN26 0
513 #define HECMW_MAX_SURF_LN31 0
514 #define HECMW_MAX_SURF_LN32 0
515 #define HECMW_MAX_SURF_LN33 0
516 #define HECMW_MAX_SURF_LN34 0
517 #define HECMW_MAX_SURF_LN35 0
518 #define HECMW_MAX_SURF_LN36 0
519 #define HECMW_MAX_SURF_LN41 0
520 #define HECMW_MAX_SURF_LN42 0
521 #define HECMW_MAX_SURF_LN43 0
522 #define HECMW_MAX_SURF_LN44 0
523 #define HECMW_MAX_SURF_LN45 0
524 #define HECMW_MAX_SURF_LN46 0
525 #define HECMW_MAX_SURF_LN51 0
526 #define HECMW_MAX_SURF_LN52 0
527 #define HECMW_MAX_SURF_LN53 0
528 #define HECMW_MAX_SURF_LN54 0
529 #define HECMW_MAX_SURF_LN55 0
530 #define HECMW_MAX_SURF_LN56 0
531 #define HECMW_MAX_SURF_LN61 0
532 #define HECMW_MAX_SURF_LN62 0
533 #define HECMW_MAX_SURF_LN63 0
534 #define HECMW_MAX_SURF_LN64 0
535 #define HECMW_MAX_SURF_LN65 0
536 #define HECMW_MAX_SURF_LN66 0
537 #define HECMW_MAX_SURF_PTT1 1
538 #define HECMW_MAX_SURF_PTT2 1
539 #define HECMW_MAX_SURF_PTQ1 1
540 #define HECMW_MAX_SURF_PTQ2 1
541 
542 /*
543  *   number of component triangular surfaces on finite element
544  */
545 #define HECMW_MAX_TSUF_MAX 4
546 
547 #define HECMW_MAX_TSUF_PNT 0
548 #define HECMW_MAX_TSUF_ROD1 0
549 #define HECMW_MAX_TSUF_ROD2 0
550 #define HECMW_MAX_TSUF_TRI1 0
551 #define HECMW_MAX_TSUF_TRI2 0
552 #define HECMW_MAX_TSUF_QUA1 0
553 #define HECMW_MAX_TSUF_QUA2 0
554 #define HECMW_MAX_TSUF_TET1 4
555 #define HECMW_MAX_TSUF_TET1_4 4
556 #define HECMW_MAX_TSUF_TET2 4
557 #define HECMW_MAX_TSUF_PRI1 2
558 #define HECMW_MAX_TSUF_PRI2 2
559 #define HECMW_MAX_TSUF_HEX1 0
560 #define HECMW_MAX_TSUF_HEX1_4 0
561 #define HECMW_MAX_TSUF_HEX2 0
562 #define HECMW_MAX_TSUF_PYR1 4
563 #define HECMW_MAX_TSUF_PYR2 4
564 #define HECMW_MAX_TSUF_MST1 1
565 #define HECMW_MAX_TSUF_MST2 1
566 #define HECMW_MAX_TSUF_MSQ1 0
567 #define HECMW_MAX_TSUF_MSQ2 0
568 #define HECMW_MAX_TSUF_JTB1 0
569 #define HECMW_MAX_TSUF_JTT1 2
570 #define HECMW_MAX_TSUF_JTT2 2
571 #define HECMW_MAX_TSUF_JTQ1 0
572 #define HECMW_MAX_TSUF_JTQ2 0
573 #define HECMW_MAX_TSUF_BEM1 0
574 #define HECMW_MAX_TSUF_BEM2 0
575 #define HECMW_MAX_TSUF_BEM3 4 /* mixed beam-341*/
576 #define HECMW_MAX_TSUF_SHT1 2
577 #define HECMW_MAX_TSUF_SHT2 2
578 #define HECMW_MAX_TSUF_SHQ1 0
579 #define HECMW_MAX_TSUF_SHQ2 0
580 #define HECMW_MAX_TSUF_SHT6 2 /* mixed shell-solid */
581 #define HECMW_MAX_TSUF_SHQ8 0
582 #define HECMW_MAX_TSUF_LN11 0
583 #define HECMW_MAX_TSUF_LN12 0
584 #define HECMW_MAX_TSUF_LN13 0
585 #define HECMW_MAX_TSUF_LN14 0
586 #define HECMW_MAX_TSUF_LN15 0
587 #define HECMW_MAX_TSUF_LN16 0
588 #define HECMW_MAX_TSUF_LN21 0
589 #define HECMW_MAX_TSUF_LN22 0
590 #define HECMW_MAX_TSUF_LN23 0
591 #define HECMW_MAX_TSUF_LN24 0
592 #define HECMW_MAX_TSUF_LN25 0
593 #define HECMW_MAX_TSUF_LN26 0
594 #define HECMW_MAX_TSUF_LN31 0
595 #define HECMW_MAX_TSUF_LN32 0
596 #define HECMW_MAX_TSUF_LN33 0
597 #define HECMW_MAX_TSUF_LN34 0
598 #define HECMW_MAX_TSUF_LN35 0
599 #define HECMW_MAX_TSUF_LN36 0
600 #define HECMW_MAX_TSUF_LN41 0
601 #define HECMW_MAX_TSUF_LN42 0
602 #define HECMW_MAX_TSUF_LN43 0
603 #define HECMW_MAX_TSUF_LN44 0
604 #define HECMW_MAX_TSUF_LN45 0
605 #define HECMW_MAX_TSUF_LN46 0
606 #define HECMW_MAX_TSUF_LN51 0
607 #define HECMW_MAX_TSUF_LN52 0
608 #define HECMW_MAX_TSUF_LN53 0
609 #define HECMW_MAX_TSUF_LN54 0
610 #define HECMW_MAX_TSUF_LN55 0
611 #define HECMW_MAX_TSUF_LN56 0
612 #define HECMW_MAX_TSUF_LN61 0
613 #define HECMW_MAX_TSUF_LN62 0
614 #define HECMW_MAX_TSUF_LN63 0
615 #define HECMW_MAX_TSUF_LN64 0
616 #define HECMW_MAX_TSUF_LN65 0
617 #define HECMW_MAX_TSUF_LN66 0
618 #define HECMW_MAX_TSUF_PTT1 1
619 #define HECMW_MAX_TSUF_PTT2 1
620 #define HECMW_MAX_TSUF_PTQ1 0
621 #define HECMW_MAX_TSUF_PTQ2 0
622 
623 /*
624  *   number of component quadrilateral surfaces on finite element
625  */
626 #define HECMW_MAX_QSUF_MAX 6
627 
628 #define HECMW_MAX_QSUF_PNT 0
629 #define HECMW_MAX_QSUF_ROD1 0
630 #define HECMW_MAX_QSUF_ROD2 0
631 #define HECMW_MAX_QSUF_TRI1 0
632 #define HECMW_MAX_QSUF_TRI2 0
633 #define HECMW_MAX_QSUF_QUA1 0
634 #define HECMW_MAX_QSUF_QUA2 0
635 #define HECMW_MAX_QSUF_TET1 0
636 #define HECMW_MAX_QSUF_TET1_4 0
637 #define HECMW_MAX_QSUF_TET2 0
638 #define HECMW_MAX_QSUF_PRI1 3
639 #define HECMW_MAX_QSUF_PRI2 3
640 #define HECMW_MAX_QSUF_HEX1 6
641 #define HECMW_MAX_QSUF_HEX1_4 6
642 #define HECMW_MAX_QSUF_HEX2 6
643 #define HECMW_MAX_QSUF_PYR1 1
644 #define HECMW_MAX_QSUF_PYR2 1
645 #define HECMW_MAX_QSUF_MST1 0
646 #define HECMW_MAX_QSUF_MST2 0
647 #define HECMW_MAX_QSUF_MSQ1 1
648 #define HECMW_MAX_QSUF_MSQ2 1
649 #define HECMW_MAX_QSUF_JTB1 0
650 #define HECMW_MAX_QSUF_JTT1 0
651 #define HECMW_MAX_QSUF_JTT2 0
652 #define HECMW_MAX_QSUF_JTQ1 2
653 #define HECMW_MAX_QSUF_JTQ2 2
654 #define HECMW_MAX_QSUF_BEM1 0
655 #define HECMW_MAX_QSUF_BEM2 0
656 #define HECMW_MAX_QSUF_BEM3 0 /* mixed beam-341*/
657 #define HECMW_MAX_QSUF_SHT1 0
658 #define HECMW_MAX_QSUF_SHT2 0
659 #define HECMW_MAX_QSUF_SHQ1 2
660 #define HECMW_MAX_QSUF_SHQ2 2
661 #define HECMW_MAX_QSUF_SHT6 3 /* mixed shell-solid */
662 #define HECMW_MAX_QSUF_SHQ8 6
663 #define HECMW_MAX_QSUF_LN11 0
664 #define HECMW_MAX_QSUF_LN12 0
665 #define HECMW_MAX_QSUF_LN13 0
666 #define HECMW_MAX_QSUF_LN14 0
667 #define HECMW_MAX_QSUF_LN15 0
668 #define HECMW_MAX_QSUF_LN16 0
669 #define HECMW_MAX_QSUF_LN21 0
670 #define HECMW_MAX_QSUF_LN22 0
671 #define HECMW_MAX_QSUF_LN23 0
672 #define HECMW_MAX_QSUF_LN24 0
673 #define HECMW_MAX_QSUF_LN25 0
674 #define HECMW_MAX_QSUF_LN26 0
675 #define HECMW_MAX_QSUF_LN31 0
676 #define HECMW_MAX_QSUF_LN32 0
677 #define HECMW_MAX_QSUF_LN33 0
678 #define HECMW_MAX_QSUF_LN34 0
679 #define HECMW_MAX_QSUF_LN35 0
680 #define HECMW_MAX_QSUF_LN36 0
681 #define HECMW_MAX_QSUF_LN41 0
682 #define HECMW_MAX_QSUF_LN42 0
683 #define HECMW_MAX_QSUF_LN43 0
684 #define HECMW_MAX_QSUF_LN44 0
685 #define HECMW_MAX_QSUF_LN45 0
686 #define HECMW_MAX_QSUF_LN46 0
687 #define HECMW_MAX_QSUF_LN51 0
688 #define HECMW_MAX_QSUF_LN52 0
689 #define HECMW_MAX_QSUF_LN53 0
690 #define HECMW_MAX_QSUF_LN54 0
691 #define HECMW_MAX_QSUF_LN55 0
692 #define HECMW_MAX_QSUF_LN56 0
693 #define HECMW_MAX_QSUF_LN61 0
694 #define HECMW_MAX_QSUF_LN62 0
695 #define HECMW_MAX_QSUF_LN63 0
696 #define HECMW_MAX_QSUF_LN64 0
697 #define HECMW_MAX_QSUF_LN65 0
698 #define HECMW_MAX_QSUF_LN66 0
699 #define HECMW_MAX_QSUF_PTT1 0
700 #define HECMW_MAX_QSUF_PTT2 0
701 #define HECMW_MAX_QSUF_PTQ1 1
702 #define HECMW_MAX_QSUF_PTQ2 1
703 
704 #define HECMW_CLASS_LINE 1
705 #define HECMW_CLASS_SURF 2
706 #define HECMW_CLASS_SOLID 3
707 #define HECMW_CLASS_JOINT 4
708 #define HECMW_CLASS_LINK 5
709 
710 #define HECMW_SHAPE_LINE 1
711 #define HECMW_SHAPE_TRI 2
712 #define HECMW_SHAPE_QUAD 3
713 #define HECMW_SHAPE_TETRA 4
714 #define HECMW_SHAPE_PYRAM 5
715 #define HECMW_SHAPE_PRISM 6
716 #define HECMW_SHAPE_HEXA 7
717 
718 #define HECMW_VTK_SHAPE_LINE  3
719 #define HECMW_VTK_SHAPE_TRI   5
720 #define HECMW_VTK_SHAPE_QUAD  9
721 #define HECMW_VTK_SHAPE_TETRA 10
722 #define HECMW_VTK_SHAPE_PYRAM 14
723 #define HECMW_VTK_SHAPE_PRISM 13
724 #define HECMW_VTK_SHAPE_HEXA  12
725 #define HECMW_VTK_SHAPE_TETRA2 24
726 
727 /*
728  *   DOFs
729  */
730 #define HECMW_MESH_NDOFGRP_MAX 3
731 #define HECMW_MESH_DOF_MAX 6
732 #define HECMW_MESH_DOF_TOT 3
733 
734 #define HECMW_MESH_DOF_TWO 2
735 #define HECMW_MESH_DOF_THREE 3
736 #define HECMW_MESH_DOF_FOUR 4
737 #define HECMW_MESH_DOF_SIX 6
738 
739 #endif
740