Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
NestedRefineTemplates.hpp
Go to the documentation of this file.
1 #ifndef TEMPLATES_HPP
2 #define TEMPLATES_HPP
3 
4 #include "moab/NestedRefine.hpp"
5 
6 /*
7  * This header contains the field values of the refinement patterns for
8  * each entity types and their possible degrees. It also contains the permutations
9  * of the locally ordered vertices and half-facets on parent half-facets needed
10  * for book-keeping purposes. The fields are described in the refPattern structure
11  * in NestedRefine class.
12  *
13  */
14 
15 namespace moab
16 {
17 
18 const NestedRefine::refPatterns NestedRefine::refTemplates[9][MAX_DEGREE] = {
19 
20  // EDGE
21  { // Deg 2
22  /* 0------2------1 */
23  /* 1 2 */
24 
25  { 1,
26  0,
27  0,
28  1,
29  2,
30  { 2, 2 },
31  { { 1.0 / 2.0, 0, 0 } },
32  { { 0, 2 }, { 2, 1 } },
33 
34  { { 1, 0 }, { 2, 1 }, { 2, 0 } },
35  { { 0, 0, 2, 0 }, { 1, 1, 0, 0 } },
36 
37  { {} },
38  { {} },
39  { { 1, 1 }, { 1, 2 } },
40  { {} } },
41 
42  // Deg 3
43  /* 0------2------3------1 */
44  /* 1 2 3 */
45 
46  { 2,
47  0,
48  0,
49  2,
50  3,
51  { 2, 3 },
52  { { 1.0 / 3.0, 0, 0 }, { 2.0 / 3.0, 0, 0 } },
53  { { 0, 2 }, { 2, 3 }, { 3, 1 } },
54 
55  { { 1, 0 }, { 3, 1 }, { 2, 0 }, { 3, 0 } },
56  { { 0, 0, 2, 0 }, { 1, 1, 3, 0 }, { 2, 1, 0, 0 } },
57 
58  { {} },
59  { {} },
60  { { 1, 1 }, { 1, 3 } },
61  { {} } },
62 
63  // Deg 5
64  /* 0------2------3------4------5------1 */
65  /* 1 2 3 4 5 */
66 
67  { 4,
68  0,
69  0,
70  4,
71  5,
72  { 2, 5 },
73  { { 1.0 / 5.0, 0, 0 }, { 2.0 / 5.0, 0, 0 }, { 3.0 / 5.0, 0, 0 }, { 4.0 / 5.0, 0, 0 } },
74  { { 0, 2 }, { 2, 3 }, { 3, 4 }, { 4, 5 }, { 5, 1 } },
75 
76  { { 1, 0 }, { 5, 1 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 } },
77  { { 0, 0, 2, 0 }, { 1, 1, 3, 0 }, { 2, 1, 4, 0 }, { 3, 1, 5, 0 }, { 4, 1, 0, 0 } },
78 
79  { {} },
80  { {} },
81  { { 1, 1 }, { 1, 5 } },
82  { {} } } },
83 
84  // TRI
85  { // Deg 2
86  /* 2
87  / \
88  5 /-- \ 4
89  /_\/_\
90  0 3 1 */
91 
92  { 1,
93  0,
94  0,
95  3,
96  4,
97  { 3, 5 },
98  { { 0.5, 0, 0 }, { 0.5, 0.5, 0 }, { 0, 0.5, 0 } },
99  { { 0, 3, 5 }, { 3, 4, 5 }, { 3, 1, 4 }, { 5, 4, 2 } },
100 
101  { { 1, 0 }, { 3, 1 }, { 4, 2 }, { 3, 0 }, { 4, 1 }, { 1, 2 } },
102  { { 0, 0, 2, 2, 0, 0 }, { 3, 2, 4, 0, 1, 1 }, { 0, 0, 0, 0, 2, 0 }, { 2, 1, 0, 0, 0, 0 } },
103 
104  { { 3 }, { 4 }, { 5 } },
105  { {} },
106  { { 2, 1, 3 }, { 2, 3, 4 }, { 2, 4, 1 } },
107  { {} } },
108 
109  // Deg 3
110  /* 2
111  /_\
112  7 6
113  /_\/_\
114  8 9 5
115  /_\/_\/_\
116  0 3 4 1
117  */
118 
119  { 2,
120  1,
121  0,
122  7,
123  9,
124  { 3, 9 },
125  { { 1.0 / 3.0, 0, 0 },
126  { 2.0 / 3.0, 0, 0 },
127  { 2.0 / 3.0, 1.0 / 3.0, 0 },
128  { 1.0 / 3.0, 2.0 / 3.0, 0 },
129  { 0, 2.0 / 3.0, 0 },
130  { 0, 1.0 / 3.0, 0 },
131  { 1.0 / 3.0, 1.0 / 3.0, 0 } },
132  { { 0, 3, 8 },
133  { 3, 9, 8 },
134  { 3, 4, 9 },
135  { 4, 5, 9 },
136  { 4, 1, 5 },
137  { 8, 9, 7 },
138  { 9, 6, 7 },
139  { 9, 5, 6 },
140  { 7, 6, 2 } },
141 
142  { { 1, 0 }, { 5, 1 }, { 9, 2 }, { 3, 0 }, { 5, 0 }, { 8, 1 }, { 9, 1 }, { 6, 2 }, { 1, 2 }, { 8, 0 } },
143  { { 0, 0, 2, 2, 0, 0 },
144  { 3, 2, 6, 0, 1, 1 },
145  { 0, 0, 4, 2, 2, 1 },
146  { 5, 2, 8, 0, 3, 1 },
147  { 0, 0, 0, 0, 4, 0 },
148  { 2, 1, 7, 2, 0, 0 },
149  { 8, 2, 9, 0, 6, 1 },
150  { 4, 1, 0, 0, 7, 0 },
151  { 7, 1, 0, 0, 0, 0 } },
152 
153  { { 3, 4 }, { 5, 6 }, { 7, 8 } },
154  { { 9 } },
155  { { 3, 1, 3, 5 }, { 3, 5, 8, 9 }, { 3, 9, 6, 1 } },
156  { {} } },
157 
158  // Deg 5
159  /* 2
160  /_\
161  11 10
162  /_\/_\
163  12 19 9
164  /_\/_\/_\
165  13 20 18 8
166  /_\/_\/_\/_\
167  14 15 16 17 7
168  /_\/_\/_\/_\/_\
169  0 3 4 5 6 1
170  */
171 
172  { 4,
173  6,
174  0,
175  18,
176  25,
177  { 3, 20 },
178  { { 1 / 5.0, 0, 0 },
179  { 2 / 5.0, 0, 0 },
180  { 3 / 5.0, 0, 0 },
181  { 4 / 5.0, 0, 0 },
182  { 4 / 5.0, 1 / 5.0, 0 },
183  { 3 / 5.0, 2 / 5.0, 0 },
184  { 2 / 5.0, 3 / 5.0, 0 },
185  { 1 / 5.0, 4 / 5.0, 0 },
186  { 0, 4 / 5.0, 0 },
187  { 0, 3 / 5.0, 0 },
188  { 0, 2 / 5.0, 0 },
189  { 0, 1 / 5.0, 0 },
190  { 1 / 5.0, 1 / 5.0, 0 },
191  { 2 / 5.0, 1 / 5.0, 0 },
192  { 3 / 5.0, 1 / 5.0, 0 },
193  { 2 / 5.0, 2 / 5.0, 0 },
194  { 1 / 5.0, 3 / 5.0, 0 },
195  { 1 / 5.0, 2 / 5.0, 0 } },
196 
197  { { 0, 3, 14 }, { 3, 15, 14 }, { 3, 4, 15 }, { 4, 16, 15 }, { 4, 5, 16 },
198  { 5, 17, 16 }, { 5, 6, 17 }, { 6, 7, 17 }, { 6, 1, 7 }, { 14, 15, 13 },
199  { 15, 20, 13 }, { 15, 16, 20 }, { 16, 18, 20 }, { 16, 17, 18 }, { 17, 8, 18 },
200  { 17, 7, 8 }, { 13, 20, 12 }, { 20, 19, 12 }, { 20, 18, 19 }, { 18, 9, 19 },
201  { 18, 8, 9 }, { 12, 19, 11 }, { 19, 10, 11 }, { 19, 9, 10 }, { 11, 10, 2 } },
202 
203  { { 1, 0 }, { 9, 1 }, { 25, 2 }, { 3, 0 }, { 5, 0 }, { 7, 0 }, { 9, 0 },
204  { 16, 1 }, { 21, 1 }, { 24, 1 }, { 25, 1 }, { 22, 2 }, { 17, 2 }, { 10, 2 },
205  { 1, 2 }, { 12, 0 }, { 14, 0 }, { 16, 0 }, { 21, 0 }, { 24, 0 }, { 19, 0 } },
206  { { 0, 0, 2, 2, 0, 0 }, { 3, 2, 10, 0, 1, 1 }, { 0, 0, 4, 2, 2, 0 }, { 5, 2, 12, 0, 3, 1 },
207  { 0, 0, 6, 2, 4, 1 }, { 7, 2, 14, 0, 5, 1 }, { 0, 0, 8, 2, 6, 1 }, { 9, 2, 16, 0, 7, 1 },
208  { 0, 0, 0, 0, 8, 1 }, { 2, 1, 11, 2, 0, 0 }, { 12, 2, 17, 0, 10, 1 }, { 4, 1, 13, 2, 11, 0 },
209  { 14, 2, 19, 0, 12, 1 }, { 6, 1, 15, 2, 13, 1 }, { 16, 2, 21, 0, 14, 1 }, { 8, 1, 0, 0, 15, 0 },
210  { 11, 1, 18, 2, 0, 0 }, { 19, 2, 22, 0, 17, 1 }, { 13, 1, 20, 2, 18, 0 }, { 21, 2, 24, 0, 19, 1 },
211  { 15, 1, 0, 0, 20, 0 }, { 18, 1, 23, 2, 0, 0 }, { 24, 2, 25, 0, 22, 1 }, { 20, 1, 0, 0, 23, 0 },
212  { 23, 1, 0, 0, 0, 0 } },
213 
214  { { 3, 4, 5, 6 }, { 7, 8, 9, 10 }, { 11, 12, 13, 14 } },
215  { { 15, 16, 17, 18, 19, 20 } },
216  { { 5, 1, 3, 5, 7, 9 }, { 5, 9, 16, 21, 24, 25 }, { 5, 25, 22, 17, 10, 1 } },
217  { {} } }
218 
219  },
220 
221  // QUAD
222  { // Deg 2
223  /*
224  3---6---2
225  | | |
226  7---8---5
227  | | |
228  0---4---1
229  * */
230 
231  { 1,
232  1,
233  0,
234  5,
235  4,
236  { 4, 8 },
237  { { 0, -1, 0 }, { 1, 0, 0 }, { 0, 1, 0 }, { -1, 0, 0 }, { 0, 0, 0 } },
238  { { 0, 4, 8, 7 }, { 4, 1, 5, 8 }, { 8, 5, 2, 6 }, { 7, 8, 6, 3 } },
239 
240  { { 1, 0 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 2, 0 }, { 3, 1 }, { 4, 2 }, { 1, 3 }, { 3, 0 } },
241  { { 0, 0, 2, 3, 4, 0, 0, 0 },
242  { 0, 0, 0, 0, 3, 0, 1, 1 },
243  { 2, 2, 0, 0, 0, 0, 4, 1 },
244  { 1, 2, 3, 3, 0, 0, 0, 0 } },
245 
246  { { 4 }, { 5 }, { 6 }, { 7 } },
247  { { 8 } },
248  { { 2, 1, 2 }, { 2, 2, 3 }, { 2, 3, 4 }, { 2, 4, 1 } },
249  { {} } },
250 
251  // Deg 3
252  /*
253  3---9---8---2
254  | | | |
255  10---15--14--7
256  | | | |
257  11---12--13--6
258  | | | |
259  0---4---5---1
260  * */
261 
262  { 2,
263  4,
264  0,
265  12,
266  9,
267  { 4, 15 },
268  { { -1.0 / 3.0, -1, 0 },
269  { 1.0 / 3.0, -1, 0 },
270  { 1, -1.0 / 3.0, 0 },
271  { 1, 1.0 / 3.0, 0 },
272  { 1.0 / 3.0, 1, 0 },
273  { -1.0 / 3.0, 1, 0 },
274  { -1, 1.0 / 3.0, 0 },
275  { -1, -1.0 / 3.0, 0 },
276  { -1.0 / 3.0, -1.0 / 3.0, 0 },
277  { 1.0 / 3.0, -1.0 / 3.0, 0 },
278  { 1.0 / 3.0, 1.0 / 3.0, 0 },
279  { -1.0 / 3.0, 1.0 / 3.0, 0 } },
280  { { 0, 4, 12, 11 },
281  { 4, 5, 13, 12 },
282  { 5, 1, 6, 13 },
283  { 11, 12, 15, 10 },
284  { 12, 13, 14, 15 },
285  { 13, 6, 7, 14 },
286  { 10, 15, 9, 3 },
287  { 15, 14, 8, 9 },
288  { 14, 7, 2, 8 } },
289 
290  { { 1, 0 },
291  { 3, 1 },
292  { 9, 2 },
293  { 7, 3 },
294  { 2, 0 },
295  { 3, 0 },
296  { 6, 1 },
297  { 9, 1 },
298  { 8, 2 },
299  { 7, 2 },
300  { 4, 3 },
301  { 1, 3 },
302  { 5, 0 },
303  { 6, 0 },
304  { 9, 0 },
305  { 8, 0 } },
306  { { 0, 0, 2, 3, 4, 0, 0, 0 },
307  { 0, 0, 3, 3, 5, 0, 1, 1 },
308  { 0, 0, 0, 0, 6, 0, 2, 1 },
309  { 1, 2, 5, 3, 7, 0, 0, 0 },
310  { 2, 2, 6, 3, 8, 0, 4, 1 },
311  { 3, 2, 0, 0, 9, 0, 5, 1 },
312  { 4, 2, 8, 3, 0, 0, 0, 0 },
313  { 5, 2, 9, 3, 0, 0, 7, 1 },
314  { 6, 2, 0, 0, 0, 0, 8, 1 } },
315 
316  { { 4, 5 }, { 6, 7 }, { 8, 9 }, { 10, 11 } },
317  { { 12, 13, 14, 15 } },
318  { { 3, 1, 2, 3 }, { 3, 3, 6, 9 }, { 3, 9, 8, 7 }, { 3, 7, 4, 1 } },
319  { {} } },
320 
321  // Deg 5
322  /*
323  3---15---14---13 ---12 ---2
324  | | | | | |
325  16---29---28---27 ---26---11
326  | | | | | |
327  17---30---35---34 ---25 ---10
328  | | | | | |
329  18---31---32---33 ---24 ---9
330  | | | | | |
331  19---20---21---22 ---23 ---8
332  | | | | | |
333  0--- 4--- 5--- 6 --- 7 --- 1
334  * */
335 
336  { 4,
337  16,
338  0,
339  32,
340  25,
341  { 4, 35 },
342  { { -3 / 5.0, -1, 0 }, { -1 / 5.0, -1, 0 }, { 1 / 5.0, -1, 0 }, { 3 / 5.0, -1, 0 },
343  { 1, -3 / 5.0, 0 }, { 1, -1 / 5.0, 0 }, { 1, 1 / 5.0, 0 }, { 1, 3 / 5.0, 0 },
344  { 3 / 5.0, 1, 0 }, { 1 / 5.0, 1, 0 }, { -1 / 5.0, 1, 0 }, { -3 / 5.0, 1, 0 },
345  { -1, 3 / 5.0, 0 }, { -1, 1 / 5.0, 0 }, { -1, -1 / 5.0, 0 }, { -1, -3 / 5.0, 0 },
346  { -3 / 5.0, -3 / 5.0, 0 }, { -1 / 5.0, -3 / 5.0, 0 }, { 1 / 5.0, -3 / 5.0, 0 }, { 3 / 5.0, -3 / 5.0, 0 },
347  { 3 / 5.0, -1 / 5.0, 0 }, { 3 / 5.0, 1 / 5.0, 0 }, { 3 / 5.0, 3 / 5.0, 0 }, { 1 / 5.0, 3 / 5.0, 0 },
348  { -1 / 5.0, 3 / 5.0, 0 }, { -3 / 5.0, 3 / 5.0, 0 }, { -3 / 5.0, 1 / 5.0, 0 }, { -3 / 5.0, -1 / 5.0, 0 },
349  { -1 / 5.0, -1 / 5.0, 0 }, { 1 / 5.0, -1 / 5.0, 0 }, { 1 / 5.0, 1 / 5.0, 0 }, { -1 / 5.0, 1 / 5.0, 0 } },
350  { { 0, 4, 20, 19 }, { 4, 5, 21, 20 }, { 5, 6, 22, 21 }, { 6, 7, 23, 22 }, { 7, 1, 8, 23 },
351  { 19, 20, 31, 18 }, { 20, 21, 32, 31 }, { 21, 22, 33, 32 }, { 22, 23, 24, 33 }, { 23, 8, 9, 24 },
352  { 18, 31, 30, 17 }, { 31, 32, 35, 30 }, { 32, 33, 34, 35 }, { 33, 24, 25, 34 }, { 24, 9, 10, 25 },
353  { 17, 30, 29, 16 }, { 30, 35, 28, 29 }, { 35, 34, 27, 28 }, { 34, 25, 26, 27 }, { 25, 10, 11, 26 },
354  { 16, 29, 15, 3 }, { 29, 28, 14, 15 }, { 28, 27, 13, 14 }, { 27, 26, 12, 13 }, { 26, 11, 2, 12 } },
355 
356  { { 1, 0 }, { 5, 1 }, { 25, 2 }, { 21, 3 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 10, 1 },
357  { 15, 1 }, { 20, 1 }, { 25, 1 }, { 24, 2 }, { 23, 2 }, { 22, 2 }, { 21, 2 }, { 16, 3 }, { 11, 3 },
358  { 6, 3 }, { 1, 3 }, { 7, 0 }, { 8, 0 }, { 9, 0 }, { 10, 0 }, { 15, 0 }, { 20, 0 }, { 25, 0 },
359  { 24, 0 }, { 23, 0 }, { 22, 0 }, { 17, 0 }, { 12, 0 }, { 13, 0 }, { 14, 0 }, { 19, 0 }, { 18, 0 } },
360  { { 0, 0, 2, 3, 6, 0, 0, 0 }, { 0, 0, 3, 3, 7, 0, 1, 1 }, { 0, 0, 4, 3, 8, 0, 2, 1 },
361  { 0, 0, 5, 3, 9, 0, 3, 1 }, { 0, 0, 0, 0, 10, 0, 4, 1 }, { 1, 2, 7, 3, 11, 0, 0, 0 },
362  { 2, 2, 8, 3, 12, 0, 6, 1 }, { 3, 2, 9, 3, 13, 0, 7, 1 }, { 4, 2, 10, 3, 14, 0, 8, 1 },
363  { 5, 2, 0, 0, 15, 0, 9, 1 }, { 6, 2, 12, 3, 16, 0, 0, 0 }, { 7, 2, 13, 3, 17, 0, 11, 1 },
364  { 8, 2, 14, 3, 18, 0, 12, 1 }, { 9, 2, 15, 3, 19, 0, 13, 1 }, { 10, 2, 0, 0, 20, 0, 14, 1 },
365  { 11, 2, 17, 3, 21, 0, 0, 0 }, { 12, 2, 18, 3, 22, 0, 16, 1 }, { 13, 2, 19, 3, 23, 0, 17, 1 },
366  { 14, 2, 20, 3, 24, 0, 18, 1 }, { 15, 2, 0, 0, 25, 0, 19, 1 }, { 16, 2, 22, 3, 0, 0, 0, 0 },
367  { 17, 2, 23, 3, 0, 0, 21, 1 }, { 18, 2, 24, 3, 0, 0, 22, 1 }, { 19, 2, 25, 3, 0, 0, 23, 1 },
368  { 20, 2, 0, 0, 0, 0, 24, 1 } },
369 
370  { { 4, 5, 6, 7 }, { 8, 9, 10, 11 }, { 12, 13, 14, 15 }, { 16, 17, 18, 19 } },
371  { { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 } },
372  { { 5, 1, 2, 3, 4, 5 }, { 5, 5, 10, 15, 20, 25 }, { 5, 25, 24, 23, 22, 21 }, { 5, 21, 16, 11, 6, 1 } },
373  { {} } } },
374 
375  // TET_Combination1
376  { // Degree 2
377  { 1,
378  0,
379  0,
380  6,
381  8,
382  { 4, 9 },
383  { { 0.5, 0, 0 }, { 0.5, 0.5, 0 }, { 0, 0.5, 0 }, { 0, 0, 0.5 }, { 0.5, 0, 0.5 }, { 0, 0.5, 0.5 } },
384  { { 0, 4, 6, 7 },
385  { 4, 8, 6, 7 },
386  { 4, 5, 6, 8 },
387  { 6, 8, 5, 9 },
388  { 6, 8, 9, 7 },
389  { 4, 1, 5, 8 },
390  { 6, 5, 2, 9 },
391  { 7, 8, 9, 3 } },
392 
393  { { 1, 0 }, { 6, 1 }, { 7, 2 }, { 8, 2 }, { 6, 0 }, { 7, 1 }, { 1, 2 }, { 8, 0 }, { 8, 1 }, { 8, 2 } },
394  { { 0, 0, 2, 2, 0, 0, 0, 0 },
395  { 0, 0, 5, 0, 1, 1, 3, 2 },
396  { 6, 2, 4, 3, 2, 3, 0, 0 },
397  { 5, 3, 0, 0, 7, 0, 3, 1 },
398  { 2, 1, 8, 3, 0, 0, 4, 0 },
399  { 0, 0, 0, 0, 3, 0, 0, 0 },
400  { 4, 2, 0, 0, 0, 0, 0, 0 },
401  { 0, 0, 0, 0, 0, 0, 5, 1 } },
402 
403  { { 4 }, { 5 }, { 6 }, { 7 }, { 8 }, { 9 } },
404  { {} },
405  { { 4, 1, 2, 6, 8 }, { 4, 6, 4, 7, 8 }, { 4, 7, 5, 1, 8 }, { 4, 1, 3, 7, 6 } },
406  { { 6, 0, 0 }, { 7, 1, 1 }, { 1, 2, 2 }, { 8, 0, 0 }, { 8, 1, 1 }, { 8, 2, 2 } } },
407 
408  // Degree 3
409  { 2,
410  1,
411  0,
412  16,
413  27,
414  { 4, 19 },
415  { { 1 / 3.0, 0, 0 },
416  { 2 / 3.0, 0, 0 },
417  { 2 / 3.0, 1 / 3.0, 0 },
418  { 1 / 3.0, 2 / 3.0, 0 },
419  { 0, 2 / 3.0, 0 },
420  { 0, 1 / 3.0, 0 },
421  { 0, 0, 1 / 3.0 },
422  { 0, 0, 2 / 3.0 },
423  { 2 / 3.0, 0, 1 / 3.0 },
424  { 1 / 3.0, 0, 2 / 3.0 },
425  { 0, 2 / 3.0, 1 / 3.0 },
426  { 0, 1 / 3.0, 2 / 3.0 },
427  { 1 / 3.0, 0, 1 / 3.0 },
428  { 1 / 3.0, 1 / 3.0, 1 / 3.0 },
429  { 0, 1 / 3.0, 1 / 3.0 },
430  { 1 / 3.0, 1 / 3.0, 0 } },
431 
432  { { 0, 4, 9, 10 }, { 4, 16, 9, 10 }, { 4, 19, 9, 16 }, { 9, 16, 19, 18 }, { 9, 16, 18, 10 },
433  { 4, 5, 19, 16 }, { 5, 12, 19, 16 }, { 5, 6, 19, 12 }, { 19, 12, 6, 17 }, { 19, 12, 17, 16 },
434  { 5, 1, 6, 12 }, { 19, 6, 7, 17 }, { 19, 17, 8, 18 }, { 19, 7, 8, 17 }, { 8, 17, 7, 14 },
435  { 8, 17, 14, 18 }, { 8, 7, 2, 14 }, { 19, 16, 17, 18 }, { 9, 19, 8, 18 }, { 10, 16, 18, 11 },
436  { 16, 13, 18, 11 }, { 16, 17, 18, 13 }, { 18, 13, 17, 15 }, { 18, 13, 15, 11 }, { 16, 12, 17, 13 },
437  { 18, 17, 14, 15 }, { 11, 13, 15, 3 } },
438 
439  { { 1, 0 }, { 11, 1 }, { 17, 2 }, { 27, 2 }, { 6, 0 }, { 11, 0 }, { 12, 1 }, { 17, 1 }, { 19, 2 }, { 1, 2 },
440  { 20, 0 }, { 27, 0 }, { 25, 1 }, { 27, 1 }, { 26, 2 }, { 27, 2 }, { 25, 0 }, { 26, 0 }, { 20, 2 }, { 6, 3 } },
441  { { 0, 0, 2, 2, 0, 0, 0, 0 }, { 0, 0, 5, 0, 1, 1, 3, 2 }, { 6, 2, 4, 3, 2, 3, 0, 0 },
442  { 5, 3, 18, 0, 19, 0, 3, 1 }, { 2, 1, 20, 3, 0, 0, 4, 0 }, { 0, 0, 7, 2, 3, 0, 0, 0 },
443  { 0, 0, 10, 0, 6, 1, 8, 2 }, { 11, 2, 9, 3, 7, 3, 0, 0 }, { 10, 3, 0, 0, 12, 0, 8, 1 },
444  { 7, 1, 25, 3, 18, 3, 9, 0 }, { 0, 0, 0, 0, 8, 0, 0, 0 }, { 9, 2, 0, 0, 14, 0, 0, 0 },
445  { 18, 2, 16, 0, 19, 1, 14, 2 }, { 12, 2, 15, 3, 13, 3, 0, 0 }, { 16, 3, 0, 0, 17, 0, 14, 1 },
446  { 13, 1, 26, 3, 0, 0, 15, 0 }, { 15, 2, 0, 0, 0, 0, 0, 0 }, { 4, 1, 22, 3, 13, 0, 10, 2 },
447  { 4, 2, 13, 2, 0, 0, 0, 0 }, { 0, 0, 21, 2, 0, 0, 5, 1 }, { 0, 0, 24, 0, 20, 1, 22, 2 },
448  { 25, 2, 23, 3, 21, 3, 18, 1 }, { 24, 3, 0, 0, 26, 0, 22, 1 }, { 21, 1, 27, 3, 0, 0, 23, 0 },
449  { 0, 0, 0, 0, 22, 0, 10, 1 }, { 23, 2, 0, 0, 0, 0, 16, 1 }, { 0, 0, 0, 0, 0, 0, 24, 1 } },
450 
451  { { 4, 5 }, { 6, 7 }, { 8, 9 }, { 10, 11 }, { 12, 13 }, { 14, 15 } },
452  { { 16 }, { 17 }, { 18 }, { 19 } },
453  { { 9, 1, 2, 6, 7, 11, 20, 21, 25, 27 },
454  { 9, 11, 9, 12, 15, 17, 25, 23, 26, 27 },
455  { 9, 17, 16, 19, 5, 1, 26, 24, 20, 27 },
456  { 9, 1, 3, 19, 14, 17, 6, 8, 12, 11 } },
457  { { 6, 0, 0, 11, 0, 0 },
458  { 12, 1, 1, 17, 1, 1 },
459  { 19, 2, 2, 1, 2, 2 },
460  { 20, 0, 0, 27, 0, 0 },
461  { 25, 1, 1, 27, 1, 1 },
462  { 26, 2, 2, 27, 2, 2 } } } },
463 
464  // TET_Combination2
465  { // Degree 2
466  { 1,
467  0,
468  0,
469  6,
470  8,
471  { 4, 9 },
472  { { 0.5, 0, 0 }, { 0.5, 0.5, 0 }, { 0, 0.5, 0 }, { 0, 0, 0.5 }, { 0.5, 0, 0.5 }, { 0, 0.5, 0.5 } },
473  { { 0, 4, 6, 7 },
474  { 4, 8, 9, 7 },
475  { 4, 9, 8, 5 },
476  { 4, 5, 6, 9 },
477  { 6, 4, 9, 7 },
478  { 4, 1, 5, 8 },
479  { 6, 5, 2, 9 },
480  { 7, 8, 9, 3 } },
481 
482  { { 1, 0 }, { 6, 1 }, { 7, 2 }, { 8, 2 }, { 6, 0 }, { 7, 1 }, { 1, 2 }, { 8, 0 }, { 8, 1 }, { 8, 2 } },
483  { { 0, 0, 5, 0, 0, 0, 0, 0 },
484  { 0, 0, 8, 3, 5, 1, 3, 3 },
485  { 4, 0, 0, 0, 6, 2, 2, 3 },
486  { 3, 0, 7, 0, 5, 3, 0, 0 },
487  { 1, 1, 2, 2, 0, 0, 4, 2 },
488  { 0, 0, 0, 0, 3, 2, 0, 0 },
489  { 4, 1, 0, 0, 0, 0, 0, 0 },
490  { 0, 0, 0, 0, 0, 0, 2, 1 } },
491 
492  { { 4 }, { 5 }, { 6 }, { 7 }, { 8 }, { 9 } },
493  { {} },
494  { { 4, 1, 2, 6, 8 }, { 4, 6, 3, 7, 8 }, { 4, 7, 5, 1, 8 }, { 4, 1, 4, 7, 6 } },
495  { { 6, 0, 0 }, { 7, 1, 1 }, { 1, 2, 2 }, { 8, 0, 0 }, { 8, 1, 1 }, { 8, 2, 2 } } },
496 
497  // Degree 3
498  { 2,
499  1,
500  0,
501  16,
502  27,
503  { 4, 19 },
504  { { 1 / 3.0, 0, 0 },
505  { 2 / 3.0, 0, 0 },
506  { 2 / 3.0, 1 / 3.0, 0 },
507  { 1 / 3.0, 2 / 3.0, 0 },
508  { 0, 2 / 3.0, 0 },
509  { 0, 1 / 3.0, 0 },
510  { 0, 0, 1 / 3.0 },
511  { 0, 0, 2 / 3.0 },
512  { 2 / 3.0, 0, 1 / 3.0 },
513  { 1 / 3.0, 0, 2 / 3.0 },
514  { 0, 2 / 3.0, 1 / 3.0 },
515  { 0, 1 / 3.0, 2 / 3.0 },
516  { 1 / 3.0, 0, 1 / 3.0 },
517  { 1 / 3.0, 1 / 3.0, 1 / 3.0 },
518  { 0, 1 / 3.0, 1 / 3.0 },
519  { 1 / 3.0, 1 / 3.0, 0 } },
520 
521  { { 0, 4, 9, 10 }, { 4, 16, 18, 10 }, { 4, 18, 16, 19 }, { 4, 19, 9, 18 }, { 9, 4, 18, 10 },
522  { 4, 5, 19, 16 }, { 5, 12, 17, 16 }, { 5, 17, 12, 6 }, { 5, 6, 19, 17 }, { 19, 5, 17, 16 },
523  { 5, 1, 6, 12 }, { 19, 6, 7, 17 }, { 19, 17, 14, 18 }, { 19, 14, 17, 7 }, { 19, 7, 8, 14 },
524  { 8, 19, 14, 18 }, { 8, 7, 2, 14 }, { 19, 16, 17, 18 }, { 9, 19, 8, 18 }, { 10, 16, 18, 11 },
525  { 16, 13, 15, 11 }, { 16, 15, 13, 17 }, { 16, 17, 18, 15 }, { 18, 16, 15, 11 }, { 16, 12, 17, 13 },
526  { 18, 17, 14, 15 }, { 11, 13, 15, 3 } },
527 
528  { { 1, 0 }, { 11, 1 }, { 17, 2 }, { 27, 2 }, { 6, 0 }, { 11, 0 }, { 12, 1 }, { 17, 1 }, { 19, 2 }, { 1, 2 },
529  { 20, 0 }, { 27, 0 }, { 25, 1 }, { 27, 1 }, { 26, 2 }, { 27, 2 }, { 25, 0 }, { 26, 0 }, { 20, 2 }, { 6, 3 } },
530  { { 0, 0, 5, 0, 0, 0, 0, 0 }, { 0, 0, 20, 3, 5, 1, 3, 3 }, { 4, 0, 18, 0, 6, 2, 2, 3 },
531  { 3, 0, 19, 0, 5, 3, 0, 0 }, { 1, 1, 2, 2, 0, 0, 4, 2 }, { 0, 0, 10, 0, 3, 2, 0, 0 },
532  { 0, 0, 25, 3, 10, 1, 8, 3 }, { 9, 0, 0, 0, 11, 2, 7, 3 }, { 8, 0, 12, 0, 10, 3, 0, 0 },
533  { 6, 1, 7, 2, 18, 3, 9, 2 }, { 0, 0, 0, 0, 8, 2, 0, 0 }, { 9, 1, 0, 0, 14, 2, 0, 0 },
534  { 18, 2, 26, 3, 16, 1, 14, 3 }, { 15, 0, 0, 0, 12, 2, 13, 3 }, { 14, 0, 17, 0, 16, 3, 0, 0 },
535  { 19, 1, 13, 2, 0, 0, 15, 2 }, { 15, 1, 0, 0, 0, 0, 0, 0 }, { 3, 1, 23, 3, 13, 0, 10, 2 },
536  { 4, 1, 16, 0, 0, 0, 0, 0 }, { 0, 0, 24, 0, 0, 0, 2, 1 }, { 0, 0, 27, 3, 24, 1, 22, 3 },
537  { 23, 0, 0, 0, 25, 2, 21, 3 }, { 22, 0, 26, 0, 24, 3, 18, 1 }, { 20, 1, 21, 2, 0, 0, 23, 2 },
538  { 0, 0, 0, 0, 22, 2, 7, 1 }, { 23, 1, 0, 0, 0, 0, 13, 1 }, { 0, 0, 0, 0, 0, 0, 21, 1 } },
539 
540  { { 4, 5 }, { 6, 7 }, { 8, 9 }, { 10, 11 }, { 12, 13 }, { 14, 15 } },
541  { { 16 }, { 17 }, { 18 }, { 19 } },
542  { { 9, 1, 2, 6, 7, 11, 20, 21, 25, 27 },
543  { 9, 11, 8, 12, 14, 17, 25, 22, 26, 27 },
544  { 9, 17, 16, 19, 5, 1, 26, 24, 20, 27 },
545  { 9, 1, 4, 19, 15, 17, 6, 9, 12, 11 } },
546  { { 6, 0, 0, 11, 0, 0 },
547  { 12, 1, 1, 17, 1, 1 },
548  { 19, 2, 2, 1, 2, 2 },
549  { 20, 0, 0, 27, 0, 0 },
550  { 25, 1, 1, 27, 1, 1 },
551  { 26, 2, 2, 27, 2, 2 } } } },
552 
553  // TET_Combination3
554  { // Degree 2
555  { 1,
556  0,
557  0,
558  6,
559  8,
560  { 4, 9 },
561  { { 0.5, 0, 0 }, { 0.5, 0.5, 0 }, { 0, 0.5, 0 }, { 0, 0, 0.5 }, { 0.5, 0, 0.5 }, { 0, 0.5, 0.5 } },
562  { { 0, 4, 6, 7 },
563  { 4, 8, 5, 7 },
564  { 7, 8, 5, 9 },
565  { 7, 5, 6, 9 },
566  { 4, 5, 6, 7 },
567  { 4, 1, 5, 8 },
568  { 6, 5, 2, 9 },
569  { 7, 8, 9, 3 } },
570 
571  { { 1, 0 }, { 6, 1 }, { 7, 2 }, { 8, 2 }, { 6, 0 }, { 7, 1 }, { 1, 2 }, { 8, 0 }, { 8, 1 }, { 8, 2 } },
572  { { 0, 0, 5, 2, 0, 0, 0, 0 },
573  { 0, 0, 3, 3, 5, 0, 6, 2 },
574  { 8, 3, 0, 0, 4, 0, 2, 1 },
575  { 3, 2, 7, 0, 0, 0, 5, 1 },
576  { 2, 2, 4, 3, 1, 1, 0, 0 },
577  { 0, 0, 0, 0, 2, 3, 0, 0 },
578  { 4, 1, 0, 0, 0, 0, 0, 0 },
579  { 0, 0, 0, 0, 0, 0, 3, 0 } },
580 
581  { { 4 }, { 5 }, { 6 }, { 7 }, { 8 }, { 9 } },
582  { {} },
583  { { 4, 1, 2, 6, 8 }, { 4, 6, 3, 7, 8 }, { 4, 7, 4, 1, 8 }, { 4, 1, 5, 7, 6 } },
584  { { 6, 0, 0 }, { 7, 1, 1 }, { 1, 2, 2 }, { 8, 0, 0 }, { 8, 1, 1 }, { 8, 2, 2 } } },
585 
586  // Degree 3
587  { 2,
588  1,
589  0,
590  16,
591  27,
592  { 4, 19 },
593  { { 1 / 3.0, 0, 0 },
594  { 2 / 3.0, 0, 0 },
595  { 2 / 3.0, 1 / 3.0, 0 },
596  { 1 / 3.0, 2 / 3.0, 0 },
597  { 0, 2 / 3.0, 0 },
598  { 0, 1 / 3.0, 0 },
599  { 0, 0, 1 / 3.0 },
600  { 0, 0, 2 / 3.0 },
601  { 2 / 3.0, 0, 1 / 3.0 },
602  { 1 / 3.0, 0, 2 / 3.0 },
603  { 0, 2 / 3.0, 1 / 3.0 },
604  { 0, 1 / 3.0, 2 / 3.0 },
605  { 1 / 3.0, 0, 1 / 3.0 },
606  { 1 / 3.0, 1 / 3.0, 1 / 3.0 },
607  { 0, 1 / 3.0, 1 / 3.0 },
608  { 1 / 3.0, 1 / 3.0, 0 } },
609 
610  { { 0, 4, 9, 10 }, { 4, 16, 19, 10 }, { 10, 16, 19, 18 }, { 10, 19, 9, 18 }, { 4, 19, 9, 10 },
611  { 4, 5, 19, 16 }, { 5, 12, 6, 16 }, { 16, 12, 6, 17 }, { 16, 6, 19, 17 }, { 5, 6, 19, 16 },
612  { 5, 1, 6, 12 }, { 19, 6, 7, 17 }, { 19, 17, 7, 18 }, { 18, 17, 7, 14 }, { 18, 7, 8, 14 },
613  { 19, 7, 8, 18 }, { 8, 7, 2, 14 }, { 19, 16, 17, 18 }, { 9, 19, 8, 18 }, { 10, 16, 18, 11 },
614  { 16, 13, 17, 11 }, { 11, 13, 17, 15 }, { 11, 17, 18, 15 }, { 16, 17, 18, 11 }, { 16, 12, 17, 13 },
615  { 18, 17, 14, 15 }, { 11, 13, 15, 3 } },
616 
617  { { 1, 0 }, { 11, 1 }, { 17, 2 }, { 27, 2 }, { 6, 0 }, { 11, 0 }, { 12, 1 }, { 17, 1 }, { 19, 2 }, { 1, 2 },
618  { 20, 0 }, { 27, 0 }, { 25, 1 }, { 27, 1 }, { 26, 2 }, { 27, 2 }, { 25, 0 }, { 26, 0 }, { 20, 2 }, { 6, 3 } },
619  { { 0, 0, 5, 2, 0, 0, 0, 0 }, { 0, 0, 3, 3, 5, 0, 6, 2 }, { 20, 3, 18, 0, 4, 0, 2, 1 },
620  { 3, 2, 19, 0, 0, 0, 5, 1 }, { 2, 2, 4, 3, 1, 1, 0, 0 }, { 0, 0, 10, 2, 2, 3, 0, 0 },
621  { 0, 0, 8, 3, 10, 0, 11, 2 }, { 25, 3, 0, 0, 9, 0, 7, 1 }, { 8, 2, 12, 0, 18, 3, 10, 1 },
622  { 7, 2, 9, 3, 6, 1, 0, 0 }, { 0, 0, 0, 0, 7, 3, 0, 0 }, { 9, 1, 0, 0, 13, 3, 0, 0 },
623  { 18, 2, 14, 3, 16, 0, 12, 2 }, { 26, 3, 0, 0, 15, 0, 13, 1 }, { 14, 2, 17, 0, 0, 0, 16, 1 },
624  { 13, 2, 15, 3, 19, 1, 0, 0 }, { 15, 1, 0, 0, 0, 0, 0, 0 }, { 3, 1, 24, 3, 13, 0, 9, 2 },
625  { 4, 1, 16, 2, 0, 0, 0, 0 }, { 0, 0, 24, 2, 0, 0, 3, 0 }, { 0, 0, 22, 3, 24, 0, 25, 2 },
626  { 27, 3, 0, 0, 23, 0, 21, 1 }, { 22, 2, 26, 0, 0, 0, 24, 1 }, { 21, 2, 23, 3, 20, 1, 18, 1 },
627  { 0, 0, 0, 0, 21, 3, 8, 0 }, { 23, 1, 0, 0, 0, 0, 14, 0 }, { 0, 0, 0, 0, 0, 0, 22, 0 } },
628 
629  { { 4, 5 }, { 6, 7 }, { 8, 9 }, { 10, 11 }, { 12, 13 }, { 14, 15 } },
630  { { 16 }, { 17 }, { 18 }, { 19 } },
631  { { 9, 1, 2, 6, 7, 11, 20, 21, 25, 27 },
632  { 9, 11, 8, 12, 14, 17, 25, 22, 26, 27 },
633  { 9, 17, 15, 19, 4, 1, 26, 23, 20, 27 },
634  { 9, 1, 5, 19, 16, 17, 6, 10, 12, 11 } },
635  { { 6, 0, 0, 11, 0, 0 },
636  { 12, 1, 1, 17, 1, 1 },
637  { 19, 2, 2, 1, 2, 2 },
638  { 20, 0, 0, 27, 0, 0 },
639  { 25, 1, 1, 27, 1, 1 },
640  { 26, 2, 2, 27, 2, 2 } } } },
641 
642  // PRISM
643  {
644  { 0, 0, 0, 0, 0, {}, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} } }, // deg 2
645 
646  { 0, 0, 0, 0, 0, {}, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} } } // deg3
647  },
648 
649  // KNIFE
650  { { 0, 0, 0, 0, 0, {}, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} } },
651  { 0, 0, 0, 0, 0, {}, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} }, { {} } } },
652 
653  // HEX
654  { // Deg 2
655  { 1,
656  1,
657  1,
658  19,
659  8,
660  { 8, 26 },
661  { { 0, -1, -1 },
662  { 1, 0, -1 },
663  { 0, 1, -1 },
664  { -1, 0, -1 },
665  { -1, -1, 0 },
666  { 1, -1, 0 },
667  { 1, 1, 0 },
668  { -1, 1, 0 },
669  { 0, -1, 1 },
670  { 1, 0, 1 },
671  { 0, 1, 1 },
672  { -1, 0, 1 },
673  { 0, -1, 0 },
674  { 1, 0, 0 },
675  { 0, 1, 0 },
676  { -1, 0, 0 },
677  { 0, 0, -1 },
678  { 0, 0, 1 },
679  { 0, 0, 0 } },
680  { { 0, 8, 24, 11, 12, 20, 26, 23 },
681  { 8, 1, 9, 24, 20, 13, 21, 26 },
682  { 11, 24, 10, 3, 23, 26, 22, 15 },
683  { 24, 9, 2, 10, 26, 21, 14, 22 },
684  { 12, 20, 26, 23, 4, 16, 25, 19 },
685  { 20, 13, 21, 26, 16, 5, 17, 25 },
686  { 23, 26, 22, 15, 19, 25, 18, 7 },
687  { 26, 21, 14, 22, 25, 17, 6, 18 } },
688 
689  { { 1, 0 }, { 2, 1 }, { 4, 2 }, { 3, 3 }, { 5, 5 }, { 6, 5 }, { 8, 5 }, { 7, 5 }, { 2, 0 },
690  { 4, 1 }, { 3, 2 }, { 1, 3 }, { 5, 0 }, { 6, 1 }, { 8, 2 }, { 7, 3 }, { 6, 5 }, { 8, 5 },
691  { 7, 5 }, { 5, 5 }, { 6, 0 }, { 8, 1 }, { 7, 2 }, { 5, 3 }, { 2, 4 }, { 8, 5 }, { 8, 0 } },
692  { { 0, 0, 2, 3, 3, 0, 0, 0, 0, 0, 5, 4 },
693  { 0, 0, 0, 0, 4, 0, 1, 1, 0, 0, 6, 4 },
694  { 1, 2, 4, 3, 0, 0, 0, 0, 0, 0, 7, 4 },
695  { 2, 2, 0, 0, 0, 0, 3, 1, 0, 0, 8, 4 },
696  { 0, 0, 6, 3, 7, 0, 0, 0, 1, 5, 0, 0 },
697  { 0, 0, 0, 0, 8, 0, 5, 1, 2, 5, 0, 0 },
698  { 5, 2, 8, 3, 0, 0, 0, 0, 3, 5, 0, 0 },
699  { 6, 2, 0, 0, 0, 0, 7, 1, 4, 5, 0, 0 } },
700 
701  { { 8 }, { 9 }, { 10 }, { 11 }, { 12 }, { 13 }, { 14 }, { 15 }, { 16 }, { 17 }, { 18 }, { 19 } },
702  { { 20 }, { 21 }, { 22 }, { 23 }, { 24 }, { 25 } },
703  { { 4, 1, 2, 6, 5 },
704  { 4, 2, 4, 8, 6 },
705  { 4, 4, 3, 7, 8 },
706  { 4, 3, 1, 5, 7 },
707  { 4, 1, 3, 4, 2 },
708  { 4, 5, 6, 8, 7 } },
709  { { 2, 0, 0 },
710  { 4, 1, 1 },
711  { 3, 2, 2 },
712  { 1, 3, 3 },
713  { 5, 0, 0 },
714  { 6, 1, 1 },
715  { 8, 2, 2 },
716  { 7, 3, 3 },
717  { 6, 0, 4 },
718  { 8, 1, 5 },
719  { 7, 2, 6 },
720  { 5, 3, 7 } } },
721 
722  // Deg 3
723  { 2,
724  4,
725  8,
726  56,
727  27,
728  { 8, 63 },
729  { { -1 / 3.0, -1, -1 },
730  { 1 / 3.0, -1, -1 },
731  { 1, -1 / 3.0, -1 },
732  { 1, 1 / 3.0, -1 },
733  { 1 / 3.0, 1, -1 },
734  { -1 / 3.0, 1, -1 },
735  { -1, 1 / 3.0, -1 },
736  { -1, -1 / 3.0, -1 },
737  { -1, -1, -1 / 3.0 },
738  { -1, -1, 1 / 3.0 },
739  { 1, -1, -1 / 3.0 },
740  { 1, -1, 1 / 3.0 },
741  { 1, 1, -1 / 3.0 },
742  { 1, 1, 1 / 3.0 },
743  { -1, 1, -1 / 3.0 },
744  { -1, 1, 1 / 3.0 },
745  { -1 / 3.0, -1, 1 },
746  { 1 / 3.0, -1, 1 },
747  { 1, -1 / 3.0, 1 },
748  { 1, 1 / 3.0, 1 },
749  { 1 / 3.0, 1, 1 },
750  { -1 / 3.0, 1, 1 },
751  { -1, 1 / 3.0, 1 },
752  { -1, -1 / 3.0, 1 },
753  { -1 / 3.0, -1, -1 / 3.0 },
754  { 1 / 3.0, -1, -1 / 3.0 },
755  { 1 / 3.0, -1, 1 / 3.0 },
756  { -1 / 3.0, -1, 1 / 3.0 },
757  { 1, -1 / 3.0, -1 / 3.0 },
758  { 1, 1 / 3.0, -1 / 3.0 },
759  { 1, 1 / 3.0, 1 / 3.0 },
760  { 1, -1 / 3.0, 1 / 3.0 },
761  { 1 / 3.0, 1, -1 / 3.0 },
762  { -1 / 3.0, 1, -1 / 3.0 },
763  { -1 / 3.0, 1, 1 / 3.0 },
764  { 1 / 3.0, 1, 1 / 3.0 },
765  { -1, 1 / 3.0, -1 / 3.0 },
766  { -1, -1 / 3.0, -1 / 3.0 },
767  { -1, -1 / 3.0, 1 / 3.0 },
768  { -1, 1 / 3.0, 1 / 3.0 },
769  { -1 / 3.0, -1 / 3.0, -1 },
770  { -1 / 3.0, 1 / 3.0, -1 },
771  { 1 / 3.0, 1 / 3.0, -1 },
772  { 1 / 3.0, -1 / 3.0, -1 },
773  { -1 / 3.0, -1 / 3.0, 1 },
774  { 1 / 3.0, -1 / 3.0, 1 },
775  { 1 / 3.0, 1 / 3.0, 1 },
776  { -1 / 3.0, 1 / 3.0, 1 },
777  { -1 / 3.0, -1 / 3.0, -1 / 3.0 },
778  { 1 / 3.0, -1 / 3.0, -1 / 3.0 },
779  { 1 / 3.0, 1 / 3.0, -1 / 3.0 },
780  { -1 / 3.0, 1 / 3.0, -1 / 3.0 },
781  { -1 / 3.0, -1 / 3.0, 1 / 3.0 },
782  { 1 / 3.0, -1 / 3.0, 1 / 3.0 },
783  { 1 / 3.0, 1 / 3.0, 1 / 3.0 },
784  { -1 / 3.0, 1 / 3.0, 1 / 3.0 } },
785 
786  { { 0, 8, 48, 15, 16, 32, 56, 45 }, { 8, 9, 51, 48, 32, 33, 57, 56 }, { 9, 1, 10, 51, 33, 18, 36, 57 },
787  { 15, 48, 49, 14, 45, 56, 59, 44 }, { 48, 51, 50, 49, 56, 57, 58, 59 }, { 51, 10, 11, 50, 57, 36, 37, 58 },
788  { 14, 49, 13, 3, 44, 59, 41, 22 }, { 49, 50, 12, 13, 59, 58, 40, 41 }, { 50, 11, 2, 12, 58, 37, 20, 40 },
789  { 16, 32, 56, 45, 17, 35, 60, 46 }, { 32, 33, 57, 56, 35, 34, 61, 60 }, { 33, 18, 36, 57, 34, 19, 39, 61 },
790  { 45, 56, 59, 44, 46, 60, 63, 47 }, { 56, 57, 58, 59, 60, 61, 62, 63 }, { 57, 36, 37, 58, 61, 39, 38, 62 },
791  { 44, 59, 41, 22, 47, 63, 42, 23 }, { 59, 58, 40, 41, 63, 62, 43, 42 }, { 58, 37, 20, 40, 62, 38, 21, 43 },
792  { 17, 35, 60, 46, 4, 24, 52, 31 }, { 35, 34, 61, 60, 24, 25, 53, 52 }, { 34, 19, 39, 61, 25, 5, 26, 53 },
793  { 46, 60, 63, 47, 31, 52, 55, 30 }, { 60, 61, 62, 63, 52, 53, 54, 55 }, { 61, 39, 38, 62, 53, 26, 27, 54 },
794  { 47, 63, 42, 23, 30, 55, 29, 7 }, { 63, 62, 43, 42, 55, 54, 28, 29 }, { 62, 38, 21, 43, 54, 27, 6, 28 } },
795 
796  { { 1, 0 }, { 3, 1 }, { 9, 2 }, { 7, 3 }, { 19, 5 }, { 21, 5 }, { 27, 5 }, { 25, 5 }, { 2, 0 }, { 3, 0 },
797  { 6, 1 }, { 9, 1 }, { 8, 2 }, { 7, 2 }, { 4, 3 }, { 1, 3 }, { 10, 0 }, { 19, 0 }, { 12, 1 }, { 21, 1 },
798  { 18, 2 }, { 27, 2 }, { 16, 3 }, { 25, 3 }, { 20, 5 }, { 21, 5 }, { 24, 5 }, { 27, 5 }, { 26, 5 }, { 25, 5 },
799  { 22, 5 }, { 19, 5 }, { 11, 0 }, { 12, 0 }, { 21, 0 }, { 20, 0 }, { 15, 1 }, { 18, 1 }, { 27, 1 }, { 24, 1 },
800  { 17, 2 }, { 16, 2 }, { 25, 2 }, { 26, 2 }, { 13, 3 }, { 10, 3 }, { 19, 3 }, { 22, 3 }, { 5, 4 }, { 8, 4 },
801  { 9, 4 }, { 6, 4 }, { 23, 5 }, { 24, 5 }, { 27, 5 }, { 26, 5 }, { 14, 4 }, { 15, 4 }, { 18, 4 }, { 17, 4 },
802  { 23, 4 }, { 24, 4 }, { 27, 4 }, { 26, 4 } },
803 
804  { { 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 10, 4 }, { 0, 0, 3, 3, 5, 0, 1, 1, 0, 0, 11, 4 },
805  { 0, 0, 0, 0, 6, 0, 2, 1, 0, 0, 12, 4 }, { 1, 2, 5, 3, 7, 0, 0, 0, 0, 0, 13, 4 },
806  { 2, 2, 6, 3, 8, 0, 4, 1, 0, 0, 14, 4 }, { 3, 2, 0, 0, 9, 0, 5, 1, 0, 0, 15, 4 },
807  { 4, 2, 8, 3, 0, 0, 0, 0, 0, 0, 16, 4 }, { 5, 2, 9, 3, 0, 0, 7, 1, 0, 0, 17, 4 },
808  { 6, 2, 0, 0, 0, 0, 8, 1, 0, 0, 18, 4 },
809 
810  { 0, 0, 11, 3, 13, 0, 0, 0, 1, 5, 19, 4 }, { 0, 0, 12, 3, 14, 0, 10, 1, 2, 5, 20, 4 },
811  { 0, 0, 0, 0, 15, 0, 11, 1, 3, 5, 21, 4 }, { 10, 2, 14, 3, 16, 0, 0, 0, 4, 5, 22, 4 },
812  { 11, 2, 15, 3, 17, 0, 13, 1, 5, 5, 23, 4 }, { 12, 2, 0, 0, 18, 0, 14, 1, 6, 5, 24, 4 },
813  { 13, 2, 17, 3, 0, 0, 0, 0, 7, 5, 25, 4 }, { 14, 2, 18, 3, 0, 0, 16, 1, 8, 5, 26, 4 },
814  { 15, 2, 0, 0, 0, 0, 17, 1, 9, 5, 27, 4 },
815 
816  { 0, 0, 20, 3, 22, 0, 0, 0, 10, 5, 0, 0 }, { 0, 0, 21, 3, 23, 0, 19, 1, 11, 5, 0, 0 },
817  { 0, 0, 0, 0, 24, 0, 20, 1, 12, 5, 0, 0 }, { 19, 2, 23, 3, 25, 0, 0, 0, 13, 5, 0, 0 },
818  { 20, 2, 24, 3, 26, 0, 22, 1, 14, 5, 0, 0 }, { 21, 2, 0, 0, 27, 0, 23, 1, 15, 5, 0, 0 },
819  { 22, 2, 26, 3, 0, 0, 0, 0, 16, 5, 0, 0 }, { 23, 2, 27, 3, 0, 0, 25, 1, 17, 5, 0, 0 },
820  { 24, 2, 0, 0, 0, 0, 26, 1, 18, 5, 0, 0 } },
821 
822  { { 8, 9 },
823  { 10, 11 },
824  { 12, 13 },
825  { 14, 15 },
826  { 16, 17 },
827  { 18, 19 },
828  { 20, 21 },
829  { 22, 23 },
830  { 24, 25 },
831  { 26, 27 },
832  { 28, 29 },
833  { 30, 31 } },
834  { { 32, 33, 34, 35 },
835  { 36, 37, 38, 39 },
836  { 40, 41, 42, 43 },
837  { 44, 45, 46, 47 },
838  { 48, 49, 50, 51 },
839  { 52, 53, 54, 55 } },
840  { { 9, 1, 2, 3, 10, 11, 12, 19, 20, 21 },
841  { 9, 3, 6, 9, 12, 15, 18, 21, 24, 27 },
842  { 9, 9, 8, 7, 18, 17, 16, 27, 26, 25 },
843  { 9, 7, 4, 1, 16, 13, 10, 25, 22, 19 },
844  { 9, 1, 4, 7, 2, 5, 8, 3, 6, 9 },
845  { 9, 19, 20, 21, 22, 23, 24, 25, 26, 27 } },
846  { { 2, 0, 0, 3, 0, 0 },
847  { 6, 1, 1, 9, 1, 1 },
848  { 8, 2, 2, 7, 2, 2 },
849  { 4, 3, 3, 1, 3, 3 },
850  { 10, 0, 0, 19, 0, 0 },
851  { 12, 1, 1, 21, 1, 1 },
852  { 18, 2, 2, 27, 2, 2 },
853  { 16, 3, 3, 25, 3, 3 },
854  { 20, 0, 4, 21, 0, 4 },
855  { 24, 1, 5, 27, 1, 5 },
856  { 26, 2, 6, 25, 2, 6 },
857  { 22, 3, 7, 19, 3, 7 } } } } };
858 
859 const NestedRefine::pmat NestedRefine::permutation[2] = {
860  // MBTRI
861  { 6,
862  { { 0, 1, 2 }, { 1, 0, 2 }, { 2, 1, 0 }, { 0, 2, 1 }, { 2, 0, 1 }, { 1, 2, 0 } },
863  { { 0, 1, 2 }, { 0, 2, 1 }, { 1, 0, 2 }, { 2, 1, 0 }, { 2, 0, 1 }, { 1, 2, 0 } },
864  { 1, 0, 0, 0, 1, 1 },
865  { { 1, 2, 3, 4 }, { 3, 2, 1, 4 }, { 4, 2, 3, 1 }, { 1, 2, 4, 3 }, { 4, 2, 1, 3 }, { 3, 2, 4, 1 } },
866  { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
867  { 5, 4, 3, 2, 1, 8, 7, 6, 9 },
868  { 9, 7, 8, 4, 5, 6, 2, 3, 1 },
869  { 1, 2, 6, 7, 9, 3, 4, 8, 5 },
870  { 9, 7, 6, 2, 1, 8, 4, 3, 5 },
871  { 5, 4, 8, 7, 9, 3, 2, 6, 1 } } },
872 
873  // MBQUAD
874  { 8,
875  { { 0, 1, 2, 3 },
876  { 1, 0, 3, 2 },
877  { 2, 1, 0, 3 },
878  { 3, 2, 1, 0 },
879  { 0, 3, 2, 1 },
880  { 3, 0, 1, 2 },
881  { 2, 3, 0, 1 },
882  { 1, 2, 3, 0 } },
883  { { 0, 1, 2, 3 },
884  { 0, 3, 2, 1 },
885  { 1, 0, 3, 2 },
886  { 2, 1, 0, 3 },
887  { 3, 2, 1, 0 },
888  { 3, 0, 1, 2 },
889  { 2, 3, 0, 1 },
890  { 1, 2, 3, 0 } },
891  { 1, 0, 0, 0, 0, 1, 1, 1 },
892  { { 1, 2, 3, 4 },
893  { 2, 1, 4, 3 },
894  { 3, 2, 1, 4 },
895  { 4, 3, 2, 1 },
896  { 1, 4, 3, 2 },
897  { 4, 1, 2, 3 },
898  { 3, 4, 1, 2 },
899  { 2, 3, 4, 1 } },
900  { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
901  { 3, 2, 1, 6, 5, 4, 9, 8, 7 },
902  { 9, 6, 3, 8, 5, 2, 7, 1 },
903  { 7, 8, 9, 4, 5, 6, 1, 2, 3 },
904  { 1, 4, 7, 2, 5, 8, 3, 6, 9 },
905  { 7, 4, 1, 8, 5, 2, 9, 6, 3 },
906  { 9, 8, 7, 6, 5, 4, 3, 2, 1 },
907  { 3, 6, 9, 2, 5, 8, 1, 4, 7 } } } };
908 
909 const NestedRefine::intFEdge NestedRefine::intFacEdg[2][2] = {
910  // MBTRI
911  { { 3, { { 3, 4 }, { 4, 5 }, { 5, 3 } } },
912  { 9, { { 8, 3 }, { 3, 9 }, { 9, 4 }, { 4, 5 }, { 5, 9 }, { 9, 8 }, { 7, 9 }, { 9, 6 }, { 6, 7 } } } },
913 
914  // MBQUAD
915  { { 4, { { 4, 8 }, { 7, 8 }, { 8, 6 }, { 8, 5 } } },
916  { 12,
917  { { 4, 12 },
918  { 12, 15 },
919  { 15, 9 },
920  { 5, 13 },
921  { 13, 14 },
922  { 14, 8 },
923  { 11, 12 },
924  { 12, 13 },
925  { 13, 6 },
926  { 10, 15 },
927  { 15, 14 },
928  { 14, 7 } } } } };
929 
930 } // namespace moab
931 
932 #endif