gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
GmshDefines.h
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 #ifndef GMSH_DEFINES_H
7 #define GMSH_DEFINES_H
8 
9 // IO file formats (numbers should not be changed)
10 #define FORMAT_MSH 1
11 #define FORMAT_UNV 2
12 #define FORMAT_XPM 4
13 #define FORMAT_PS 5
14 #define FORMAT_BMP 6
15 #define FORMAT_GIF 7
16 #define FORMAT_GEO 8
17 #define FORMAT_JPEG 9
18 #define FORMAT_AUTO 10
19 #define FORMAT_PPM 11
20 #define FORMAT_YUV 12
21 #define FORMAT_OPT 15
22 #define FORMAT_VTK 16
23 #define FORMAT_MPEG 17
24 #define FORMAT_TEX 18
25 #define FORMAT_VRML 19
26 #define FORMAT_EPS 20
27 #define FORMAT_MAIL 21
28 #define FORMAT_PNG 22
29 #define FORMAT_TXT 23
30 #define FORMAT_PDF 24
31 #define FORMAT_RMED 25
32 #define FORMAT_POS 26
33 #define FORMAT_STL 27
34 #define FORMAT_P3D 28
35 #define FORMAT_SVG 29
36 #define FORMAT_MESH 30
37 #define FORMAT_BDF 31
38 #define FORMAT_CGNS 32
39 #define FORMAT_MED 33
40 #define FORMAT_DIFF 34
41 #define FORMAT_BREP 35
42 #define FORMAT_STEP 36
43 #define FORMAT_IGES 37
44 #define FORMAT_IR3 38
45 #define FORMAT_INP 39
46 #define FORMAT_PLY2 40
47 #define FORMAT_CELUM 41
48 #define FORMAT_SU2 42
49 #define FORMAT_MPEG_PREVIEW 43
50 #define FORMAT_PGF 44
51 #define FORMAT_PVTU 45
52 #define FORMAT_X3D 46
53 #define FORMAT_TOCHNOG 47
54 #define FORMAT_TIKZ 48
55 #define FORMAT_NEU 49
56 #define FORMAT_MATLAB 50
57 #define FORMAT_KEY 51
58 #define FORMAT_XMT 52
59 #define FORMAT_OFF 53
60 #define FORMAT_PY 54
61 #define FORMAT_RAD 55
62 
63 // Element types
64 #define TYPE_PNT 1
65 #define TYPE_LIN 2
66 #define TYPE_TRI 3
67 #define TYPE_QUA 4
68 #define TYPE_TET 5
69 #define TYPE_PYR 6
70 #define TYPE_PRI 7
71 #define TYPE_HEX 8
72 #define TYPE_POLYG 9
73 #define TYPE_POLYH 10
74 #define TYPE_XFEM 11
75 #define TYPE_MINI 12
76 #define TYPE_TRIH 13
77 #define TYPE_MAX_NUM 13 // keep this up-to-date when adding new type
78 
79 // Element types in .msh file format (numbers should not be changed)
80 #define MSH_LIN_2 1
81 #define MSH_TRI_3 2
82 #define MSH_QUA_4 3
83 #define MSH_TET_4 4
84 #define MSH_HEX_8 5
85 #define MSH_PRI_6 6
86 #define MSH_PYR_5 7
87 #define MSH_LIN_3 8
88 #define MSH_TRI_6 9
89 #define MSH_QUA_9 10
90 #define MSH_TET_10 11
91 #define MSH_HEX_27 12
92 #define MSH_PRI_18 13
93 #define MSH_PYR_14 14
94 #define MSH_PNT 15
95 #define MSH_QUA_8 16
96 #define MSH_HEX_20 17
97 #define MSH_PRI_15 18
98 #define MSH_PYR_13 19
99 #define MSH_TRI_9 20
100 #define MSH_TRI_10 21
101 #define MSH_TRI_12 22
102 #define MSH_TRI_15 23
103 #define MSH_TRI_15I 24
104 #define MSH_TRI_21 25
105 #define MSH_LIN_4 26
106 #define MSH_LIN_5 27
107 #define MSH_LIN_6 28
108 #define MSH_TET_20 29
109 #define MSH_TET_35 30
110 #define MSH_TET_56 31
111 #define MSH_TET_22 32
112 #define MSH_TET_28 33
113 #define MSH_POLYG_ 34
114 #define MSH_POLYH_ 35
115 #define MSH_QUA_16 36
116 #define MSH_QUA_25 37
117 #define MSH_QUA_36 38
118 #define MSH_QUA_12 39
119 #define MSH_QUA_16I 40
120 #define MSH_QUA_20 41
121 #define MSH_TRI_28 42
122 #define MSH_TRI_36 43
123 #define MSH_TRI_45 44
124 #define MSH_TRI_55 45
125 #define MSH_TRI_66 46
126 #define MSH_QUA_49 47
127 #define MSH_QUA_64 48
128 #define MSH_QUA_81 49
129 #define MSH_QUA_100 50
130 #define MSH_QUA_121 51
131 #define MSH_TRI_18 52
132 #define MSH_TRI_21I 53
133 #define MSH_TRI_24 54
134 #define MSH_TRI_27 55
135 #define MSH_TRI_30 56
136 #define MSH_QUA_24 57
137 #define MSH_QUA_28 58
138 #define MSH_QUA_32 59
139 #define MSH_QUA_36I 60
140 #define MSH_QUA_40 61
141 #define MSH_LIN_7 62
142 #define MSH_LIN_8 63
143 #define MSH_LIN_9 64
144 #define MSH_LIN_10 65
145 #define MSH_LIN_11 66
146 #define MSH_LIN_B 67
147 #define MSH_TRI_B 68
148 #define MSH_POLYG_B 69
149 #define MSH_LIN_C 70
150 // TETS COMPLETE (6->10)
151 #define MSH_TET_84 71
152 #define MSH_TET_120 72
153 #define MSH_TET_165 73
154 #define MSH_TET_220 74
155 #define MSH_TET_286 75
156 // TETS INCOMPLETE (6->10)
157 #define MSH_TET_34 79
158 #define MSH_TET_40 80
159 #define MSH_TET_46 81
160 #define MSH_TET_52 82
161 #define MSH_TET_58 83
162 //
163 #define MSH_LIN_1 84
164 #define MSH_TRI_1 85
165 #define MSH_QUA_1 86
166 #define MSH_TET_1 87
167 #define MSH_HEX_1 88
168 #define MSH_PRI_1 89
169 #define MSH_PRI_40 90
170 #define MSH_PRI_75 91
171 // HEXES COMPLETE (3->9)
172 #define MSH_HEX_64 92
173 #define MSH_HEX_125 93
174 #define MSH_HEX_216 94
175 #define MSH_HEX_343 95
176 #define MSH_HEX_512 96
177 #define MSH_HEX_729 97
178 #define MSH_HEX_1000 98
179 // HEXES INCOMPLETE (3->9)
180 #define MSH_HEX_32 99
181 #define MSH_HEX_44 100
182 #define MSH_HEX_56 101
183 #define MSH_HEX_68 102
184 #define MSH_HEX_80 103
185 #define MSH_HEX_92 104
186 #define MSH_HEX_104 105
187 // PRISMS COMPLETE (5->9)
188 #define MSH_PRI_126 106
189 #define MSH_PRI_196 107
190 #define MSH_PRI_288 108
191 #define MSH_PRI_405 109
192 #define MSH_PRI_550 110
193 // PRISMS INCOMPLETE (3->9)
194 #define MSH_PRI_24 111
195 #define MSH_PRI_33 112
196 #define MSH_PRI_42 113
197 #define MSH_PRI_51 114
198 #define MSH_PRI_60 115
199 #define MSH_PRI_69 116
200 #define MSH_PRI_78 117
201 // PYRAMIDS COMPLETE (3->9)
202 #define MSH_PYR_30 118
203 #define MSH_PYR_55 119
204 #define MSH_PYR_91 120
205 #define MSH_PYR_140 121
206 #define MSH_PYR_204 122
207 #define MSH_PYR_285 123
208 #define MSH_PYR_385 124
209 // PYRAMIDS INCOMPLETE (3->9)
210 #define MSH_PYR_21 125
211 #define MSH_PYR_29 126
212 #define MSH_PYR_37 127
213 #define MSH_PYR_45 128
214 #define MSH_PYR_53 129
215 #define MSH_PYR_61 130
216 #define MSH_PYR_69 131
217 // Additional types
218 #define MSH_PYR_1 132
219 #define MSH_PNT_SUB 133
220 #define MSH_LIN_SUB 134
221 #define MSH_TRI_SUB 135
222 #define MSH_TET_SUB 136
223 #define MSH_TET_16 137
224 #define MSH_TRI_MINI 138
225 #define MSH_TET_MINI 139
226 #define MSH_TRIH_4 140
227 #define MSH_MAX_NUM 140 // keep this up-to-date when adding new type
228 
229 // Geometric entities
230 #define ENT_NONE 0
231 #define ENT_POINT (1<<0)
232 #define ENT_CURVE (1<<1)
233 #define ENT_SURFACE (1<<2)
234 #define ENT_VOLUME (1<<3)
235 #define ENT_ALL (ENT_POINT | ENT_CURVE | ENT_SURFACE | ENT_VOLUME)
236 
237 // 2D meshing algorithms (numbers should not be changed)
238 #define ALGO_2D_MESHADAPT 1
239 #define ALGO_2D_AUTO 2
240 #define ALGO_2D_INITIAL_ONLY 3
241 #define ALGO_2D_DELAUNAY 5
242 #define ALGO_2D_FRONTAL 6
243 #define ALGO_2D_BAMG 7
244 #define ALGO_2D_FRONTAL_QUAD 8
245 #define ALGO_2D_PACK_PRLGRMS 9
246 #define ALGO_2D_PACK_PRLGRMS_CSTR 10
247 #define ALGO_2D_QUAD_QUASI_STRUCT 11
248 
249 // 3D meshing algorithms (numbers should not be changed)
250 #define ALGO_3D_DELAUNAY 1
251 #define ALGO_3D_INITIAL_ONLY 3
252 #define ALGO_3D_FRONTAL 4
253 #define ALGO_3D_MMG3D 7
254 #define ALGO_3D_RTREE 9
255 #define ALGO_3D_HXT 10
256 
257 // Meshing methods
258 #define MESH_NONE 0
259 #define MESH_TRANSFINITE 1
260 #define MESH_UNSTRUCTURED 2
261 
262 // QuadTri options (structured/unstructured coupling with pyramids)
263 #define NO_QUADTRI 0
264 #define QUADTRI_ADDVERTS_1 1
265 #define QUADTRI_ADDVERTS_1_RECOMB 2
266 #define QUADTRI_NOVERTS_1 3
267 #define QUADTRI_NOVERTS_1_RECOMB 4
268 #define TRANSFINITE_QUADTRI_1 5
269 
270 #endif