moab
|
00001 00016 #ifndef MBCN_ARRAYS_HPP 00017 #define MBCN_ARRAYS_HPP 00018 00019 00020 namespace moab { 00021 00022 const CN::ConnMap CN::mConnectivityMap[MBMAXTYPE][3] = 00023 { 00024 // vertex-edge 00025 {{ 0, 0 , {0}, 00026 {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00027 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }, 00028 // vertex-face 00029 { 0, 0 , {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00030 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }, 00031 // vertex-region 00032 { 0, 0 , {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00033 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }}, 00034 00035 // edge-edge 00036 {{ 1, 1, {2}, {MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00037 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0,1}} }, 00038 // edge-face 00039 { 1, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00040 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }, 00041 // edge-region 00042 { 1, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00043 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }}, 00044 00045 // tri-edge 00046 {{ 2, 3, {2,2,2}, {MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00047 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, { {0,1}, {1,2}, {2,0} } }, 00048 // tri-face 00049 { 2, 1, {3}, {MBTRI, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00050 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0,1,2}} }, 00051 // tri-region 00052 { 2, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00053 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }}, 00054 00055 // quad-edge 00056 {{ 2, 4, {2,2,2,2}, {MBEDGE,MBEDGE,MBEDGE,MBEDGE, MBMAXTYPE, MBMAXTYPE, 00057 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, { {0,1}, {1,2}, {2,3}, {3,0} } }, 00058 // quad-face 00059 { 2, 1, {4}, {MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00060 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0,1,2,3}} }, 00061 // quad-region 00062 { 2, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00063 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }}, 00064 00065 // polygon-edge 00066 {{ 2, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00067 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }, 00068 // polygon-face 00069 { 2, 1, {0}, {MBPOLYGON, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00070 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }, 00071 // polygon-region 00072 { 2, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00073 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }}, 00074 00075 // tet-edge 00076 {{ 3, 6, {2,2,2,2,2,2}, {MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE, 00077 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0,1}, {1,2}, {2,0}, {0,3}, {1,3}, {2,3}} }, 00078 // tet-face 00079 { 3, 4, {3,3,3,3}, {MBTRI,MBTRI,MBTRI,MBTRI, MBMAXTYPE, MBMAXTYPE, 00080 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, { {0,1,3}, {1,2,3}, {0,3,2}, {0,2,1} } }, 00081 // tet-tet 00082 { 3, 1, {4}, {MBTET, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00083 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0,1,2,3}} }}, 00084 00085 // pyramid-edge 00086 {{ 3, 8, {2,2,2,2,2,2,2,2}, {MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE, 00087 MBEDGE,MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00088 {{0,1}, {1,2}, {2,3}, {3,0}, {0,4}, {1,4}, {2,4}, {3,4} } }, 00089 // pyramid-face 00090 { 3, 5, {4,3,3,3,3}, {MBQUAD,MBTRI,MBTRI,MBTRI,MBTRI, MBMAXTYPE, 00091 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00092 {{0,3,2,1}, {0,1,4}, {1,2,4}, {2,3,4}, {3,0,4} } }, 00093 // pyramid-pyramid 00094 { 3, 1, {5}, {MBPYRAMID, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00095 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0,1,2,3,4}} }}, 00096 00097 // wedge-edge 00098 {{ 3, 9, {2,2,2,2,2,2,2,2,2}, {MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE, 00099 MBEDGE,MBEDGE,MBEDGE,MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00100 { {0,1},{1,2},{2,0},{0,3},{1,4},{2,5},{3,4},{4,5},{5,3} } }, 00101 // wedge-face 00102 { 3, 5 , {4,4,4,3,3}, {MBQUAD,MBQUAD,MBQUAD,MBTRI,MBTRI, MBMAXTYPE, 00103 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00104 { {0,1,4,3}, {1,2,5,4}, {0,3,5,2}, {0,2,1}, {3,4,5} } }, 00105 // wedge-wedge 00106 { 3, 1, {6}, {MBPRISM, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00107 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00108 {{0,1,2,3,4,5}} }}, 00109 00110 // knife-edge 00111 {{ 3, 10, {2,2,2,2,2,2,2,2,2,2}, {MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE, 00112 MBEDGE,MBEDGE,MBEDGE,MBEDGE, MBMAXTYPE, MBMAXTYPE}, 00113 { {0,1},{1,2},{2,3},{3,0},{0,4},{1,5},{2,6},{3,5},{4,5},{5,6} } }, 00114 // knife-face 00115 { 3, 5, {4,4,4,4,4}, {MBQUAD,MBQUAD,MBQUAD,MBQUAD,MBQUAD, MBMAXTYPE, 00116 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00117 { {0,1,5,4}, {1,2,6,5}, {2,3,5,6}, {3,0,4,5}, {0,3,2,1} } }, 00118 // knife-knife 00119 { 3, 1, {7}, {MBKNIFE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00120 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00121 {{0,1,2,3,4,5,6}} }}, 00122 00123 // hex-edge 00124 {{ 3, 12, {2,2,2,2,2,2,2,2,2,2,2,2}, {MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE, 00125 MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE,MBEDGE}, 00126 {{0,1},{1,2},{2,3},{3,0},{0,4},{1,5},{2,6},{3,7},{4,5},{5,6},{6,7},{7,4}}}, 00127 // hex-face 00128 { 3, 6, {4,4,4,4,4,4}, {MBQUAD,MBQUAD,MBQUAD,MBQUAD,MBQUAD,MBQUAD, 00129 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00130 { {0,1,5,4}, {1,2,6,5}, {2,3,7,6}, {3,0,4,7}, {0,3,2,1}, {4,5,6,7} } }, 00131 // hex-hex 00132 { 3, 1, {8}, {MBHEX, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00133 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00134 {{0,1,2,3,4,5,6,7}} }}, 00135 00136 // polyhedron-edge 00137 {{ 3, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00138 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00139 {{0}}}, 00140 // polyhedron-face 00141 { 3, 0, {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00142 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00143 { {0}} }, 00144 // polyhedron-polyhedron 00145 { 3, 1, {0}, {MBPOLYHEDRON, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00146 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, 00147 {{0}} }}, 00148 00149 // meshset-edge 00150 {{ 4, 0 , {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00151 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }, // not handled yet? 00152 // meshset-face 00153 { 4, 0 , {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00154 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }, // not handled yet? 00155 // meshset-region 00156 { 4, 0 , {0}, {MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 00157 MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE}, {{0}} }} // not handled yet? 00158 00159 // maxtype 00160 }; 00161 00162 const CN::UpConnMap CN::mUpConnMap[MBMAXTYPE][4][4] = 00163 { 00164 { // type MBVERTEX 00165 {{{1}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 0 00166 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 1 00167 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 2 00168 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 3 00169 }, 00170 00171 { // type MBEDGE 00172 { // source dim 0 00173 { // target dim 0 00174 {1, 1}, // 1 connected vertices for all vertices 00175 {{1}, {0}} }, // end target dimension 0 00176 { // target dimension 1 00177 {1, 1}, // 1 connected edges for all vertices 00178 {{0}, {0}} }, // end target dimension 1 00179 { // target dimension 2 00180 {0}, // 0 connected faces for all vertices 00181 {{0}} }, // end target dimension 2 00182 { // target dimension 3 00183 {0}, // 0 connected elements for all vertices 00184 {{0}} } // end target dimension 3 00185 }, // end source dim 0 00186 00187 { // source dim 1 00188 { // target dim 0 00189 {2}, // 2 vertices for all edges 00190 {{0,1}} }, // end target dim 0 00191 { // target dim 1 00192 {0}, // 0 edges for all edges 00193 {{0}} }, // end target dim 1 00194 { // target dim 2 00195 {0}, // 2 faces for all edges 00196 {{0}} }, // end target dim 2 00197 { // target dimension 3 00198 {0}, // 0 connected elements for all vertices 00199 {{0}} } // end target dimension 3 00200 }, // end source dim 1 00201 00202 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 2 00203 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 3 00204 }, // end type MBEDGE 00205 00206 { // type MBTRI 00207 { // source dim 0 00208 { // target dim 0 00209 {2, 2, 2}, // 2 connected vertices for all vertices 00210 {{1, 2}, {0, 2}, {0, 1}} }, // end target dimension 0 00211 { // target dimension 1 00212 {2, 2, 2}, // 2 connected edges for all vertices 00213 {{0, 2}, {0, 1}, {1, 2}} }, // end target dimension 1 00214 { // target dimension 2 00215 {1, 1, 1}, // 1 connected faces for all vertices 00216 {{0}, {0}, {0}} }, // end target dimension 2 00217 { // target dimension 3 00218 {0}, // 0 connected elements for all vertices 00219 {{0}} } // end target dimension 3 00220 }, // end source dim 0 00221 00222 { // source dim 1 00223 { // target dim 0 00224 {2, 2, 2}, // 2 vertices for all edges 00225 {{0,1},{1,2},{0,2}} }, // end target dim 0 00226 { // target dim 1 00227 {2, 2, 2}, // 2 edges for all edges 00228 {{1, 2}, {0, 2}, {0, 1}} }, // end target dim 1 00229 { // target dim 2 00230 {1, 1, 1}, // 1 faces for all edges 00231 {{0}, {0}, {0}} }, // end target dim 2 00232 { // target dimension 3 00233 {0}, // 0 connected elements for all vertices 00234 {{0}} } // end target dimension 3 00235 }, // end source dim 1 00236 00237 { // source dim 2 00238 { // target dim 0 00239 {3}, // 3 vertices for all faces 00240 {{0, 1, 2}} }, // end target dim 0 00241 { // target dim 1 00242 {3}, // 3 edges for all faces 00243 {{0, 1, 2}} }, // end target dim 1 00244 { // target dim 2 00245 {0}, // 0 faces for all faces 00246 {{0}} }, // end target dim 2 00247 { // target dimension 3 00248 {0}, // 0 connected elements for all vertices 00249 {{0}} } // end target dimension 3 00250 }, // end source dim 2 00251 00252 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }} // source dim 3 00253 }, // end type MBTRI 00254 00255 { // type MBQUAD 00256 { // source dim 0 00257 { // target dim 0 00258 {2, 2, 2, 2}, // 2 connected vertices for all vertices 00259 {{1, 3}, {0, 2}, {2, 3}, {0, 2}} }, // end target dimension 0 00260 { // target dimension 1 00261 {2, 2, 2, 2}, // 2 connected edges for all vertices 00262 {{0, 3}, {0, 1}, {1, 2}, {2, 3}} }, // end target dimension 1 00263 { // target dimension 2 00264 {1, 1, 1, 1}, // 1 connected faces for all vertices 00265 {{0}, {0}, {0}, {0}} }, // end target dimension 2 00266 { // target dimension 3 00267 {0}, // 0 connected elements for all vertices 00268 {{0}} } // end target dimension 3 00269 }, // end source dim 0 00270 00271 { // source dim 1 00272 { // target dim 0 00273 {2, 2, 2, 2}, // 2 vertices for all edges 00274 {{0,1},{1,2},{2,3},{0,3}} }, // end target dim 0 00275 { // target dim 1 00276 {2, 2, 2, 2}, // 2 edges for all edges 00277 {{1, 3}, {0, 2}, {1, 3}, {0, 2}} }, // end target dim 1 00278 { // target dim 2 00279 {1, 1, 1, 1}, // 1 faces for all edges 00280 {{0}, {0}, {0}, {0}} }, // end target dim 2 00281 { // target dimension 3 00282 {0}, // 0 connected elements for all vertices 00283 {{0}} } // end target dimension 3 00284 }, // end source dim 1 00285 00286 { // source dim 2 00287 { // target dim 0 00288 {4}, // 4 vertices for all faces 00289 {{0, 1, 2, 3}} }, // end target dim 0 00290 { // target dim 1 00291 {4}, // 4 edges for all faces 00292 {{0, 1, 2, 3}} }, // end target dim 1 00293 { // target dim 2 00294 {0}, // 4 faces for all faces 00295 {{0}} }, // end target dim 2 00296 { // target dimension 3 00297 {0}, // 0 connected elements for all vertices 00298 {{0}} } // end target dimension 3 00299 }, // end source dim 2 00300 00301 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }} // source dim 3 00302 }, // end type MBQUAD 00303 00304 { // type MBPOLYGON 00305 { // source dim 0 00306 { // target dim 0 00307 {0}, 00308 {{0}} }, 00309 { // target dimension 1 00310 {0}, 00311 {{0}} }, 00312 { // target dimension 2 00313 {0}, 00314 {{0}} }, 00315 { // target dimension 3 00316 {0}, 00317 {{0}} } 00318 }, // end source dim 0 00319 00320 { // source dim 1 00321 { // target dim 0 00322 {0}, 00323 {{0}} }, 00324 { // target dimension 1 00325 {0}, 00326 {{0}} }, 00327 { // target dimension 2 00328 {0}, 00329 {{0}} }, 00330 { // target dimension 3 00331 {0}, 00332 {{0}} } 00333 }, // end source dim 1 00334 00335 { // source dim 2 00336 { // target dim 0 00337 {0}, 00338 {{0}} }, 00339 { // target dimension 1 00340 {0}, 00341 {{0}} }, 00342 { // target dimension 2 00343 {0}, 00344 {{0}} }, 00345 { // target dimension 3 00346 {0}, 00347 {{0}} } 00348 }, // end source dim 2 00349 00350 { // source dim 3 00351 { // target dim 0 00352 {0}, 00353 {{0}} }, 00354 { // target dimension 1 00355 {0}, 00356 {{0}} }, 00357 { // target dimension 2 00358 {0}, 00359 {{0}} }, 00360 { // target dimension 3 00361 {0}, 00362 {{0}} } 00363 } // end source dim 3 00364 }, // end type MBPOLYGON 00365 00366 { // type MBTET 00367 { // source dim 0 00368 { // target dim 0 00369 {3, 3, 3, 3}, // 3 connected vertices for all vertices 00370 {{1, 2, 3}, {0, 2, 3}, {0, 1, 3}, {0, 1, 2}} }, // end target dimension 0 00371 { // target dimension 1 00372 {3, 3, 3, 3}, // 3 connected edges for all vertices 00373 {{0, 2, 3}, {0, 1, 4}, {1, 2, 5}, {3, 4, 5}} }, // end target dimension 1 00374 { // target dimension 2 00375 {3, 3, 3, 3}, // 3 connected faces for all vertices 00376 {{0, 2, 3}, {0, 1, 3}, {1, 2, 3}, {0, 1, 2}} }, // end target dimension 2 00377 { // target dimension 3 00378 {1, 1, 1, 1}, // 0 connected elements for all vertices 00379 {{0}, {0}, {0}, {0}} } // end target dimension 3 00380 }, // end source dim 0 00381 00382 { // source dim 1 00383 { // target dim 0 00384 {2, 2, 2, 2, 2, 2}, // 2 vertices for all edges 00385 {{0,1},{1,2},{0,2},{0,3},{1,3},{2,3}} }, // end target dim 0 00386 { // target dim 1 00387 {4, 4, 4, 4, 4, 4}, // 4 edges for all edges 00388 {{1,2,3,4}, {0,2,4,5}, {0,1,3,5}, {0,2,4,5}, {0,1,3,5}, {1,2,3,4}} }, // end target dim 1 00389 { // target dim 2 00390 {2, 2, 2, 2, 2, 2}, // 2 faces for all edges 00391 {{0,3}, {1,3}, {2,3}, {0,2}, {0,1}, {1,2}} }, // end target dim 2 00392 { // target dimension 3 00393 {1, 1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00394 {{0}, {0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00395 }, // end source dim 1 00396 00397 { // source dim 2 00398 { // target dim 0 00399 {3, 3, 3, 3}, // 3 vertices for all faces 00400 {{0,1,3}, {1,2,3}, {0,3,2}, {0,2,1}} }, // end target dim 0 00401 { // target dim 1 00402 {3, 3, 3, 3}, // 3 edges for all faces 00403 {{0,4,3}, {1,5,4}, {3,5,2}, {2,1,0}} }, // end target dim 1 00404 { // target dim 2 00405 {3, 3, 3, 3}, // 3 faces for all faces 00406 {{3,1,2}, {3,2,0}, {0,1,3}, {2,1,0}} }, // end target dim 2 00407 { // target dimension 3 00408 {1, 1, 1, 1}, // 0 connected elements for all vertices 00409 {{0}, {0}, {0}, {0}} } // end target dimension 3 00410 }, // end source dim 2 00411 00412 { // source dim 3 00413 { // target dim 0 00414 {4}, // 4 vertices for all elements 00415 {{0,1,2,3}} }, // end target dim 0 00416 { // target dim 1 00417 {6}, // 6 edges for all elements 00418 {{0,1,2,3,4,5}} }, // end target dim 1 00419 { // target dim 2 00420 {4}, // 4 faces for all elements 00421 {{0,1,2,3}} }, // end target dim 2 00422 { // target dimension 3 00423 {0}, // 0 connected elements for all vertices 00424 {{0}} } // end target dimension 3 00425 } // end source dim 3 00426 }, // end type MBTET 00427 00428 { // type MBPYRAMID 00429 { // source dim 0 00430 { // target dim 0 00431 {3, 3, 3, 3, 4}, // 3 connected vertices for most vertices 00432 {{1,3,4}, {0,2,4}, {1,3,4}, {0,2,4}, {0,1,2,3}} }, // end target dimension 0 00433 { // target dimension 1 00434 {3, 3, 3, 3, 4}, // 3 connected edges for most vertices 00435 {{0,3,4}, {0,1,5}, {1,2,6}, {2,3,7}, {4,5,6,7}} }, // end target dimension 1 00436 { // target dimension 2 00437 {3, 3, 3, 3, 4}, // 3 connected faces for most vertices 00438 {{0,3,4}, {0,1,4}, {1,2,4}, {2,3,4}, {0,1,2,3}} }, // end target dimension 2 00439 { // target dimension 3 00440 {1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00441 {{0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00442 }, // end source dim 0 00443 00444 { // source dim 1 00445 { // target dim 0 00446 {2, 2, 2, 2, 2, 2, 2, 2}, // 2 vertices for all edges 00447 {{0,1},{1,2},{2,3},{0,3},{0,4},{1,4},{2,4},{3,4}} }, // end target dim 0 00448 { // target dim 1 00449 {4, 4, 4, 4, 5, 5, 5, 5}, // 4 edges for some edges, 5 for others 00450 {{1,3,4,5}, {0,2,5,6}, {1,3,6,7}, {0,2,4,7}, {0,3,5,6,7}, {0,1,4,6,7}, {1,2,4,5,7}, {2,3,4,5,6}} }, // end target dim 1 00451 { // target dim 2 00452 {2, 2, 2, 2, 2, 2, 2, 2}, // 2 faces for all edges 00453 {{0,4}, {1,4}, {2,4}, {3,4}, {0,3}, {0,1}, {1,2}, {2,3}} }, // end target dim 2 00454 { // target dimension 3 00455 {1, 1, 1, 1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00456 {{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00457 }, // end source dim 1 00458 00459 { // source dim 2 00460 { // target dim 0 00461 {3, 3, 3, 3, 4}, // 3 vertices for most edges 00462 {{0,1,4}, {1,2,4}, {2,3,4}, {0,3,4}, {0,1,2,3}} }, // end target dim 0 00463 { // target dim 1 00464 {3, 3, 3, 3, 4}, // 3 edges for most faces 00465 {{0,5,4}, {1,6,5}, {6,2,7}, {3,4,7}, {0,3,2,1}} }, // end target dim 1 00466 { // target dim 2 00467 {3, 3, 3, 3, 4}, // 4 faces for most faces 00468 {{4,1,3}, {4,2,0}, {4,3,1}, {4,0,2}, {0,1,2,3}} }, // end target dim 2 00469 { // target dimension 3 00470 {1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00471 {{0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00472 }, // end source dim 2 00473 00474 { // source dim 3 00475 { // target dim 0 00476 {5}, // 5 vertices for all elements 00477 {{0,1,2,3,4}} }, // end target dim 0 00478 { // target dim 1 00479 {8}, // 8 edges for all elements 00480 {{0,1,2,3,4,5,6,7}} }, // end target dim 1 00481 { // target dim 2 00482 {5}, // 5 faces for all elements 00483 {{0,1,2,3,4}} }, // end target dim 2 00484 { // target dimension 3 00485 {0}, // 0 connected elements for all vertices 00486 {{0}} } // end target dimension 3 00487 } // end source dim 3 00488 }, // end type MBPYRAMID 00489 00490 { // type MBPRISM 00491 { // source dim 0 00492 { // target dim 0 00493 {3, 3, 3, 3, 3, 3}, // 3 connected vertices for all vertices 00494 {{1,2,3}, {0,2,4}, {0,1,5}, {0,4,5}, {1,3,5}, {2,3,4}} }, // end target dimension 0 00495 { // target dimension 1 00496 {3, 3, 3, 3, 3, 3}, // 3 connected edges for all vertices 00497 {{0,2,3}, {0,1,4}, {1,2,5}, {3,6,8}, {4,6,7}, {5,7,8}} }, // end target dimension 1 00498 { // target dimension 2 00499 {3, 3, 3, 3, 3, 3}, // 3 connected faces for all vertices 00500 {{0,2,3}, {0,1,3}, {1,2,3}, {0,2,4}, {0,1,4}, {1,2,4}} }, // end target dimension 2 00501 { // target dimension 3 00502 {1, 1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00503 {{0}, {0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00504 }, // end source dim 0 00505 00506 { // source dim 1 00507 { // target dim 0 00508 {2, 2, 2, 2, 2, 2, 2, 2, 2}, // 2 vertices for all edges 00509 {{0,1},{1,2},{0,2},{0,3},{1,4},{2,5},{3,4},{4,5},{3,5}} }, // end target dim 0 00510 { // target dim 1 00511 {4, 4, 4, 4, 4, 4, 4, 4, 4}, // 4 edges for all edges 00512 {{1,2,3,4}, {0,2,4,5}, {0,1,3,5}, {0,2,6,8}, {0,1,6,7}, 00513 {1,2,7,8}, {3,4,7,8}, {4,5,7,8}, {3,5,6,7}} }, // end target dim 1 00514 { // target dim 2 00515 {2, 2, 2, 2, 2, 2, 2, 2, 2}, // 2 faces for all edges 00516 {{0,3}, {1,3}, {2,3}, {0,2}, {0,1}, {1,2}, {0,4}, {1,4}, {2,4}} }, // end target dim 2 00517 { // target dimension 3 00518 {1, 1, 1, 1, 1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00519 {{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00520 }, // end source dim 1 00521 00522 { // source dim 2 00523 { // target dim 0 00524 {4, 4, 4, 3, 3}, // 4 vertices for some faces, 3 for others 00525 {{0,1,3,4}, {1,2,4,5}, {0,2,3,5}, {0,1,2}, {3,4,5}} }, // end target dim 0 00526 { // target dim 1 00527 {4, 4, 4, 3, 3}, // 4 edges for some faces, 3 for others 00528 {{0,4,6,3}, {1,5,7,4}, {2,3,8,5}, {0,2,1}, {6,7,8}} }, // end target dim 1 00529 { // target dim 2 00530 {4, 4, 4, 3, 3}, // 4 faces for some faces, 3 for others 00531 {{3,1,4,2}, {3,2,4,0}, {3,0,4,1}, {0,2,1}, {0,1,2}} }, // end target dim 2 00532 { // target dimension 3 00533 {1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00534 {{0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00535 }, // end source dim 2 00536 00537 { // source dim 3 00538 { // target dim 0 00539 {6}, // 6 vertices for all elements 00540 {{0,1,2,3,4,5}} }, // end target dim 0 00541 { // target dim 1 00542 {9}, // 9 edges for all elements 00543 {{0,1,2,3,4,5,6,7,8}} }, // end target dim 1 00544 { // target dim 2 00545 {5}, // 5 faces for all elements 00546 {{0,1,2,3,4}} }, // end target dim 2 00547 { // target dimension 3 00548 {0}, // 0 connected elements for all vertices 00549 {{0}} } // end target dimension 3 00550 } // end source dim 3 00551 }, // end type MBPRISM 00552 00553 { // type MBKNIFE 00554 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 0 00555 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 1 00556 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 2 00557 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }} // source dim 3 00558 }, // end type MBKNIFE 00559 00560 { // type MBHEX 00561 { // source dim 0 00562 { // target dim 0 00563 {3, 3, 3, 3, 3, 3, 3, 3}, // 3 connected vertices for all vertices 00564 {{1,3,4}, {0,2,5}, {1,3,6}, {0,2,7}, {0,5,7}, {1,4,6}, {2,5,7}, {3,4,6}} }, // end target dimension 0 00565 { // target dimension 1 00566 {3, 3, 3, 3, 3, 3, 3, 3}, // 3 connected edges for all vertices 00567 {{0, 3, 4}, {0, 1, 5}, {1, 2, 6}, {2, 3, 7}, 00568 {4, 8, 11}, {5, 8, 9}, {6, 9, 10}, {7, 10, 11}} }, // end target dimension 1 00569 { // target dimension 2 00570 {3, 3, 3, 3, 3, 3, 3, 3}, // 3 connected faces for all vertices 00571 {{0, 3, 4}, {0, 1, 4}, {1, 2, 4}, {2, 3, 4}, 00572 {0, 3, 5}, {0, 1, 5}, {1, 2, 5}, {2, 3, 5}} }, // end target dimension 2 00573 { // target dimension 3 00574 {1, 1, 1, 1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00575 {{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00576 }, // end source dim 0 00577 00578 { // source dim 1 00579 { // target dim 0 00580 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, // 2 vertices for all edges 00581 {{0,1},{1,2},{2,3},{0,3},{0,4},{1,5},{2,6},{3,7},{4,5},{5,6},{6,7},{4,7}} }, // end target dim 0 00582 { // target dim 1 00583 {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, // 4 edges for all edges 00584 {{1,3,4,5}, {0,2,5,6}, {1,3,6,7}, {0,2,4,7}, {0,3,8,11}, {0,1,8,9}, 00585 {1,2,9,10}, {2,3,10,11}, {4,5,9,11}, {5,6,8,10}, {6,7,9,11}, {4,7,8,10}} }, // end target dim 1 00586 { // target dim 2 00587 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, // 2 faces for all edges 00588 {{0,4}, {1,4}, {2,4}, {3,4}, {0,3}, {0,1}, 00589 {1,2}, {2,3}, {0,5}, {1,5}, {2,5}, {3,5}} }, // end target dim 2 00590 { // target dimension 3 00591 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00592 {{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00593 }, // end source dim 1 00594 00595 { // source dim 2 00596 { // target dim 0 00597 {4, 4, 4, 4, 4, 4}, // 4 vertices for all faces 00598 {{0,1,4,5}, {1,2,5,6}, {2,3,6,7}, {0,3,4,7}, {0,1,2,3}, {4,5,6,7}} }, // end target dim 0 00599 { // target dim 1 00600 {4, 4, 4, 4, 4, 4}, // 4 edges for all faces 00601 {{0,5,8,4}, {1,6,9,5}, {2,7,10,6}, {3,4,11,7}, {0,3,2,1}, {8,9,10,11}} }, // end target dim 1 00602 { // target dim 2 00603 {4, 4, 4, 4, 4, 4}, // 4 faces for all faces 00604 {{4,1,5,3}, {4,2,5,0}, {4,3,5,1}, {4,0,5,2}, {0,3,2,1}, {0,1,2,3}} }, // end target dim 2 00605 { // target dimension 3 00606 {1, 1, 1, 1, 1, 1}, // 0 connected elements for all vertices 00607 {{0}, {0}, {0}, {0}, {0}, {0}} } // end target dimension 3 00608 }, // end source dim 2 00609 00610 { // source dim 3 00611 { // target dim 0 00612 {8}, // 8 vertices for all elements 00613 {{0,1,2,3,4,5,6,7}} }, // end target dim 0 00614 { // target dim 1 00615 {12}, // 12 edges for all elements 00616 {{0,1,2,3,4,5,6,7,8,9,10,11}} }, // end target dim 1 00617 { // target dim 2 00618 {6}, // 6 faces for all elements 00619 {{0,1,2,3,4,5}} }, // end target dim 2 00620 { // target dimension 3 00621 {0}, // 0 connected elements for all vertices 00622 {{0}} } // end target dimension 3 00623 } // end source dim 3 00624 }, // end type MBHEX 00625 00626 { // type MBPOLYHEDRON 00627 { // source dim 0 00628 { // target dim 0 00629 {0}, 00630 {{0}} }, 00631 { // target dimension 1 00632 {0}, 00633 {{0}} }, 00634 { // target dimension 2 00635 {0}, 00636 {{0}} }, 00637 { // target dimension 3 00638 {0}, 00639 {{0}} } 00640 }, // end source dim 0 00641 00642 { // source dim 1 00643 { // target dim 0 00644 {0}, 00645 {{0}} }, 00646 { // target dimension 1 00647 {0}, 00648 {{0}} }, 00649 { // target dimension 2 00650 {0}, 00651 {{0}} }, 00652 { // target dimension 3 00653 {0}, 00654 {{0}} } 00655 }, // end source dim 1 00656 00657 { // source dim 2 00658 { // target dim 0 00659 {0}, 00660 {{0}} }, 00661 { // target dimension 1 00662 {0}, 00663 {{0}} }, 00664 { // target dimension 2 00665 {0}, 00666 {{0}} }, 00667 { // target dimension 3 00668 {0}, 00669 {{0}} } 00670 }, // end source dim 2 00671 00672 { // source dim 3 00673 { // target dim 0 00674 {0}, 00675 {{0}} }, 00676 { // target dimension 1 00677 {0}, 00678 {{0}} }, 00679 { // target dimension 2 00680 {0}, 00681 {{0}} }, 00682 { // target dimension 3 00683 {0}, 00684 {{0}} } 00685 } // end source dim 3 00686 }, // end type MBPOLYHEDRON 00687 00688 { // type MBENTITYSET 00689 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 0 00690 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 1 00691 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }}, // source dim 2 00692 {{{0}, {{0}} }, {{0}, {{0}} }, {{0}, {{0}} }} // source dim 3 00693 } // end type MBENTITYSET 00694 }; 00695 const unsigned char E = CN::MID_EDGE_BIT; 00696 const unsigned char F = CN::MID_FACE_BIT; 00697 const unsigned char R = CN::MID_REGION_BIT; 00698 const unsigned char CN::midNodesPerType[MBMAXTYPE][MAX_NODES_PER_ELEMENT+1] = { 00699 // vertex 00700 { 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 }, 00701 // edge 00702 { 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 }, 00703 // tri 00704 { 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 }, 00705 // quad 00706 { 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 }, 00707 // polygon 00708 { 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 }, 00709 // tet 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13, 14, 15 00710 { 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 }, 00711 // pyramid 3, 4, 5, 6, 7, 8, 9,10, 11, 12,13, 14, 15,16,17, 18, 19 00712 { 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 }, 00713 // prism 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12, 13,14,15, 16, 17,18,19, 20, 21 00714 { 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 }, 00715 // knife 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12,13, 14,15,16,17, 18, 19,20,21, 22, 23 00716 { 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 }, 00717 // 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 00718 { 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 }, 00719 // polyhedron 00720 { 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 }, 00721 // set 00722 { 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 }, 00723 }; 00724 00725 00726 } // namespace moab 00727 00728 #endif