Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
00001 #ifndef PATRAN_ORDER_H 00002 #define PATRAN_ORDER_H 00003 00004 #ifdef __cplusplus 00005 extern "C" { 00006 namespace moab 00007 { 00008 #endif 00009 00010 /* Define maps that, when indexed by the PATRAN connectivity index return 00011 the corresponding index in the MOAB connectivity. */ 00012 00013 static const int patran_tet8_order[] = { 0, 1, 2, 3, 7, 5, 6, 4 }; 00014 static const int patran_tet9_order[] = { 0, 1, 2, 3, 8, 7, 5, 6, 4 }; 00015 static const int patran_tet14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 11, 12, 10 }; 00016 static const int patran_tet15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 13, 11, 12, 10 }; 00017 00018 static const int patran_hex14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 11, 9, 8, 10 }; 00019 static const int patran_hex15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 14, 12, 13, 11, 9, 8, 10 }; 00020 static const int patran_hex26_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 00021 13, 14, 15, 16, 17, 18, 19, 24, 25, 23, 21, 20, 22 }; 00022 static const int patran_hex27_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 00023 14, 15, 16, 17, 18, 19, 26, 24, 25, 23, 21, 20, 22 }; 00024 00025 static const int patran_pri11_order[] = { 0, 1, 2, 3, 4, 5, 9, 10, 7, 8, 6 }; 00026 static const int patran_pri12_order[] = { 0, 1, 2, 3, 4, 5, 11, 9, 10, 7, 8, 6 }; 00027 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 }; 00028 static const int patran_pri21_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 00029 11, 12, 13, 14, 20, 18, 19, 16, 17, 15 }; 00030 00031 /* Define list of maps for an element type, indexed by the number 00032 of nodes in the element. Entries are NULL where MBCN connectivity 00033 is the same as PATRAN (or the number of nodes is invalid.) */ 00034 00035 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, 00036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 00038 static const int* const patran_tet_order[] = { 0, 00039 0, 00040 0, 00041 0, 00042 0, 00043 0, 00044 0, 00045 0, 00046 patran_tet8_order, 00047 patran_tet9_order, 00048 0, 00049 0, 00050 0, 00051 0, 00052 patran_tet14_order, 00053 patran_tet15_order, 00054 0, 00055 0, 00056 0, 00057 0, 00058 0, 00059 0, 00060 0, 00061 0, 00062 0, 00063 0, 00064 0, 00065 0, 00066 0, 00067 0, 00068 0, 00069 0, 00070 0, 00071 0, 00072 0, 00073 0, 00074 0, 00075 0, 00076 0, 00077 0, 00078 0, 00079 0, 00080 0, 00081 0, 00082 0, 00083 0, 00084 0, 00085 0, 00086 0, 00087 0, 00088 0, 00089 0, 00090 0, 00091 0, 00092 0, 00093 0, 00094 0 }; 00095 static const int* const patran_hex_order[] = { 0, 00096 0, 00097 0, 00098 0, 00099 0, 00100 0, 00101 0, 00102 0, 00103 0, 00104 0, 00105 0, 00106 0, 00107 0, 00108 0, 00109 patran_hex14_order, 00110 patran_hex15_order, 00111 0, 00112 0, 00113 0, 00114 0, 00115 0, 00116 0, 00117 0, 00118 0, 00119 0, 00120 0, 00121 patran_hex26_order, 00122 patran_hex27_order, 00123 0, 00124 0, 00125 0, 00126 0, 00127 0, 00128 0, 00129 0, 00130 0, 00131 0, 00132 0, 00133 0, 00134 0, 00135 0, 00136 0, 00137 0, 00138 0, 00139 0, 00140 0, 00141 0, 00142 0, 00143 0, 00144 0, 00145 0, 00146 0, 00147 0, 00148 0, 00149 0, 00150 0, 00151 0, 00152 0, 00153 0, 00154 0, 00155 0, 00156 0, 00157 0, 00158 0, 00159 0 }; 00160 static const int* const patran_pri_order[] = { 0, 00161 0, 00162 0, 00163 0, 00164 0, 00165 0, 00166 0, 00167 0, 00168 0, 00169 0, 00170 0, 00171 patran_pri11_order, 00172 patran_pri12_order, 00173 0, 00174 0, 00175 0, 00176 0, 00177 0, 00178 0, 00179 0, 00180 patran_pri20_order, 00181 patran_pri21_order, 00182 0, 00183 0, 00184 0, 00185 0, 00186 0, 00187 0, 00188 0, 00189 0, 00190 0, 00191 0, 00192 0, 00193 0, 00194 0, 00195 0, 00196 0, 00197 0, 00198 0, 00199 0, 00200 0, 00201 0, 00202 0, 00203 0, 00204 0, 00205 0, 00206 0, 00207 0, 00208 0, 00209 0, 00210 0, 00211 0, 00212 0, 00213 0, 00214 0, 00215 0, 00216 0, 00217 0, 00218 0, 00219 0, 00220 0, 00221 0, 00222 0, 00223 0, 00224 0 }; 00225 00226 /* Define matrix of maps indexed by element topology (EntityType) and 00227 number of nodes. Entries are NULL where MBCN connectivity 00228 is the same as PATRAN (or the number of nodes is invalid.) */ 00229 00230 static const int* const* const patran_elem_order_map[] = { patran_null_order, /* MBVERTEX */ 00231 patran_null_order, /* MBEDGE */ 00232 patran_null_order, /* MBTRI */ 00233 patran_null_order, /* MBQUAD */ 00234 patran_null_order, /* MBPOLYGON */ 00235 patran_tet_order, /* MBTET */ 00236 patran_null_order, /* MBPYRAMID */ 00237 patran_pri_order, /* MBPRISM */ 00238 patran_null_order, /* MBKNIFE */ 00239 patran_hex_order, /* MBHEX */ 00240 patran_null_order, /* MBPOLYHEDRON */ 00241 patran_null_order }; 00242 00243 #ifdef __cplusplus 00244 } // namespace moab 00245 00246 /* extern "C" */ 00247 } /* namespace moab */ 00248 #endif 00249 00250 #endif