gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
ElementType.cpp
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #include "ElementType.h"
7 #include "GmshDefines.h"
8 #include "GmshMessage.h"
9 
11 {
12  switch(mshtype) {
13  case(MSH_PNT): return TYPE_PNT;
14  case(MSH_LIN_2):
15  case(MSH_LIN_3):
16  case(MSH_LIN_4):
17  case(MSH_LIN_5):
18  case(MSH_LIN_6):
19  case(MSH_LIN_7):
20  case(MSH_LIN_8):
21  case(MSH_LIN_9):
22  case(MSH_LIN_10):
23  case(MSH_LIN_11):
24  case(MSH_LIN_B):
25  case(MSH_LIN_C):
26  case(MSH_LIN_1): return TYPE_LIN;
27  case(MSH_TRI_3):
28  case(MSH_TRI_6):
29  case(MSH_TRI_9):
30  case(MSH_TRI_10):
31  case(MSH_TRI_12):
32  case(MSH_TRI_15):
33  case(MSH_TRI_15I):
34  case(MSH_TRI_21):
35  case(MSH_TRI_28):
36  case(MSH_TRI_36):
37  case(MSH_TRI_45):
38  case(MSH_TRI_55):
39  case(MSH_TRI_66):
40  case(MSH_TRI_18):
41  case(MSH_TRI_21I):
42  case(MSH_TRI_24):
43  case(MSH_TRI_27):
44  case(MSH_TRI_30):
45  case(MSH_TRI_B):
46  case(MSH_TRI_1): return TYPE_TRI;
47  case(MSH_QUA_4):
48  case(MSH_QUA_9):
49  case(MSH_QUA_8):
50  case(MSH_QUA_16):
51  case(MSH_QUA_25):
52  case(MSH_QUA_36):
53  case(MSH_QUA_12):
54  case(MSH_QUA_16I):
55  case(MSH_QUA_20):
56  case(MSH_QUA_49):
57  case(MSH_QUA_64):
58  case(MSH_QUA_81):
59  case(MSH_QUA_100):
60  case(MSH_QUA_121):
61  case(MSH_QUA_24):
62  case(MSH_QUA_28):
63  case(MSH_QUA_32):
64  case(MSH_QUA_36I):
65  case(MSH_QUA_40):
66  case(MSH_QUA_1): return TYPE_QUA;
67  case(MSH_TET_4):
68  case(MSH_TET_10):
69  case(MSH_TET_20):
70  case(MSH_TET_35):
71  case(MSH_TET_56):
72  case(MSH_TET_22):
73  case(MSH_TET_28):
74  case(MSH_TET_84):
75  case(MSH_TET_120):
76  case(MSH_TET_165):
77  case(MSH_TET_220):
78  case(MSH_TET_286):
79  case(MSH_TET_34):
80  case(MSH_TET_40):
81  case(MSH_TET_46):
82  case(MSH_TET_52):
83  case(MSH_TET_58):
84  case(MSH_TET_1):
85  case(MSH_TET_16): return TYPE_TET;
86  case(MSH_PYR_5):
87  case(MSH_PYR_14):
88  case(MSH_PYR_13):
89  case(MSH_PYR_30):
90  case(MSH_PYR_55):
91  case(MSH_PYR_91):
92  case(MSH_PYR_140):
93  case(MSH_PYR_204):
94  case(MSH_PYR_285):
95  case(MSH_PYR_385):
96  case(MSH_PYR_21):
97  case(MSH_PYR_29):
98  case(MSH_PYR_37):
99  case(MSH_PYR_45):
100  case(MSH_PYR_53):
101  case(MSH_PYR_61):
102  case(MSH_PYR_69):
103  case(MSH_PYR_1): return TYPE_PYR;
104  case(MSH_PRI_6):
105  case(MSH_PRI_18):
106  case(MSH_PRI_15):
107  case(MSH_PRI_1):
108  case(MSH_PRI_40):
109  case(MSH_PRI_75):
110  case(MSH_PRI_126):
111  case(MSH_PRI_196):
112  case(MSH_PRI_288):
113  case(MSH_PRI_405):
114  case(MSH_PRI_550):
115  case(MSH_PRI_24):
116  case(MSH_PRI_33):
117  case(MSH_PRI_42):
118  case(MSH_PRI_51):
119  case(MSH_PRI_60):
120  case(MSH_PRI_69):
121  case(MSH_PRI_78): return TYPE_PRI;
122  case(MSH_HEX_8):
123  case(MSH_HEX_27):
124  case(MSH_HEX_20):
125  case(MSH_HEX_1):
126  case(MSH_HEX_64):
127  case(MSH_HEX_125):
128  case(MSH_HEX_216):
129  case(MSH_HEX_343):
130  case(MSH_HEX_512):
131  case(MSH_HEX_729):
132  case(MSH_HEX_1000):
133  case(MSH_HEX_32):
134  case(MSH_HEX_44):
135  case(MSH_HEX_56):
136  case(MSH_HEX_68):
137  case(MSH_HEX_80):
138  case(MSH_HEX_92):
139  case(MSH_HEX_104): return TYPE_HEX;
140  case(MSH_POLYG_):
141  case(MSH_POLYG_B): return TYPE_POLYG;
142  case(MSH_POLYH_): return TYPE_POLYH;
143  case(MSH_PNT_SUB):
144  case(MSH_LIN_SUB):
145  case(MSH_TRI_SUB):
146  case(MSH_TET_SUB): return TYPE_XFEM;
147  case(MSH_TRI_MINI):
148  case(MSH_TET_MINI): return TYPE_MINI;
149  case(MSH_TRIH_4): return TYPE_TRIH;
150 
151  default:
152  Msg::Error("Unknown element MSH type %i for parent type, returning -1.",
153  mshtype);
154  return -1;
155  }
156 }
157 
158 int ElementType::getOrder(int mshtype)
159 {
160  switch(mshtype) {
161  case MSH_PNT: return 0;
162  case MSH_LIN_1: return 0;
163  case MSH_LIN_2: return 1;
164  case MSH_LIN_3: return 2;
165  case MSH_LIN_4: return 3;
166  case MSH_LIN_5: return 4;
167  case MSH_LIN_6: return 5;
168  case MSH_LIN_7: return 6;
169  case MSH_LIN_8: return 7;
170  case MSH_LIN_9: return 8;
171  case MSH_LIN_10: return 9;
172  case MSH_LIN_11: return 10;
173  case MSH_TRI_1: return 0;
174  case MSH_TRI_3: return 1;
175  case MSH_TRI_6: return 2;
176  case MSH_TRI_10: return 3;
177  case MSH_TRI_15: return 4;
178  case MSH_TRI_21: return 5;
179  case MSH_TRI_28: return 6;
180  case MSH_TRI_36: return 7;
181  case MSH_TRI_45: return 8;
182  case MSH_TRI_55: return 9;
183  case MSH_TRI_66: return 10;
184  case MSH_TRI_9: return 3;
185  case MSH_TRI_12: return 4;
186  case MSH_TRI_15I: return 5;
187  case MSH_TRI_18: return 6;
188  case MSH_TRI_21I: return 7;
189  case MSH_TRI_24: return 8;
190  case MSH_TRI_27: return 9;
191  case MSH_TRI_30: return 10;
192  case MSH_TRI_MINI: return 1;
193  case MSH_POLYG_: return 1;
194  case MSH_POLYG_B: return 1;
195  case MSH_TET_1: return 0;
196  case MSH_TET_4: return 1;
197  case MSH_TET_10: return 2;
198  case MSH_TET_20: return 3;
199  case MSH_TET_35: return 4;
200  case MSH_TET_56: return 5;
201  case MSH_TET_84: return 6;
202  case MSH_TET_120: return 7;
203  case MSH_TET_165: return 8;
204  case MSH_TET_220: return 9;
205  case MSH_TET_286: return 10;
206  case MSH_TET_16: return 3;
207  case MSH_TET_22: return 4;
208  case MSH_TET_28: return 5;
209  case MSH_TET_34: return 6;
210  case MSH_TET_40: return 7;
211  case MSH_TET_46: return 8;
212  case MSH_TET_52: return 9;
213  case MSH_TET_58: return 10;
214  case MSH_TET_MINI: return 1;
215  case MSH_QUA_1: return 0;
216  case MSH_QUA_4: return 1;
217  case MSH_QUA_9: return 2;
218  case MSH_QUA_16: return 3;
219  case MSH_QUA_25: return 4;
220  case MSH_QUA_36: return 5;
221  case MSH_QUA_49: return 6;
222  case MSH_QUA_64: return 7;
223  case MSH_QUA_81: return 8;
224  case MSH_QUA_100: return 9;
225  case MSH_QUA_121: return 10;
226  case MSH_QUA_8: return 2;
227  case MSH_QUA_12: return 3;
228  case MSH_QUA_16I: return 4;
229  case MSH_QUA_20: return 5;
230  case MSH_QUA_24: return 6;
231  case MSH_QUA_28: return 7;
232  case MSH_QUA_32: return 8;
233  case MSH_QUA_36I: return 9;
234  case MSH_QUA_40: return 10;
235  case MSH_PRI_1: return 0;
236  case MSH_PRI_6: return 1;
237  case MSH_PRI_18: return 2;
238  case MSH_PRI_40: return 3;
239  case MSH_PRI_75: return 4;
240  case MSH_PRI_126: return 5;
241  case MSH_PRI_196: return 6;
242  case MSH_PRI_288: return 7;
243  case MSH_PRI_405: return 8;
244  case MSH_PRI_550: return 9;
245  case MSH_PRI_15: return 2;
246  case MSH_PRI_24: return 3;
247  case MSH_PRI_33: return 4;
248  case MSH_PRI_42: return 5;
249  case MSH_PRI_51: return 6;
250  case MSH_PRI_60: return 7;
251  case MSH_PRI_69: return 8;
252  case MSH_PRI_78: return 9;
253  case MSH_HEX_1: return 0;
254  case MSH_HEX_8: return 1;
255  case MSH_HEX_27: return 2;
256  case MSH_HEX_64: return 3;
257  case MSH_HEX_125: return 4;
258  case MSH_HEX_216: return 5;
259  case MSH_HEX_343: return 6;
260  case MSH_HEX_512: return 7;
261  case MSH_HEX_729: return 8;
262  case MSH_HEX_1000: return 9;
263  case MSH_HEX_20: return 2;
264  case MSH_HEX_32: return 3;
265  case MSH_HEX_44: return 4;
266  case MSH_HEX_56: return 5;
267  case MSH_HEX_68: return 6;
268  case MSH_HEX_80: return 7;
269  case MSH_HEX_92: return 8;
270  case MSH_HEX_104: return 9;
271  case MSH_PYR_1: return 0;
272  case MSH_PYR_5: return 1;
273  case MSH_PYR_14: return 2;
274  case MSH_PYR_30: return 3;
275  case MSH_PYR_55: return 4;
276  case MSH_PYR_91: return 5;
277  case MSH_PYR_140: return 6;
278  case MSH_PYR_204: return 7;
279  case MSH_PYR_285: return 8;
280  case MSH_PYR_385: return 9;
281  case MSH_PYR_13: return 2;
282  case MSH_PYR_21: return 3;
283  case MSH_PYR_29: return 4;
284  case MSH_PYR_37: return 5;
285  case MSH_PYR_45: return 6;
286  case MSH_PYR_53: return 7;
287  case MSH_PYR_61: return 8;
288  case MSH_PYR_69: return 9;
289  case MSH_TRIH_4: return 1;
290  case MSH_POLYH_: return 1;
291  default:
292  Msg::Warning("Unknown element MSH type %d, assuming order 1.", mshtype);
293  return 1;
294  }
295 }
296 
298 {
299  switch(mshtype) {
300  case(MSH_PNT):
301  case(MSH_PNT_SUB): return 0;
302 
303  case(MSH_LIN_2):
304  case(MSH_LIN_3):
305  case(MSH_LIN_4):
306  case(MSH_LIN_5):
307  case(MSH_LIN_6):
308  case(MSH_LIN_7):
309  case(MSH_LIN_8):
310  case(MSH_LIN_9):
311  case(MSH_LIN_10):
312  case(MSH_LIN_11):
313  case(MSH_LIN_B):
314  case(MSH_LIN_C):
315  case(MSH_LIN_1):
316  case(MSH_LIN_SUB): return 1;
317 
318  case(MSH_TRI_3):
319  case(MSH_TRI_6):
320  case(MSH_TRI_9):
321  case(MSH_TRI_10):
322  case(MSH_TRI_12):
323  case(MSH_TRI_15):
324  case(MSH_TRI_15I):
325  case(MSH_TRI_21):
326  case(MSH_TRI_28):
327  case(MSH_TRI_36):
328  case(MSH_TRI_45):
329  case(MSH_TRI_55):
330  case(MSH_TRI_66):
331  case(MSH_TRI_18):
332  case(MSH_TRI_21I):
333  case(MSH_TRI_24):
334  case(MSH_TRI_27):
335  case(MSH_TRI_30):
336  case(MSH_TRI_B):
337  case(MSH_TRI_1):
338  case(MSH_TRI_SUB):
339  case(MSH_TRI_MINI):
340 
341  case(MSH_QUA_4):
342  case(MSH_QUA_9):
343  case(MSH_QUA_8):
344  case(MSH_QUA_16):
345  case(MSH_QUA_25):
346  case(MSH_QUA_36):
347  case(MSH_QUA_12):
348  case(MSH_QUA_16I):
349  case(MSH_QUA_20):
350  case(MSH_QUA_49):
351  case(MSH_QUA_64):
352  case(MSH_QUA_81):
353  case(MSH_QUA_100):
354  case(MSH_QUA_121):
355  case(MSH_QUA_24):
356  case(MSH_QUA_28):
357  case(MSH_QUA_32):
358  case(MSH_QUA_36I):
359  case(MSH_QUA_40):
360  case(MSH_QUA_1):
361 
362  case(MSH_POLYG_):
363  case(MSH_POLYG_B): return 2;
364 
365  case(MSH_TET_4):
366  case(MSH_TET_10):
367  case(MSH_TET_20):
368  case(MSH_TET_35):
369  case(MSH_TET_56):
370  case(MSH_TET_22):
371  case(MSH_TET_28):
372  case(MSH_TET_84):
373  case(MSH_TET_120):
374  case(MSH_TET_165):
375  case(MSH_TET_220):
376  case(MSH_TET_286):
377  case(MSH_TET_34):
378  case(MSH_TET_40):
379  case(MSH_TET_46):
380  case(MSH_TET_52):
381  case(MSH_TET_58):
382  case(MSH_TET_1):
383  case(MSH_TET_16):
384  case(MSH_TET_SUB):
385  case(MSH_TET_MINI):
386 
387  case(MSH_PYR_5):
388  case(MSH_PYR_14):
389  case(MSH_PYR_13):
390  case(MSH_PYR_30):
391  case(MSH_PYR_55):
392  case(MSH_PYR_91):
393  case(MSH_PYR_140):
394  case(MSH_PYR_204):
395  case(MSH_PYR_285):
396  case(MSH_PYR_385):
397  case(MSH_PYR_21):
398  case(MSH_PYR_29):
399  case(MSH_PYR_37):
400  case(MSH_PYR_45):
401  case(MSH_PYR_53):
402  case(MSH_PYR_61):
403  case(MSH_PYR_69):
404  case(MSH_PYR_1):
405 
406  case(MSH_PRI_6):
407  case(MSH_PRI_18):
408  case(MSH_PRI_15):
409  case(MSH_PRI_1):
410  case(MSH_PRI_40):
411  case(MSH_PRI_75):
412  case(MSH_PRI_126):
413  case(MSH_PRI_196):
414  case(MSH_PRI_288):
415  case(MSH_PRI_405):
416  case(MSH_PRI_550):
417  case(MSH_PRI_24):
418  case(MSH_PRI_33):
419  case(MSH_PRI_42):
420  case(MSH_PRI_51):
421  case(MSH_PRI_60):
422  case(MSH_PRI_69):
423  case(MSH_PRI_78):
424 
425  case(MSH_HEX_8):
426  case(MSH_HEX_27):
427  case(MSH_HEX_20):
428  case(MSH_HEX_1):
429  case(MSH_HEX_64):
430  case(MSH_HEX_125):
431  case(MSH_HEX_216):
432  case(MSH_HEX_343):
433  case(MSH_HEX_512):
434  case(MSH_HEX_729):
435  case(MSH_HEX_1000):
436  case(MSH_HEX_32):
437  case(MSH_HEX_44):
438  case(MSH_HEX_56):
439  case(MSH_HEX_68):
440  case(MSH_HEX_80):
441  case(MSH_HEX_92):
442  case(MSH_HEX_104):
443 
444  case(MSH_TRIH_4):
445 
446  case(MSH_POLYH_): return 3;
447 
448  default:
449  Msg::Error("Unknown element MSH type %i for dimension, returning -1.",
450  mshtype);
451  return -1;
452  }
453 }
454 
455 // Give the number of node corresponding to a msh type.
457 {
458  switch(mshtype) {
459  case MSH_PNT: return 1;
460  case MSH_LIN_1: return 1;
461  case MSH_LIN_2: return 2;
462  case MSH_LIN_3: return 3;
463  case MSH_LIN_4: return 4;
464  case MSH_LIN_5: return 5;
465  case MSH_LIN_6: return 6;
466  case MSH_LIN_7: return 7;
467  case MSH_LIN_8: return 8;
468  case MSH_LIN_9: return 9;
469  case MSH_LIN_10: return 10;
470  case MSH_LIN_11: return 11;
471  case MSH_TRI_1: return 1;
472  case MSH_TRI_3: return 3;
473  case MSH_TRI_6: return 6;
474  case MSH_TRI_10: return 10;
475  case MSH_TRI_15: return 15;
476  case MSH_TRI_21: return 21;
477  case MSH_TRI_28: return 28;
478  case MSH_TRI_36: return 36;
479  case MSH_TRI_45: return 45;
480  case MSH_TRI_55: return 55;
481  case MSH_TRI_66: return 66;
482  case MSH_TRI_9: return 9;
483  case MSH_TRI_12: return 12;
484  case MSH_TRI_15I: return 15;
485  case MSH_TRI_18: return 18;
486  case MSH_TRI_21I: return 21;
487  case MSH_TRI_24: return 24;
488  case MSH_TRI_27: return 27;
489  case MSH_TRI_30: return 30;
490  // case MSH_TRI_MINI : return 0;
491  // case MSH_POLYG_ : return 0;
492  // case MSH_POLYG_B : return 0;
493  case MSH_TET_1: return 1;
494  case MSH_TET_4: return 4;
495  case MSH_TET_10: return 10;
496  case MSH_TET_20: return 20;
497  case MSH_TET_35: return 35;
498  case MSH_TET_56: return 56;
499  case MSH_TET_84: return 84;
500  case MSH_TET_120: return 120;
501  case MSH_TET_165: return 165;
502  case MSH_TET_220: return 220;
503  case MSH_TET_286: return 286;
504  case MSH_TET_16: return 16;
505  case MSH_TET_22: return 22;
506  case MSH_TET_28: return 28;
507  case MSH_TET_34: return 34;
508  case MSH_TET_40: return 40;
509  case MSH_TET_46: return 46;
510  case MSH_TET_52: return 52;
511  case MSH_TET_58: return 58;
512  // case MSH_TET_MINI : return 0;
513  case MSH_QUA_1: return 1;
514  case MSH_QUA_4: return 4;
515  case MSH_QUA_9: return 9;
516  case MSH_QUA_16: return 16;
517  case MSH_QUA_25: return 25;
518  case MSH_QUA_36: return 36;
519  case MSH_QUA_49: return 49;
520  case MSH_QUA_64: return 64;
521  case MSH_QUA_81: return 81;
522  case MSH_QUA_100: return 100;
523  case MSH_QUA_121: return 121;
524  case MSH_QUA_8: return 8;
525  case MSH_QUA_12: return 12;
526  case MSH_QUA_16I: return 16;
527  case MSH_QUA_20: return 20;
528  case MSH_QUA_24: return 24;
529  case MSH_QUA_28: return 28;
530  case MSH_QUA_32: return 32;
531  case MSH_QUA_36I: return 36;
532  case MSH_QUA_40: return 40;
533  case MSH_PRI_1: return 1;
534  case MSH_PRI_6: return 6;
535  case MSH_PRI_18: return 18;
536  case MSH_PRI_40: return 40;
537  case MSH_PRI_75: return 75;
538  case MSH_PRI_126: return 126;
539  case MSH_PRI_196: return 196;
540  case MSH_PRI_288: return 288;
541  case MSH_PRI_405: return 405;
542  case MSH_PRI_550: return 550;
543  case MSH_PRI_15: return 15;
544  case MSH_PRI_24: return 24;
545  case MSH_PRI_33: return 33;
546  case MSH_PRI_42: return 42;
547  case MSH_PRI_51: return 51;
548  case MSH_PRI_60: return 60;
549  case MSH_PRI_69: return 69;
550  case MSH_PRI_78: return 78;
551  case MSH_HEX_1: return 1;
552  case MSH_HEX_8: return 8;
553  case MSH_HEX_27: return 27;
554  case MSH_HEX_64: return 64;
555  case MSH_HEX_125: return 125;
556  case MSH_HEX_216: return 216;
557  case MSH_HEX_343: return 343;
558  case MSH_HEX_512: return 512;
559  case MSH_HEX_729: return 729;
560  case MSH_HEX_1000: return 1000;
561  case MSH_HEX_20: return 20;
562  case MSH_HEX_32: return 32;
563  case MSH_HEX_44: return 44;
564  case MSH_HEX_56: return 56;
565  case MSH_HEX_68: return 68;
566  case MSH_HEX_80: return 80;
567  case MSH_HEX_92: return 92;
568  case MSH_HEX_104: return 104;
569  case MSH_PYR_1: return 1;
570  case MSH_PYR_5: return 5;
571  case MSH_PYR_14: return 14;
572  case MSH_PYR_30: return 30;
573  case MSH_PYR_55: return 55;
574  case MSH_PYR_91: return 91;
575  case MSH_PYR_140: return 140;
576  case MSH_PYR_204: return 204;
577  case MSH_PYR_285: return 285;
578  case MSH_PYR_385: return 385;
579  case MSH_PYR_13: return 13;
580  case MSH_PYR_21: return 21;
581  case MSH_PYR_29: return 29;
582  case MSH_PYR_37: return 37;
583  case MSH_PYR_45: return 45;
584  case MSH_PYR_53: return 53;
585  case MSH_PYR_61: return 61;
586  case MSH_PYR_69: return 69;
587  case MSH_TRIH_4: return 4;
588  // case MSH_POLYH_ : return 0;
589  default: Msg::Warning("Unknown element MSH type %d", mshtype); return 0;
590  }
591 
592  return 0;
593 }
594 
595 // Gives > 0 if element tag is in Serendipity Family.
596 // Gives < 2 if element tag is in 'Normal' Family.
597 // 1 is for element that is either Serendipity or not !
599 {
600  switch(mshtype) {
601  case MSH_PNT:
602  case MSH_LIN_1:
603  case MSH_LIN_2:
604  case MSH_LIN_3:
605  case MSH_LIN_4:
606  case MSH_LIN_5:
607  case MSH_LIN_6:
608  case MSH_LIN_7:
609  case MSH_LIN_8:
610  case MSH_LIN_9:
611  case MSH_LIN_10:
612  case MSH_LIN_11:
613 
614  case MSH_TRI_1:
615  case MSH_TRI_3:
616  case MSH_TRI_6:
617 
618  case MSH_QUA_1:
619  case MSH_QUA_4:
620 
621  case MSH_TET_1:
622  case MSH_TET_4:
623  case MSH_TET_10:
624 
625  case MSH_PRI_1:
626  case MSH_PRI_6:
627 
628  case MSH_HEX_1:
629  case MSH_HEX_8:
630 
631  case MSH_PYR_1:
632  case MSH_PYR_5:
633 
634  case MSH_POLYG_:
635  case MSH_POLYG_B:
636  case MSH_POLYH_: return 1; // Serendipity or not
637 
638  case MSH_TRI_10:
639  case MSH_TRI_15:
640  case MSH_TRI_21:
641  case MSH_TRI_28:
642  case MSH_TRI_36:
643  case MSH_TRI_45:
644  case MSH_TRI_55:
645  case MSH_TRI_66:
646 
647  case MSH_QUA_9:
648  case MSH_QUA_16:
649  case MSH_QUA_25:
650  case MSH_QUA_36:
651  case MSH_QUA_49:
652  case MSH_QUA_64:
653  case MSH_QUA_81:
654  case MSH_QUA_100:
655  case MSH_QUA_121:
656 
657  case MSH_TET_20:
658  case MSH_TET_35:
659  case MSH_TET_56:
660  case MSH_TET_84:
661  case MSH_TET_120:
662  case MSH_TET_165:
663  case MSH_TET_220:
664  case MSH_TET_286:
665 
666  case MSH_PRI_18:
667  case MSH_PRI_40:
668  case MSH_PRI_75:
669  case MSH_PRI_126:
670  case MSH_PRI_196:
671  case MSH_PRI_288:
672  case MSH_PRI_405:
673  case MSH_PRI_550:
674 
675  case MSH_HEX_27:
676  case MSH_HEX_64:
677  case MSH_HEX_125:
678  case MSH_HEX_216:
679  case MSH_HEX_343:
680  case MSH_HEX_512:
681  case MSH_HEX_729:
682  case MSH_HEX_1000:
683 
684  case MSH_PYR_14:
685  case MSH_PYR_30:
686  case MSH_PYR_55:
687  case MSH_PYR_91:
688  case MSH_PYR_140:
689  case MSH_PYR_204:
690  case MSH_PYR_285:
691  case MSH_PYR_385:
692 
693  case MSH_TRIH_4: return 0; // Not Serendipity
694 
695  case MSH_TRI_9:
696  case MSH_TRI_12:
697  case MSH_TRI_15I:
698  case MSH_TRI_18:
699  case MSH_TRI_21I:
700  case MSH_TRI_24:
701  case MSH_TRI_27:
702  case MSH_TRI_30:
703 
704  case MSH_QUA_8:
705  case MSH_QUA_12:
706  case MSH_QUA_16I:
707  case MSH_QUA_20:
708  case MSH_QUA_24:
709  case MSH_QUA_28:
710  case MSH_QUA_32:
711  case MSH_QUA_36I:
712  case MSH_QUA_40:
713 
714  case MSH_TET_22:
715  case MSH_TET_28:
716  case MSH_TET_34:
717  case MSH_TET_40:
718  case MSH_TET_46:
719  case MSH_TET_52:
720  case MSH_TET_58:
721  case MSH_TET_16:
722 
723  case MSH_PRI_15:
724  case MSH_PRI_24:
725  case MSH_PRI_33:
726  case MSH_PRI_42:
727  case MSH_PRI_51:
728  case MSH_PRI_60:
729  case MSH_PRI_69:
730  case MSH_PRI_78:
731 
732  case MSH_HEX_20:
733  case MSH_HEX_32:
734  case MSH_HEX_44:
735  case MSH_HEX_56:
736  case MSH_HEX_68:
737  case MSH_HEX_80:
738  case MSH_HEX_92:
739  case MSH_HEX_104:
740 
741  case MSH_PYR_13:
742  case MSH_PYR_21:
743  case MSH_PYR_29:
744  case MSH_PYR_37:
745  case MSH_PYR_45:
746  case MSH_PYR_53:
747  case MSH_PYR_61:
748  case MSH_PYR_69: return 2; // Only Serendipity
749 
750  default:
751  Msg::Warning("Unknown element MSH type %d, assuming not serendipity.",
752  mshtype);
753  return 0;
754  }
755 }
756 
757 int ElementType::getType(int parentType, int order, bool serendip)
758 {
759  switch(parentType) {
760  case TYPE_PNT: return MSH_PNT;
761  case TYPE_LIN:
762  switch(order) {
763  case 0: return MSH_LIN_1;
764  case 1: return MSH_LIN_2;
765  case 2: return MSH_LIN_3;
766  case 3: return MSH_LIN_4;
767  case 4: return MSH_LIN_5;
768  case 5: return MSH_LIN_6;
769  case 6: return MSH_LIN_7;
770  case 7: return MSH_LIN_8;
771  case 8: return MSH_LIN_9;
772  case 9: return MSH_LIN_10;
773  case 10: return MSH_LIN_11;
774  default: Msg::Error("Line order %i unknown", order); return 0;
775  }
776  break;
777  case TYPE_TRI:
778  switch(order) {
779  case 0: return MSH_TRI_1;
780  case 1: return MSH_TRI_3;
781  case 2: return MSH_TRI_6;
782  case 3: return serendip ? MSH_TRI_9 : MSH_TRI_10;
783  case 4: return serendip ? MSH_TRI_12 : MSH_TRI_15;
784  case 5: return serendip ? MSH_TRI_15I : MSH_TRI_21;
785  case 6: return serendip ? MSH_TRI_18 : MSH_TRI_28;
786  case 7: return serendip ? MSH_TRI_21I : MSH_TRI_36;
787  case 8: return serendip ? MSH_TRI_24 : MSH_TRI_45;
788  case 9: return serendip ? MSH_TRI_27 : MSH_TRI_55;
789  case 10: return serendip ? MSH_TRI_30 : MSH_TRI_66;
790  default: Msg::Error("Triangle order %i unknown", order); return 0;
791  }
792  break;
793  case TYPE_QUA:
794  switch(order) {
795  case 0: return MSH_QUA_1;
796  case 1: return MSH_QUA_4;
797  case 2: return serendip ? MSH_QUA_8 : MSH_QUA_9;
798  case 3: return serendip ? MSH_QUA_12 : MSH_QUA_16;
799  case 4: return serendip ? MSH_QUA_16I : MSH_QUA_25;
800  case 5: return serendip ? MSH_QUA_20 : MSH_QUA_36;
801  case 6: return serendip ? MSH_QUA_24 : MSH_QUA_49;
802  case 7: return serendip ? MSH_QUA_28 : MSH_QUA_64;
803  case 8: return serendip ? MSH_QUA_32 : MSH_QUA_81;
804  case 9: return serendip ? MSH_QUA_36I : MSH_QUA_100;
805  case 10: return serendip ? MSH_QUA_40 : MSH_QUA_121;
806  default: Msg::Error("Quad order %i unknown", order); return 0;
807  }
808  break;
809  case TYPE_TET:
810  switch(order) {
811  case 0: return MSH_TET_1;
812  case 1: return MSH_TET_4;
813  case 2: return MSH_TET_10;
814  case 3: return serendip ? MSH_TET_16 : MSH_TET_20;
815  case 4: return serendip ? MSH_TET_22 : MSH_TET_35;
816  case 5: return serendip ? MSH_TET_28 : MSH_TET_56;
817  case 6: return serendip ? MSH_TET_34 : MSH_TET_84;
818  case 7: return serendip ? MSH_TET_40 : MSH_TET_120;
819  case 8: return serendip ? MSH_TET_46 : MSH_TET_165;
820  case 9: return serendip ? MSH_TET_52 : MSH_TET_220;
821  case 10: return serendip ? MSH_TET_58 : MSH_TET_286;
822  default: Msg::Error("Tetrahedron order %i unknown", order); return 0;
823  }
824  break;
825  case TYPE_HEX:
826  switch(order) {
827  case 0: return MSH_HEX_1;
828  case 1: return MSH_HEX_8;
829  case 2: return serendip ? MSH_HEX_20 : MSH_HEX_27;
830  case 3: return serendip ? MSH_HEX_32 : MSH_HEX_64;
831  case 4: return serendip ? MSH_HEX_44 : MSH_HEX_125;
832  case 5: return serendip ? MSH_HEX_56 : MSH_HEX_216;
833  case 6: return serendip ? MSH_HEX_68 : MSH_HEX_343;
834  case 7: return serendip ? MSH_HEX_80 : MSH_HEX_512;
835  case 8: return serendip ? MSH_HEX_92 : MSH_HEX_729;
836  case 9: return serendip ? MSH_HEX_104 : MSH_HEX_1000;
837  default: Msg::Error("hexahedron order %i unknown", order); return 0;
838  }
839  break;
840  case TYPE_PRI:
841  switch(order) {
842  case 0: return MSH_PRI_1;
843  case 1: return MSH_PRI_6;
844  case 2: return serendip ? MSH_PRI_15 : MSH_PRI_18;
845  case 3: return serendip ? MSH_PRI_24 : MSH_PRI_40;
846  case 4: return serendip ? MSH_PRI_33 : MSH_PRI_75;
847  case 5: return serendip ? MSH_PRI_42 : MSH_PRI_126;
848  case 6: return serendip ? MSH_PRI_51 : MSH_PRI_196;
849  case 7: return serendip ? MSH_PRI_60 : MSH_PRI_288;
850  case 8: return serendip ? MSH_PRI_69 : MSH_PRI_405;
851  case 9: return serendip ? MSH_PRI_78 : MSH_PRI_550;
852  default: Msg::Error("Prism order %i unknown", order); return 0;
853  }
854  break;
855  case TYPE_PYR:
856  switch(order) {
857  case 0: return MSH_PYR_1;
858  case 1: return MSH_PYR_5;
859  case 2: return serendip ? MSH_PYR_13 : MSH_PYR_14;
860  case 3: return serendip ? MSH_PYR_21 : MSH_PYR_30;
861  case 4: return serendip ? MSH_PYR_29 : MSH_PYR_55;
862  case 5: return serendip ? MSH_PYR_37 : MSH_PYR_91;
863  case 6: return serendip ? MSH_PYR_45 : MSH_PYR_140;
864  case 7: return serendip ? MSH_PYR_53 : MSH_PYR_204;
865  case 8: return serendip ? MSH_PYR_61 : MSH_PYR_285;
866  case 9: return serendip ? MSH_PYR_69 : MSH_PYR_385;
867  default: Msg::Error("Pyramid order %i unknown", order); return 0;
868  }
869  break;
870  case TYPE_TRIH: return MSH_TRIH_4;
871  default:
872  Msg::Warning("Unknown element parent type %i, returning 0", parentType);
873  return 0;
874  }
875 }
876 
878 {
879  return getType(getParentType(mshtype), 1);
880 }
881 
882 std::string ElementType::nameOfParentType(int parentType, bool plural)
883 {
884  switch(parentType) {
885  case TYPE_PNT: return plural ? "points" : "point";
886  case TYPE_LIN: return plural ? "lines" : "line";
887  case TYPE_TRI: return plural ? "triangles" : "triangle";
888  case TYPE_QUA: return plural ? "quadrangles" : "quadrangle";
889  case TYPE_TET: return plural ? "tetrahedra" : "tetrahedron";
890  case TYPE_PYR: return plural ? "pyramids" : "pyramid";
891  case TYPE_PRI: return plural ? "prisms" : "prism";
892  case TYPE_HEX: return plural ? "hexahedra" : "hexahedron";
893  case TYPE_POLYG: return plural ? "polygons" : "polygon";
894  case TYPE_POLYH: return plural ? "polyhedra" : "polyhedron";
895  case TYPE_XFEM: return "xfem";
896  case TYPE_MINI: return "mini";
897  case TYPE_TRIH: return plural ? "trihedra" : "trihedron";
898  default: return "undefined";
899  }
900 }
MSH_TRI_27
#define MSH_TRI_27
Definition: GmshDefines.h:134
MSH_PRI_550
#define MSH_PRI_550
Definition: GmshDefines.h:192
MSH_TRI_10
#define MSH_TRI_10
Definition: GmshDefines.h:100
MSH_LIN_2
#define MSH_LIN_2
Definition: GmshDefines.h:80
MSH_HEX_729
#define MSH_HEX_729
Definition: GmshDefines.h:177
MSH_TRI_30
#define MSH_TRI_30
Definition: GmshDefines.h:135
MSH_HEX_8
#define MSH_HEX_8
Definition: GmshDefines.h:84
MSH_TRI_6
#define MSH_TRI_6
Definition: GmshDefines.h:88
MSH_TRI_15I
#define MSH_TRI_15I
Definition: GmshDefines.h:103
MSH_TRI_36
#define MSH_TRI_36
Definition: GmshDefines.h:122
MSH_TRI_28
#define MSH_TRI_28
Definition: GmshDefines.h:121
TYPE_XFEM
#define TYPE_XFEM
Definition: GmshDefines.h:74
MSH_TET_286
#define MSH_TET_286
Definition: GmshDefines.h:155
MSH_LIN_SUB
#define MSH_LIN_SUB
Definition: GmshDefines.h:220
MSH_QUA_81
#define MSH_QUA_81
Definition: GmshDefines.h:128
MSH_HEX_80
#define MSH_HEX_80
Definition: GmshDefines.h:184
MSH_LIN_10
#define MSH_LIN_10
Definition: GmshDefines.h:144
MSH_PYR_45
#define MSH_PYR_45
Definition: GmshDefines.h:213
ElementType::nameOfParentType
std::string nameOfParentType(int type, bool plural=false)
Definition: ElementType.cpp:882
MSH_QUA_24
#define MSH_QUA_24
Definition: GmshDefines.h:136
MSH_PYR_91
#define MSH_PYR_91
Definition: GmshDefines.h:204
MSH_PNT
#define MSH_PNT
Definition: GmshDefines.h:94
TYPE_LIN
#define TYPE_LIN
Definition: GmshDefines.h:65
MSH_TET_58
#define MSH_TET_58
Definition: GmshDefines.h:161
MSH_TRI_55
#define MSH_TRI_55
Definition: GmshDefines.h:124
MSH_PRI_15
#define MSH_PRI_15
Definition: GmshDefines.h:97
MSH_PRI_78
#define MSH_PRI_78
Definition: GmshDefines.h:200
MSH_PRI_405
#define MSH_PRI_405
Definition: GmshDefines.h:191
MSH_TRI_24
#define MSH_TRI_24
Definition: GmshDefines.h:133
MSH_QUA_121
#define MSH_QUA_121
Definition: GmshDefines.h:130
MSH_PYR_14
#define MSH_PYR_14
Definition: GmshDefines.h:93
MSH_HEX_64
#define MSH_HEX_64
Definition: GmshDefines.h:172
MSH_TET_35
#define MSH_TET_35
Definition: GmshDefines.h:109
MSH_LIN_9
#define MSH_LIN_9
Definition: GmshDefines.h:143
MSH_QUA_4
#define MSH_QUA_4
Definition: GmshDefines.h:82
Msg::Warning
static void Warning(const char *fmt,...)
Definition: GmshMessage.cpp:543
MSH_QUA_16
#define MSH_QUA_16
Definition: GmshDefines.h:115
Msg::Error
static void Error(const char *fmt,...)
Definition: GmshMessage.cpp:482
MSH_PNT_SUB
#define MSH_PNT_SUB
Definition: GmshDefines.h:219
MSH_LIN_4
#define MSH_LIN_4
Definition: GmshDefines.h:105
MSH_TET_SUB
#define MSH_TET_SUB
Definition: GmshDefines.h:222
MSH_TRI_1
#define MSH_TRI_1
Definition: GmshDefines.h:164
MSH_PRI_75
#define MSH_PRI_75
Definition: GmshDefines.h:170
TYPE_PNT
#define TYPE_PNT
Definition: GmshDefines.h:64
MSH_TRI_18
#define MSH_TRI_18
Definition: GmshDefines.h:131
MSH_TET_MINI
#define MSH_TET_MINI
Definition: GmshDefines.h:225
ElementType::getSerendipity
int getSerendipity(int type)
Definition: ElementType.cpp:598
TYPE_MINI
#define TYPE_MINI
Definition: GmshDefines.h:75
TYPE_TRI
#define TYPE_TRI
Definition: GmshDefines.h:66
MSH_HEX_1
#define MSH_HEX_1
Definition: GmshDefines.h:167
MSH_TRI_12
#define MSH_TRI_12
Definition: GmshDefines.h:101
MSH_PYR_1
#define MSH_PYR_1
Definition: GmshDefines.h:218
MSH_LIN_1
#define MSH_LIN_1
Definition: GmshDefines.h:163
MSH_HEX_104
#define MSH_HEX_104
Definition: GmshDefines.h:186
MSH_HEX_32
#define MSH_HEX_32
Definition: GmshDefines.h:180
MSH_HEX_512
#define MSH_HEX_512
Definition: GmshDefines.h:176
MSH_HEX_44
#define MSH_HEX_44
Definition: GmshDefines.h:181
GmshMessage.h
MSH_PYR_29
#define MSH_PYR_29
Definition: GmshDefines.h:211
MSH_PYR_5
#define MSH_PYR_5
Definition: GmshDefines.h:86
MSH_HEX_125
#define MSH_HEX_125
Definition: GmshDefines.h:173
MSH_PRI_40
#define MSH_PRI_40
Definition: GmshDefines.h:169
TYPE_PRI
#define TYPE_PRI
Definition: GmshDefines.h:70
MSH_QUA_100
#define MSH_QUA_100
Definition: GmshDefines.h:129
MSH_TRI_66
#define MSH_TRI_66
Definition: GmshDefines.h:125
MSH_HEX_343
#define MSH_HEX_343
Definition: GmshDefines.h:175
MSH_TET_40
#define MSH_TET_40
Definition: GmshDefines.h:158
MSH_TET_16
#define MSH_TET_16
Definition: GmshDefines.h:223
MSH_TET_22
#define MSH_TET_22
Definition: GmshDefines.h:111
MSH_TRI_45
#define MSH_TRI_45
Definition: GmshDefines.h:123
MSH_TRI_3
#define MSH_TRI_3
Definition: GmshDefines.h:81
MSH_LIN_C
#define MSH_LIN_C
Definition: GmshDefines.h:149
MSH_PYR_385
#define MSH_PYR_385
Definition: GmshDefines.h:208
MSH_LIN_6
#define MSH_LIN_6
Definition: GmshDefines.h:107
MSH_TET_84
#define MSH_TET_84
Definition: GmshDefines.h:151
ElementType::getPrimaryType
int getPrimaryType(int type)
Definition: ElementType.cpp:877
MSH_TET_1
#define MSH_TET_1
Definition: GmshDefines.h:166
MSH_LIN_3
#define MSH_LIN_3
Definition: GmshDefines.h:87
MSH_TET_28
#define MSH_TET_28
Definition: GmshDefines.h:112
ElementType::getType
int getType(int parentType, int order, bool serendip=false)
Definition: ElementType.cpp:757
MSH_PYR_37
#define MSH_PYR_37
Definition: GmshDefines.h:212
MSH_TET_220
#define MSH_TET_220
Definition: GmshDefines.h:154
MSH_QUA_20
#define MSH_QUA_20
Definition: GmshDefines.h:120
MSH_TRI_SUB
#define MSH_TRI_SUB
Definition: GmshDefines.h:221
MSH_TRI_B
#define MSH_TRI_B
Definition: GmshDefines.h:147
MSH_HEX_1000
#define MSH_HEX_1000
Definition: GmshDefines.h:178
MSH_PYR_285
#define MSH_PYR_285
Definition: GmshDefines.h:207
MSH_PRI_288
#define MSH_PRI_288
Definition: GmshDefines.h:190
MSH_PRI_196
#define MSH_PRI_196
Definition: GmshDefines.h:189
MSH_QUA_8
#define MSH_QUA_8
Definition: GmshDefines.h:95
MSH_LIN_7
#define MSH_LIN_7
Definition: GmshDefines.h:141
MSH_HEX_20
#define MSH_HEX_20
Definition: GmshDefines.h:96
MSH_PRI_1
#define MSH_PRI_1
Definition: GmshDefines.h:168
GmshDefines.h
MSH_PYR_53
#define MSH_PYR_53
Definition: GmshDefines.h:214
MSH_QUA_49
#define MSH_QUA_49
Definition: GmshDefines.h:126
MSH_QUA_36I
#define MSH_QUA_36I
Definition: GmshDefines.h:139
MSH_POLYG_B
#define MSH_POLYG_B
Definition: GmshDefines.h:148
MSH_LIN_11
#define MSH_LIN_11
Definition: GmshDefines.h:145
MSH_PYR_55
#define MSH_PYR_55
Definition: GmshDefines.h:203
MSH_TET_34
#define MSH_TET_34
Definition: GmshDefines.h:157
MSH_PRI_69
#define MSH_PRI_69
Definition: GmshDefines.h:199
MSH_QUA_64
#define MSH_QUA_64
Definition: GmshDefines.h:127
MSH_PYR_204
#define MSH_PYR_204
Definition: GmshDefines.h:206
MSH_PYR_30
#define MSH_PYR_30
Definition: GmshDefines.h:202
MSH_LIN_B
#define MSH_LIN_B
Definition: GmshDefines.h:146
MSH_TET_165
#define MSH_TET_165
Definition: GmshDefines.h:153
MSH_TET_10
#define MSH_TET_10
Definition: GmshDefines.h:90
MSH_LIN_5
#define MSH_LIN_5
Definition: GmshDefines.h:106
MSH_QUA_25
#define MSH_QUA_25
Definition: GmshDefines.h:116
MSH_QUA_28
#define MSH_QUA_28
Definition: GmshDefines.h:137
MSH_PRI_24
#define MSH_PRI_24
Definition: GmshDefines.h:194
MSH_HEX_68
#define MSH_HEX_68
Definition: GmshDefines.h:183
MSH_QUA_12
#define MSH_QUA_12
Definition: GmshDefines.h:118
MSH_PRI_51
#define MSH_PRI_51
Definition: GmshDefines.h:197
TYPE_PYR
#define TYPE_PYR
Definition: GmshDefines.h:69
MSH_QUA_9
#define MSH_QUA_9
Definition: GmshDefines.h:89
MSH_QUA_1
#define MSH_QUA_1
Definition: GmshDefines.h:165
MSH_HEX_56
#define MSH_HEX_56
Definition: GmshDefines.h:182
MSH_PYR_140
#define MSH_PYR_140
Definition: GmshDefines.h:205
MSH_QUA_16I
#define MSH_QUA_16I
Definition: GmshDefines.h:119
MSH_TET_120
#define MSH_TET_120
Definition: GmshDefines.h:152
MSH_POLYH_
#define MSH_POLYH_
Definition: GmshDefines.h:114
TYPE_QUA
#define TYPE_QUA
Definition: GmshDefines.h:67
MSH_TRIH_4
#define MSH_TRIH_4
Definition: GmshDefines.h:226
TYPE_POLYG
#define TYPE_POLYG
Definition: GmshDefines.h:72
MSH_TRI_21I
#define MSH_TRI_21I
Definition: GmshDefines.h:132
MSH_PYR_69
#define MSH_PYR_69
Definition: GmshDefines.h:216
MSH_PRI_18
#define MSH_PRI_18
Definition: GmshDefines.h:92
MSH_QUA_36
#define MSH_QUA_36
Definition: GmshDefines.h:117
ElementType::getDimension
int getDimension(int type)
Definition: ElementType.cpp:297
MSH_TET_4
#define MSH_TET_4
Definition: GmshDefines.h:83
MSH_HEX_27
#define MSH_HEX_27
Definition: GmshDefines.h:91
MSH_TET_52
#define MSH_TET_52
Definition: GmshDefines.h:160
ElementType::getOrder
int getOrder(int type)
Definition: ElementType.cpp:158
MSH_PYR_61
#define MSH_PYR_61
Definition: GmshDefines.h:215
MSH_QUA_40
#define MSH_QUA_40
Definition: GmshDefines.h:140
MSH_POLYG_
#define MSH_POLYG_
Definition: GmshDefines.h:113
MSH_TRI_MINI
#define MSH_TRI_MINI
Definition: GmshDefines.h:224
MSH_PRI_60
#define MSH_PRI_60
Definition: GmshDefines.h:198
TYPE_HEX
#define TYPE_HEX
Definition: GmshDefines.h:71
MSH_TET_46
#define MSH_TET_46
Definition: GmshDefines.h:159
TYPE_TET
#define TYPE_TET
Definition: GmshDefines.h:68
TYPE_TRIH
#define TYPE_TRIH
Definition: GmshDefines.h:76
MSH_TET_20
#define MSH_TET_20
Definition: GmshDefines.h:108
MSH_TRI_15
#define MSH_TRI_15
Definition: GmshDefines.h:102
MSH_PYR_13
#define MSH_PYR_13
Definition: GmshDefines.h:98
MSH_PRI_6
#define MSH_PRI_6
Definition: GmshDefines.h:85
ElementType::getNumVertices
int getNumVertices(int type)
Definition: ElementType.cpp:456
MSH_PYR_21
#define MSH_PYR_21
Definition: GmshDefines.h:210
MSH_QUA_32
#define MSH_QUA_32
Definition: GmshDefines.h:138
ElementType.h
MSH_HEX_216
#define MSH_HEX_216
Definition: GmshDefines.h:174
MSH_LIN_8
#define MSH_LIN_8
Definition: GmshDefines.h:142
MSH_TRI_9
#define MSH_TRI_9
Definition: GmshDefines.h:99
TYPE_POLYH
#define TYPE_POLYH
Definition: GmshDefines.h:73
MSH_TRI_21
#define MSH_TRI_21
Definition: GmshDefines.h:104
ElementType::getParentType
int getParentType(int type)
Definition: ElementType.cpp:10
MSH_PRI_33
#define MSH_PRI_33
Definition: GmshDefines.h:195
MSH_HEX_92
#define MSH_HEX_92
Definition: GmshDefines.h:185
MSH_PRI_126
#define MSH_PRI_126
Definition: GmshDefines.h:188
MSH_TET_56
#define MSH_TET_56
Definition: GmshDefines.h:110
MSH_PRI_42
#define MSH_PRI_42
Definition: GmshDefines.h:196