moab
MBCNArrays.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines