1 /**
2 * MOAB, a Mesh-Oriented datABase, is a software component for creating,
3 * storing and accessing finite element mesh data.
4 *
5 * Copyright 2004 Sandia Corporation. Under the terms of Contract
6 * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
7 * retains certain rights in this software.
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 */
15
16 #ifndef MBCN_ARRAYS_HPP
17 #define MBCN_ARRAYS_HPP
18
19 namespace moab
20 {
21
22 const CN::ConnMap CN::mConnectivityMap[MBMAXTYPE][3] = {
23 // vertex-edge
24 { { 0,
25 0,
26 { 0 },
27 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
28 MBMAXTYPE, MBMAXTYPE },
29 { { 0 } } },
30 // vertex-face
31 { 0,
32 0,
33 { 0 },
34 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
35 MBMAXTYPE, MBMAXTYPE },
36 { { 0 } } },
37 // vertex-region
38 { 0,
39 0,
40 { 0 },
41 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
42 MBMAXTYPE, MBMAXTYPE },
43 { { 0 } } } },
44
45 // edge-edge
46 { { 1,
47 1,
48 { 2 },
49 { MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
50 MBMAXTYPE, MBMAXTYPE },
51 { { 0, 1 } } },
52 // edge-face
53 { 1,
54 0,
55 { 0 },
56 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
57 MBMAXTYPE, MBMAXTYPE },
58 { { 0 } } },
59 // edge-region
60 { 1,
61 0,
62 { 0 },
63 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
64 MBMAXTYPE, MBMAXTYPE },
65 { { 0 } } } },
66
67 // tri-edge
68 { { 2,
69 3,
70 { 2, 2, 2 },
71 { MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
72 MBMAXTYPE, MBMAXTYPE },
73 { { 0, 1 }, { 1, 2 }, { 2, 0 } } },
74 // tri-face
75 { 2,
76 1,
77 { 3 },
78 { MBTRI, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
79 MBMAXTYPE, MBMAXTYPE },
80 { { 0, 1, 2 } } },
81 // tri-region
82 { 2,
83 0,
84 { 0 },
85 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
86 MBMAXTYPE, MBMAXTYPE },
87 { { 0 } } } },
88
89 // quad-edge
90 { { 2,
91 4,
92 { 2, 2, 2, 2 },
93 { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
94 MBMAXTYPE },
95 { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 } } },
96 // quad-face
97 { 2,
98 1,
99 { 4 },
100 { MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
101 MBMAXTYPE, MBMAXTYPE },
102 { { 0, 1, 2, 3 } } },
103 // quad-region
104 { 2,
105 0,
106 { 0 },
107 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
108 MBMAXTYPE, MBMAXTYPE },
109 { { 0 } } } },
110
111 // polygon-edge
112 { { 2,
113 0,
114 { 0 },
115 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
116 MBMAXTYPE },
117 { { 0 } } },
118 // polygon-face
119 { 2,
120 1,
121 { 0 },
122 { MBPOLYGON, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
123 MBMAXTYPE, MBMAXTYPE },
124 { { 0 } } },
125 // polygon-region
126 { 2,
127 0,
128 { 0 },
129 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
130 MBMAXTYPE, MBMAXTYPE },
131 { { 0 } } } },
132
133 // tet-edge
134 { { 3,
135 6,
136 { 2, 2, 2, 2, 2, 2 },
137 { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
138 MBMAXTYPE },
139 { { 0, 1 }, { 1, 2 }, { 2, 0 }, { 0, 3 }, { 1, 3 }, { 2, 3 } } },
140 // tet-face
141 { 3,
142 4,
143 { 3, 3, 3, 3 },
144 { MBTRI, MBTRI, MBTRI, MBTRI, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
145 MBMAXTYPE },
146 { { 0, 1, 3 }, { 1, 2, 3 }, { 0, 3, 2 }, { 0, 2, 1 } } },
147 // tet-tet
148 { 3,
149 1,
150 { 4 },
151 { MBTET, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
152 MBMAXTYPE, MBMAXTYPE },
153 { { 0, 1, 2, 3 } } } },
154
155 // pyramid-edge
156 { { 3,
157 8,
158 { 2, 2, 2, 2, 2, 2, 2, 2 },
159 { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE },
160 { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 }, { 0, 4 }, { 1, 4 }, { 2, 4 }, { 3, 4 } } },
161 // pyramid-face
162 { 3,
163 5,
164 { 3, 3, 3, 3, 4 },
165 { MBTRI, MBTRI, MBTRI, MBTRI, MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
166 MBMAXTYPE },
167 { { 0, 1, 4 }, { 1, 2, 4 }, { 2, 3, 4 }, { 3, 0, 4 }, { 0, 3, 2, 1 } } },
168 // pyramid-pyramid
169 { 3,
170 1,
171 { 5 },
172 { MBPYRAMID, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
173 MBMAXTYPE, MBMAXTYPE },
174 { { 0, 1, 2, 3, 4 } } } },
175
176 // wedge-edge
177 { { 3,
178 9,
179 { 2, 2, 2, 2, 2, 2, 2, 2, 2 },
180 { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE },
181 { { 0, 1 }, { 1, 2 }, { 2, 0 }, { 0, 3 }, { 1, 4 }, { 2, 5 }, { 3, 4 }, { 4, 5 }, { 5, 3 } } },
182 // wedge-face
183 { 3,
184 5,
185 { 4, 4, 4, 3, 3 },
186 { MBQUAD, MBQUAD, MBQUAD, MBTRI, MBTRI, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
187 MBMAXTYPE },
188 { { 0, 1, 4, 3 }, { 1, 2, 5, 4 }, { 0, 3, 5, 2 }, { 0, 2, 1 }, { 3, 4, 5 } } },
189 // wedge-wedge
190 { 3,
191 1,
192 { 6 },
193 { MBPRISM, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
194 MBMAXTYPE, MBMAXTYPE },
195 { { 0, 1, 2, 3, 4, 5 } } } },
196
197 // knife-edge
198 { { 3,
199 10,
200 { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
201 { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE },
202 { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 }, { 0, 4 }, { 1, 5 }, { 2, 6 }, { 3, 5 }, { 4, 5 }, { 5, 6 } } },
203 // knife-face
204 { 3,
205 5,
206 { 4, 4, 4, 4, 4 },
207 { MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
208 MBMAXTYPE },
209 { { 0, 1, 5, 4 }, { 1, 2, 6, 5 }, { 2, 3, 5, 6 }, { 3, 0, 4, 5 }, { 0, 3, 2, 1 } } },
210 // knife-knife
211 { 3,
212 1,
213 { 7 },
214 { MBKNIFE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
215 MBMAXTYPE, MBMAXTYPE },
216 { { 0, 1, 2, 3, 4, 5, 6 } } } },
217
218 // hex-edge
219 { { 3,
220 12,
221 { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
222 { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE },
223 { { 0, 1 },
224 { 1, 2 },
225 { 2, 3 },
226 { 3, 0 },
227 { 0, 4 },
228 { 1, 5 },
229 { 2, 6 },
230 { 3, 7 },
231 { 4, 5 },
232 { 5, 6 },
233 { 6, 7 },
234 { 7, 4 } } },
235 // hex-face
236 { 3,
237 6,
238 { 4, 4, 4, 4, 4, 4 },
239 { MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
240 MBMAXTYPE },
241 { { 0, 1, 5, 4 }, { 1, 2, 6, 5 }, { 2, 3, 7, 6 }, { 3, 0, 4, 7 }, { 0, 3, 2, 1 }, { 4, 5, 6, 7 } } },
242 // hex-hex
243 { 3,
244 1,
245 { 8 },
246 { MBHEX, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
247 MBMAXTYPE, MBMAXTYPE },
248 { { 0, 1, 2, 3, 4, 5, 6, 7 } } } },
249
250 // polyhedron-edge
251 { { 3,
252 0,
253 { 0 },
254 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
255 MBMAXTYPE, MBMAXTYPE },
256 { { 0 } } },
257 // polyhedron-face
258 { 3,
259 0,
260 { 0 },
261 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
262 MBMAXTYPE, MBMAXTYPE },
263 { { 0 } } },
264 // polyhedron-polyhedron
265 { 3,
266 1,
267 { 0 },
268 { MBPOLYHEDRON, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
269 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE },
270 { { 0 } } } },
271
272 // meshset-edge
273 { { 4,
274 0,
275 { 0 },
276 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
277 MBMAXTYPE, MBMAXTYPE },
278 { { 0 } } }, // not handled yet?
279 // meshset-face
280 { 4,
281 0,
282 { 0 },
283 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
284 MBMAXTYPE, MBMAXTYPE },
285 { { 0 } } }, // not handled yet?
286 // meshset-region
287 { 4,
288 0,
289 { 0 },
290 { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE,
291 MBMAXTYPE, MBMAXTYPE },
292 { { 0 } } } } // not handled yet?
293
294 // maxtype
295 };
296
297 const CN::UpConnMap CN::mUpConnMap[MBMAXTYPE][4][4] = {
298 {
299 // type MBVERTEX
300 { { { 1 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 0
301 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 1
302 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2
303 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 3
304 },
305
306 {
307 // type MBEDGE
308 {
309 // source dim 0
310 { // target dim 0
311 { 1, 1 }, // 1 connected vertices for all vertices
312 { { 1 }, { 0 } } }, // end target dimension 0
313 { // target dimension 1
314 { 1, 1 }, // 1 connected edges for all vertices
315 { { 0 }, { 0 } } }, // end target dimension 1
316 { // target dimension 2
317 { 0 }, // 0 connected faces for all vertices
318 { { 0 } } }, // end target dimension 2
319 { // target dimension 3
320 { 0 }, // 0 connected elements for all vertices
321 { { 0 } } } // end target dimension 3
322 }, // end source dim 0
323
324 {
325 // source dim 1
326 { // target dim 0
327 { 2 }, // 2 vertices for all edges
328 { { 0, 1 } } }, // end target dim 0
329 { // target dim 1
330 { 0 }, // 0 edges for all edges
331 { { 0 } } }, // end target dim 1
332 { // target dim 2
333 { 0 }, // 2 faces for all edges
334 { { 0 } } }, // end target dim 2
335 { // target dimension 3
336 { 0 }, // 0 connected elements for all vertices
337 { { 0 } } } // end target dimension 3
338 }, // end source dim 1
339
340 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2
341 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 3
342 }, // end type MBEDGE
343
344 {
345 // type MBTRI
346 {
347 // source dim 0
348 { // target dim 0
349 { 2, 2, 2 }, // 2 connected vertices for all vertices
350 { { 1, 2 }, { 0, 2 }, { 0, 1 } } }, // end target dimension 0
351 { // target dimension 1
352 { 2, 2, 2 }, // 2 connected edges for all vertices
353 { { 0, 2 }, { 0, 1 }, { 1, 2 } } }, // end target dimension 1
354 { // target dimension 2
355 { 1, 1, 1 }, // 1 connected faces for all vertices
356 { { 0 }, { 0 }, { 0 } } }, // end target dimension 2
357 { // target dimension 3
358 { 0 }, // 0 connected elements for all vertices
359 { { 0 } } } // end target dimension 3
360 }, // end source dim 0
361
362 {
363 // source dim 1
364 { // target dim 0
365 { 2, 2, 2 }, // 2 vertices for all edges
366 { { 0, 1 }, { 1, 2 }, { 0, 2 } } }, // end target dim 0
367 { // target dim 1
368 { 2, 2, 2 }, // 2 edges for all edges
369 { { 1, 2 }, { 0, 2 }, { 0, 1 } } }, // end target dim 1
370 { // target dim 2
371 { 1, 1, 1 }, // 1 faces for all edges
372 { { 0 }, { 0 }, { 0 } } }, // end target dim 2
373 { // target dimension 3
374 { 0 }, // 0 connected elements for all vertices
375 { { 0 } } } // end target dimension 3
376 }, // end source dim 1
377
378 {
379 // source dim 2
380 { // target dim 0
381 { 3 }, // 3 vertices for all faces
382 { { 0, 1, 2 } } }, // end target dim 0
383 { // target dim 1
384 { 3 }, // 3 edges for all faces
385 { { 0, 1, 2 } } }, // end target dim 1
386 { // target dim 2
387 { 0 }, // 0 faces for all faces
388 { { 0 } } }, // end target dim 2
389 { // target dimension 3
390 { 0 }, // 0 connected elements for all vertices
391 { { 0 } } } // end target dimension 3
392 }, // end source dim 2
393
394 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3
395 }, // end type MBTRI
396
397 {
398 // type MBQUAD
399 {
400 // source dim 0
401 { // target dim 0
402 { 2, 2, 2, 2 }, // 2 connected vertices for all vertices
403 { { 1, 3 }, { 0, 2 }, { 2, 3 }, { 0, 2 } } }, // end target dimension 0
404 { // target dimension 1
405 { 2, 2, 2, 2 }, // 2 connected edges for all vertices
406 { { 0, 3 }, { 0, 1 }, { 1, 2 }, { 2, 3 } } }, // end target dimension 1
407 { // target dimension 2
408 { 1, 1, 1, 1 }, // 1 connected faces for all vertices
409 { { 0 }, { 0 }, { 0 }, { 0 } } }, // end target dimension 2
410 { // target dimension 3
411 { 0 }, // 0 connected elements for all vertices
412 { { 0 } } } // end target dimension 3
413 }, // end source dim 0
414
415 {
416 // source dim 1
417 { // target dim 0
418 { 2, 2, 2, 2 }, // 2 vertices for all edges
419 { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 0, 3 } } }, // end target dim 0
420 { // target dim 1
421 { 2, 2, 2, 2 }, // 2 edges for all edges
422 { { 1, 3 }, { 0, 2 }, { 1, 3 }, { 0, 2 } } }, // end target dim 1
423 { // target dim 2
424 { 1, 1, 1, 1 }, // 1 faces for all edges
425 { { 0 }, { 0 }, { 0 }, { 0 } } }, // end target dim 2
426 { // target dimension 3
427 { 0 }, // 0 connected elements for all vertices
428 { { 0 } } } // end target dimension 3
429 }, // end source dim 1
430
431 {
432 // source dim 2
433 { // target dim 0
434 { 4 }, // 4 vertices for all faces
435 { { 0, 1, 2, 3 } } }, // end target dim 0
436 { // target dim 1
437 { 4 }, // 4 edges for all faces
438 { { 0, 1, 2, 3 } } }, // end target dim 1
439 { // target dim 2
440 { 0 }, // 4 faces for all faces
441 { { 0 } } }, // end target dim 2
442 { // target dimension 3
443 { 0 }, // 0 connected elements for all vertices
444 { { 0 } } } // end target dimension 3
445 }, // end source dim 2
446
447 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3
448 }, // end type MBQUAD
449
450 {
451 // type MBPOLYGON
452 { // source dim 0
453 { // target dim 0
454 { 0 },
455 { { 0 } } },
456 { // target dimension 1
457 { 0 },
458 { { 0 } } },
459 { // target dimension 2
460 { 0 },
461 { { 0 } } },
462 { // target dimension 3
463 { 0 },
464 { { 0 } } } }, // end source dim 0
465
466 { // source dim 1
467 { // target dim 0
468 { 0 },
469 { { 0 } } },
470 { // target dimension 1
471 { 0 },
472 { { 0 } } },
473 { // target dimension 2
474 { 0 },
475 { { 0 } } },
476 { // target dimension 3
477 { 0 },
478 { { 0 } } } }, // end source dim 1
479
480 { // source dim 2
481 { // target dim 0
482 { 0 },
483 { { 0 } } },
484 { // target dimension 1
485 { 0 },
486 { { 0 } } },
487 { // target dimension 2
488 { 0 },
489 { { 0 } } },
490 { // target dimension 3
491 { 0 },
492 { { 0 } } } }, // end source dim 2
493
494 { // source dim 3
495 { // target dim 0
496 { 0 },
497 { { 0 } } },
498 { // target dimension 1
499 { 0 },
500 { { 0 } } },
501 { // target dimension 2
502 { 0 },
503 { { 0 } } },
504 { // target dimension 3
505 { 0 },
506 { { 0 } } } } // end source dim 3
507 }, // end type MBPOLYGON
508
509 {
510 // type MBTET
511 {
512 // source dim 0
513 { // target dim 0
514 { 3, 3, 3, 3 }, // 3 connected vertices for all vertices
515 { { 1, 2, 3 }, { 0, 2, 3 }, { 0, 1, 3 }, { 0, 1, 2 } } }, // end target dimension 0
516 { // target dimension 1
517 { 3, 3, 3, 3 }, // 3 connected edges for all vertices
518 { { 0, 2, 3 }, { 0, 1, 4 }, { 1, 2, 5 }, { 3, 4, 5 } } }, // end target dimension 1
519 { // target dimension 2
520 { 3, 3, 3, 3 }, // 3 connected faces for all vertices
521 { { 0, 2, 3 }, { 0, 1, 3 }, { 1, 2, 3 }, { 0, 1, 2 } } }, // end target dimension 2
522 { // target dimension 3
523 { 1, 1, 1, 1 }, // 0 connected elements for all vertices
524 { { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
525 }, // end source dim 0
526
527 {
528 // source dim 1
529 { // target dim 0
530 { 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges
531 { { 0, 1 }, { 1, 2 }, { 0, 2 }, { 0, 3 }, { 1, 3 }, { 2, 3 } } }, // end target dim 0
532 { // target dim 1
533 { 4, 4, 4, 4, 4, 4 }, // 4 edges for all edges
534 { { 1, 2, 3, 4 },
535 { 0, 2, 4, 5 },
536 { 0, 1, 3, 5 },
537 { 0, 2, 4, 5 },
538 { 0, 1, 3, 5 },
539 { 1, 2, 3, 4 } } }, // end target dim 1
540 { // target dim 2
541 { 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges
542 { { 0, 3 }, { 1, 3 }, { 2, 3 }, { 0, 2 }, { 0, 1 }, { 1, 2 } } }, // end target dim 2
543 { // target dimension 3
544 { 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
545 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
546 }, // end source dim 1
547
548 {
549 // source dim 2
550 { // target dim 0
551 { 3, 3, 3, 3 }, // 3 vertices for all faces
552 { { 0, 1, 3 }, { 1, 2, 3 }, { 0, 3, 2 }, { 0, 2, 1 } } }, // end target dim 0
553 { // target dim 1
554 { 3, 3, 3, 3 }, // 3 edges for all faces
555 { { 0, 4, 3 }, { 1, 5, 4 }, { 3, 5, 2 }, { 2, 1, 0 } } }, // end target dim 1
556 { // target dim 2
557 { 3, 3, 3, 3 }, // 3 faces for all faces
558 { { 3, 1, 2 }, { 3, 2, 0 }, { 0, 1, 3 }, { 2, 1, 0 } } }, // end target dim 2
559 { // target dimension 3
560 { 1, 1, 1, 1 }, // 0 connected elements for all vertices
561 { { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
562 }, // end source dim 2
563
564 {
565 // source dim 3
566 { // target dim 0
567 { 4 }, // 4 vertices for all elements
568 { { 0, 1, 2, 3 } } }, // end target dim 0
569 { // target dim 1
570 { 6 }, // 6 edges for all elements
571 { { 0, 1, 2, 3, 4, 5 } } }, // end target dim 1
572 { // target dim 2
573 { 4 }, // 4 faces for all elements
574 { { 0, 1, 2, 3 } } }, // end target dim 2
575 { // target dimension 3
576 { 0 }, // 0 connected elements for all vertices
577 { { 0 } } } // end target dimension 3
578 } // end source dim 3
579 }, // end type MBTET
580
581 {
582 // type MBPYRAMID
583 {
584 // source dim 0
585 { // target dim 0
586 { 3, 3, 3, 3, 4 }, // 3 connected vertices for most vertices
587 { { 1, 3, 4 }, { 0, 2, 4 }, { 1, 3, 4 }, { 0, 2, 4 }, { 0, 1, 2, 3 } } }, // end target dimension 0
588 { // target dimension 1
589 { 3, 3, 3, 3, 4 }, // 3 connected edges for most vertices
590 { { 0, 3, 4 }, { 0, 1, 5 }, { 1, 2, 6 }, { 2, 3, 7 }, { 4, 5, 6, 7 } } }, // end target dimension 1
591 { // target dimension 2
592 { 3, 3, 3, 3, 4 }, // 3 connected faces for most vertices
593 { { 0, 3, 4 }, { 0, 1, 4 }, { 1, 2, 4 }, { 2, 3, 4 }, { 0, 1, 2, 3 } } }, // end target dimension 2
594 { // target dimension 3
595 { 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
596 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
597 }, // end source dim 0
598
599 {
600 // source dim 1
601 { // target dim 0
602 { 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges
603 { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 0, 3 }, { 0, 4 }, { 1, 4 }, { 2, 4 }, { 3, 4 } } }, // end target dim 0
604 { // target dim 1
605 { 4, 4, 4, 4, 5, 5, 5, 5 }, // 4 edges for some edges, 5 for others
606 { { 1, 3, 4, 5 },
607 { 0, 2, 5, 6 },
608 { 1, 3, 6, 7 },
609 { 0, 2, 4, 7 },
610 { 0, 3, 5, 6, 7 },
611 { 0, 1, 4, 6, 7 },
612 { 1, 2, 4, 5, 7 },
613 { 2, 3, 4, 5, 6 } } }, // end target dim 1
614 { // target dim 2
615 { 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges
616 { { 0, 4 }, { 1, 4 }, { 2, 4 }, { 3, 4 }, { 0, 3 }, { 0, 1 }, { 1, 2 }, { 2, 3 } } }, // end target dim 2
617 { // target dimension 3
618 { 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
619 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension
620 // 3
621 }, // end source dim 1
622
623 {
624 // source dim 2
625 { // target dim 0
626 { 3, 3, 3, 3, 4 }, // 3 vertices for most edges
627 { { 0, 1, 4 }, { 1, 2, 4 }, { 2, 3, 4 }, { 0, 3, 4 }, { 0, 1, 2, 3 } } }, // end target dim 0
628 { // target dim 1
629 { 3, 3, 3, 3, 4 }, // 3 edges for most faces
630 { { 0, 5, 4 }, { 1, 6, 5 }, { 6, 2, 7 }, { 3, 4, 7 }, { 0, 3, 2, 1 } } }, // end target dim 1
631 { // target dim 2
632 { 3, 3, 3, 3, 4 }, // 4 faces for most faces
633 { { 4, 1, 3 }, { 4, 2, 0 }, { 4, 3, 1 }, { 4, 0, 2 }, { 0, 1, 2, 3 } } }, // end target dim 2
634 { // target dimension 3
635 { 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
636 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
637 }, // end source dim 2
638
639 {
640 // source dim 3
641 { // target dim 0
642 { 5 }, // 5 vertices for all elements
643 { { 0, 1, 2, 3, 4 } } }, // end target dim 0
644 { // target dim 1
645 { 8 }, // 8 edges for all elements
646 { { 0, 1, 2, 3, 4, 5, 6, 7 } } }, // end target dim 1
647 { // target dim 2
648 { 5 }, // 5 faces for all elements
649 { { 0, 1, 2, 3, 4 } } }, // end target dim 2
650 { // target dimension 3
651 { 0 }, // 0 connected elements for all vertices
652 { { 0 } } } // end target dimension 3
653 } // end source dim 3
654 }, // end type MBPYRAMID
655
656 {
657 // type MBPRISM
658 {
659 // source dim 0
660 { // target dim 0
661 { 3, 3, 3, 3, 3, 3 }, // 3 connected vertices for all vertices
662 { { 1, 2, 3 }, { 0, 2, 4 }, { 0, 1, 5 }, { 0, 4, 5 }, { 1, 3, 5 }, { 2, 3, 4 } } }, // end target
663 // dimension 0
664 { // target dimension 1
665 { 3, 3, 3, 3, 3, 3 }, // 3 connected edges for all vertices
666 { { 0, 2, 3 }, { 0, 1, 4 }, { 1, 2, 5 }, { 3, 6, 8 }, { 4, 6, 7 }, { 5, 7, 8 } } }, // end target
667 // dimension 1
668 { // target dimension 2
669 { 3, 3, 3, 3, 3, 3 }, // 3 connected faces for all vertices
670 { { 0, 2, 3 }, { 0, 1, 3 }, { 1, 2, 3 }, { 0, 2, 4 }, { 0, 1, 4 }, { 1, 2, 4 } } }, // end target
671 // dimension 2
672 { // target dimension 3
673 { 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
674 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
675 }, // end source dim 0
676
677 {
678 // source dim 1
679 { // target dim 0
680 { 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges
681 { { 0, 1 }, { 1, 2 }, { 0, 2 }, { 0, 3 }, { 1, 4 }, { 2, 5 }, { 3, 4 }, { 4, 5 }, { 3, 5 } } }, // end
682 // target
683 // dim 0
684 { // target dim 1
685 { 4, 4, 4, 4, 4, 4, 4, 4, 4 }, // 4 edges for all edges
686 { { 1, 2, 3, 4 },
687 { 0, 2, 4, 5 },
688 { 0, 1, 3, 5 },
689 { 0, 2, 6, 8 },
690 { 0, 1, 6, 7 },
691 { 1, 2, 7, 8 },
692 { 3, 4, 7, 8 },
693 { 4, 5, 6, 8 },
694 { 3, 5, 6, 7 } } }, // end target dim 1
695 { // target dim 2
696 { 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges
697 { { 0, 3 }, { 1, 3 }, { 2, 3 }, { 0, 2 }, { 0, 1 }, { 1, 2 }, { 0, 4 }, { 1, 4 }, { 2, 4 } } }, // end
698 // target
699 // dim 2
700 { // target dimension 3
701 { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
702 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target
703 // dimension 3
704 }, // end source dim 1
705
706 {
707 // source dim 2
708 { // target dim 0
709 { 4, 4, 4, 3, 3 }, // 4 vertices for some faces, 3 for others
710 { { 0, 1, 3, 4 }, { 1, 2, 4, 5 }, { 0, 2, 3, 5 }, { 0, 1, 2 }, { 3, 4, 5 } } }, // end target dim 0
711 { // target dim 1
712 { 4, 4, 4, 3, 3 }, // 4 edges for some faces, 3 for others
713 { { 0, 4, 6, 3 }, { 1, 5, 7, 4 }, { 3, 8, 5, 2 }, { 2, 1, 0 }, { 6, 7, 8 } } }, // end target dim 1
714 { // target dim 2
715 { 4, 4, 4, 3, 3 }, // 4 faces for some faces, 3 for others
716 { { 3, 1, 4, 2 }, { 3, 2, 4, 0 }, { 0, 4, 1, 3 }, { 2, 1, 0 }, { 0, 1, 2 } } }, // end target dim 2
717 { // target dimension 3
718 { 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
719 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
720 }, // end source dim 2
721
722 {
723 // source dim 3
724 { // target dim 0
725 { 6 }, // 6 vertices for all elements
726 { { 0, 1, 2, 3, 4, 5 } } }, // end target dim 0
727 { // target dim 1
728 { 9 }, // 9 edges for all elements
729 { { 0, 1, 2, 3, 4, 5, 6, 7, 8 } } }, // end target dim 1
730 { // target dim 2
731 { 5 }, // 5 faces for all elements
732 { { 0, 1, 2, 3, 4 } } }, // end target dim 2
733 { // target dimension 3
734 { 0 }, // 0 connected elements for all vertices
735 { { 0 } } } // end target dimension 3
736 } // end source dim 3
737 }, // end type MBPRISM
738
739 {
740 // type MBKNIFE
741 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 0
742 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 1
743 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2
744 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3
745 }, // end type MBKNIFE
746
747 {
748 // type MBHEX
749 {
750 // source dim 0
751 { // target dim 0
752 { 3, 3, 3, 3, 3, 3, 3, 3 }, // 3 connected vertices for all vertices
753 { { 1, 3, 4 },
754 { 0, 2, 5 },
755 { 1, 3, 6 },
756 { 0, 2, 7 },
757 { 0, 5, 7 },
758 { 1, 4, 6 },
759 { 2, 5, 7 },
760 { 3, 4, 6 } } }, // end target dimension 0
761 { // target dimension 1
762 { 3, 3, 3, 3, 3, 3, 3, 3 }, // 3 connected edges for all vertices
763 { { 0, 3, 4 },
764 { 0, 1, 5 },
765 { 1, 2, 6 },
766 { 2, 3, 7 },
767 { 4, 8, 11 },
768 { 5, 8, 9 },
769 { 6, 9, 10 },
770 { 7, 10, 11 } } }, // end target dimension 1
771 { // target dimension 2
772 { 3, 3, 3, 3, 3, 3, 3, 3 }, // 3 connected faces for all vertices
773 { { 0, 3, 4 },
774 { 0, 1, 4 },
775 { 1, 2, 4 },
776 { 2, 3, 4 },
777 { 0, 3, 5 },
778 { 0, 1, 5 },
779 { 1, 2, 5 },
780 { 2, 3, 5 } } }, // end target dimension 2
781 { // target dimension 3
782 { 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
783 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension
784 // 3
785 }, // end source dim 0
786
787 {
788 // source dim 1
789 { // target dim 0
790 { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges
791 { { 0, 1 },
792 { 1, 2 },
793 { 2, 3 },
794 { 0, 3 },
795 { 0, 4 },
796 { 1, 5 },
797 { 2, 6 },
798 { 3, 7 },
799 { 4, 5 },
800 { 5, 6 },
801 { 6, 7 },
802 { 4, 7 } } }, // end target dim 0
803 { // target dim 1
804 { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 }, // 4 edges for all edges
805 { { 1, 3, 4, 5 },
806 { 0, 2, 5, 6 },
807 { 1, 3, 6, 7 },
808 { 0, 2, 4, 7 },
809 { 0, 3, 8, 11 },
810 { 0, 1, 8, 9 },
811 { 1, 2, 9, 10 },
812 { 2, 3, 10, 11 },
813 { 4, 5, 9, 11 },
814 { 5, 6, 8, 10 },
815 { 6, 7, 9, 11 },
816 { 4, 7, 8, 10 } } }, // end target dim 1
817 { // target dim 2
818 { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges
819 { { 0, 4 },
820 { 1, 4 },
821 { 2, 4 },
822 { 3, 4 },
823 { 0, 3 },
824 { 0, 1 },
825 { 1, 2 },
826 { 2, 3 },
827 { 0, 5 },
828 { 1, 5 },
829 { 2, 5 },
830 { 3, 5 } } }, // end target dim 2
831 { // target dimension 3
832 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
833 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target
834 // dimension 3
835 }, // end source dim 1
836
837 {
838 // source dim 2
839 { // target dim 0
840 { 4, 4, 4, 4, 4, 4 }, // 4 vertices for all faces
841 { { 0, 1, 4, 5 },
842 { 1, 2, 5, 6 },
843 { 2, 3, 6, 7 },
844 { 0, 3, 4, 7 },
845 { 0, 1, 2, 3 },
846 { 4, 5, 6, 7 } } }, // end target dim 0
847 { // target dim 1
848 { 4, 4, 4, 4, 4, 4 }, // 4 edges for all faces
849 { { 0, 5, 8, 4 },
850 { 1, 6, 9, 5 },
851 { 2, 7, 10, 6 },
852 { 3, 4, 11, 7 },
853 { 0, 3, 2, 1 },
854 { 8, 9, 10, 11 } } }, // end target dim 1
855 { // target dim 2
856 { 4, 4, 4, 4, 4, 4 }, // 4 faces for all faces
857 { { 4, 1, 5, 3 },
858 { 4, 2, 5, 0 },
859 { 4, 3, 5, 1 },
860 { 4, 0, 5, 2 },
861 { 0, 3, 2, 1 },
862 { 0, 1, 2, 3 } } }, // end target dim 2
863 { // target dimension 3
864 { 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices
865 { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3
866 }, // end source dim 2
867
868 {
869 // source dim 3
870 { // target dim 0
871 { 8 }, // 8 vertices for all elements
872 { { 0, 1, 2, 3, 4, 5, 6, 7 } } }, // end target dim 0
873 { // target dim 1
874 { 12 }, // 12 edges for all elements
875 { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } } }, // end target dim 1
876 { // target dim 2
877 { 6 }, // 6 faces for all elements
878 { { 0, 1, 2, 3, 4, 5 } } }, // end target dim 2
879 { // target dimension 3
880 { 0 }, // 0 connected elements for all vertices
881 { { 0 } } } // end target dimension 3
882 } // end source dim 3
883 }, // end type MBHEX
884
885 {
886 // type MBPOLYHEDRON
887 { // source dim 0
888 { // target dim 0
889 { 0 },
890 { { 0 } } },
891 { // target dimension 1
892 { 0 },
893 { { 0 } } },
894 { // target dimension 2
895 { 0 },
896 { { 0 } } },
897 { // target dimension 3
898 { 0 },
899 { { 0 } } } }, // end source dim 0
900
901 { // source dim 1
902 { // target dim 0
903 { 0 },
904 { { 0 } } },
905 { // target dimension 1
906 { 0 },
907 { { 0 } } },
908 { // target dimension 2
909 { 0 },
910 { { 0 } } },
911 { // target dimension 3
912 { 0 },
913 { { 0 } } } }, // end source dim 1
914
915 { // source dim 2
916 { // target dim 0
917 { 0 },
918 { { 0 } } },
919 { // target dimension 1
920 { 0 },
921 { { 0 } } },
922 { // target dimension 2
923 { 0 },
924 { { 0 } } },
925 { // target dimension 3
926 { 0 },
927 { { 0 } } } }, // end source dim 2
928
929 { // source dim 3
930 { // target dim 0
931 { 0 },
932 { { 0 } } },
933 { // target dimension 1
934 { 0 },
935 { { 0 } } },
936 { // target dimension 2
937 { 0 },
938 { { 0 } } },
939 { // target dimension 3
940 { 0 },
941 { { 0 } } } } // end source dim 3
942 }, // end type MBPOLYHEDRON
943
944 {
945 // type MBENTITYSET
946 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 0
947 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 1
948 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2
949 { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3
950 } // end type MBENTITYSET
951 };
952 const unsigned char E = CN::MID_EDGE_BIT;
953 const unsigned char F = CN::MID_FACE_BIT;
954 const unsigned char R = CN::MID_REGION_BIT;
955 const unsigned char CN::midNodesPerType[MBMAXTYPE][MAX_NODES_PER_ELEMENT + 1] = {
956 // vertex
957 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
958 // edge
959 { 0, 0, 0, E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
960 // tri
961 { 0, 0, 0, 0, F, 0, E, E | F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
962 // quad
963 { 0, 0, 0, 0, 0, F, 0, 0, E, E | F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
964 // polygon
965 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
966 // tet 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13, 14, 15
967 { 0, 0, 0, 0, 0, R, 0, 0, F, F | R, E, E | R, 0, 0, E | F, E | F | R, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
968 // pyramid 3, 4, 5, 6, 7, 8, 9,10, 11, 12,13, 14, 15,16,17, 18, 19
969 { 0, 0, 0, 0, 0, 0, R, 0, 0, 0, F, F | R, 0, E, E | R, 0, 0, 0, E | F, E | F | R, 0, 0, 0, 0, 0, 0, 0, 0 },
970 // prism 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12, 13,14,15, 16, 17,18,19, 20, 21
971 { 0, 0, 0, 0, 0, 0, 0, R, 0, 0, 0, F, F | R, 0, 0, E, E | R, 0, 0, 0, E | F, E | F | R, 0, 0, 0, 0, 0, 0 },
972 // knife 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12,13, 14,15,16,17, 18, 19,20,21, 22, 23
973 { 0, 0, 0, 0, 0, 0, 0, 0, R, 0, 0, 0, F, F | R, 0, 0, 0, E, E | R, 0, 0, 0, E | F, E | F | R, 0, 0, 0, 0 },
974 // hex 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15, 16,17,18,19,20, 21, 22,23,24,25, 26, 27
975 { 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, 0, 0, 0, F, F | R, 0, 0, 0, 0, E, E | R, 0, 0, 0, 0, E | F, E | F | R },
976 // polyhedron
977 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
978 // set
979 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
980 };
981
982 } // namespace moab
983
984 #endif