Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
patran_order.h
Go to the documentation of this file.
1 #ifndef PATRAN_ORDER_H
2 #define PATRAN_ORDER_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 namespace moab
7 {
8 #endif
9 
10  /* Define maps that, when indexed by the PATRAN connectivity index return
11  the corresponding index in the MOAB connectivity. */
12 
13  static const int patran_tet8_order[] = { 0, 1, 2, 3, 7, 5, 6, 4 };
14  static const int patran_tet9_order[] = { 0, 1, 2, 3, 8, 7, 5, 6, 4 };
15  static const int patran_tet14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 11, 12, 10 };
16  static const int patran_tet15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 13, 11, 12, 10 };
17 
18  static const int patran_hex14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 11, 9, 8, 10 };
19  static const int patran_hex15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 14, 12, 13, 11, 9, 8, 10 };
20  static const int patran_hex26_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
21  13, 14, 15, 16, 17, 18, 19, 24, 25, 23, 21, 20, 22 };
22  static const int patran_hex27_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
23  14, 15, 16, 17, 18, 19, 26, 24, 25, 23, 21, 20, 22 };
24 
25  static const int patran_pri11_order[] = { 0, 1, 2, 3, 4, 5, 9, 10, 7, 8, 6 };
26  static const int patran_pri12_order[] = { 0, 1, 2, 3, 4, 5, 11, 9, 10, 7, 8, 6 };
27  static const int patran_pri20_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 19, 16, 17, 15 };
28  static const int patran_pri21_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
29  11, 12, 13, 14, 20, 18, 19, 16, 17, 15 };
30 
31  /* Define list of maps for an element type, indexed by the number
32  of nodes in the element. Entries are NULL where MBCN connectivity
33  is the same as PATRAN (or the number of nodes is invalid.) */
34 
35  static const int* const patran_null_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
36  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
37  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
38  static const int* const patran_tet_order[] = { 0,
39  0,
40  0,
41  0,
42  0,
43  0,
44  0,
45  0,
48  0,
49  0,
50  0,
51  0,
54  0,
55  0,
56  0,
57  0,
58  0,
59  0,
60  0,
61  0,
62  0,
63  0,
64  0,
65  0,
66  0,
67  0,
68  0,
69  0,
70  0,
71  0,
72  0,
73  0,
74  0,
75  0,
76  0,
77  0,
78  0,
79  0,
80  0,
81  0,
82  0,
83  0,
84  0,
85  0,
86  0,
87  0,
88  0,
89  0,
90  0,
91  0,
92  0,
93  0,
94  0 };
95  static const int* const patran_hex_order[] = { 0,
96  0,
97  0,
98  0,
99  0,
100  0,
101  0,
102  0,
103  0,
104  0,
105  0,
106  0,
107  0,
108  0,
111  0,
112  0,
113  0,
114  0,
115  0,
116  0,
117  0,
118  0,
119  0,
120  0,
123  0,
124  0,
125  0,
126  0,
127  0,
128  0,
129  0,
130  0,
131  0,
132  0,
133  0,
134  0,
135  0,
136  0,
137  0,
138  0,
139  0,
140  0,
141  0,
142  0,
143  0,
144  0,
145  0,
146  0,
147  0,
148  0,
149  0,
150  0,
151  0,
152  0,
153  0,
154  0,
155  0,
156  0,
157  0,
158  0,
159  0 };
160  static const int* const patran_pri_order[] = { 0,
161  0,
162  0,
163  0,
164  0,
165  0,
166  0,
167  0,
168  0,
169  0,
170  0,
173  0,
174  0,
175  0,
176  0,
177  0,
178  0,
179  0,
182  0,
183  0,
184  0,
185  0,
186  0,
187  0,
188  0,
189  0,
190  0,
191  0,
192  0,
193  0,
194  0,
195  0,
196  0,
197  0,
198  0,
199  0,
200  0,
201  0,
202  0,
203  0,
204  0,
205  0,
206  0,
207  0,
208  0,
209  0,
210  0,
211  0,
212  0,
213  0,
214  0,
215  0,
216  0,
217  0,
218  0,
219  0,
220  0,
221  0,
222  0,
223  0,
224  0 };
225 
226  /* Define matrix of maps indexed by element topology (EntityType) and
227  number of nodes. Entries are NULL where MBCN connectivity
228  is the same as PATRAN (or the number of nodes is invalid.) */
229 
230  static const int* const* const patran_elem_order_map[] = { patran_null_order, /* MBVERTEX */
231  patran_null_order, /* MBEDGE */
232  patran_null_order, /* MBTRI */
233  patran_null_order, /* MBQUAD */
234  patran_null_order, /* MBPOLYGON */
235  patran_tet_order, /* MBTET */
236  patran_null_order, /* MBPYRAMID */
237  patran_pri_order, /* MBPRISM */
238  patran_null_order, /* MBKNIFE */
239  patran_hex_order, /* MBHEX */
240  patran_null_order, /* MBPOLYHEDRON */
242 
243 #ifdef __cplusplus
244 } // namespace moab
245 
246 /* extern "C" */
247 } /* namespace moab */
248 #endif
249 
250 #endif