Loading [MathJax]/extensions/tex2jax.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MBCNArrays.hpp
Go to the documentation of this file.
1 /** 2  * MOAB, a Mesh-Oriented datABase, is a software component for creating, 3  * storing and accessing finite element mesh data. 4  * 5  * Copyright 2004 Sandia Corporation. Under the terms of Contract 6  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government 7  * retains certain rights in this software. 8  * 9  * This library is free software; you can redistribute it and/or 10  * modify it under the terms of the GNU Lesser General Public 11  * License as published by the Free Software Foundation; either 12  * version 2.1 of the License, or (at your option) any later version. 13  * 14  */ 15  16 #ifndef MBCN_ARRAYS_HPP 17 #define MBCN_ARRAYS_HPP 18  19 namespace moab 20 { 21  22 const CN::ConnMap CN::mConnectivityMap[MBMAXTYPE][3] = { 23  // vertex-edge 24  { { 0, 25  0, 26  { 0 }, 27  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 28  MBMAXTYPE, MBMAXTYPE }, 29  { { 0 } } }, 30  // vertex-face 31  { 0, 32  0, 33  { 0 }, 34  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 35  MBMAXTYPE, MBMAXTYPE }, 36  { { 0 } } }, 37  // vertex-region 38  { 0, 39  0, 40  { 0 }, 41  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 42  MBMAXTYPE, MBMAXTYPE }, 43  { { 0 } } } }, 44  45  // edge-edge 46  { { 1, 47  1, 48  { 2 }, 49  { MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 50  MBMAXTYPE, MBMAXTYPE }, 51  { { 0, 1 } } }, 52  // edge-face 53  { 1, 54  0, 55  { 0 }, 56  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 57  MBMAXTYPE, MBMAXTYPE }, 58  { { 0 } } }, 59  // edge-region 60  { 1, 61  0, 62  { 0 }, 63  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 64  MBMAXTYPE, MBMAXTYPE }, 65  { { 0 } } } }, 66  67  // tri-edge 68  { { 2, 69  3, 70  { 2, 2, 2 }, 71  { MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 72  MBMAXTYPE, MBMAXTYPE }, 73  { { 0, 1 }, { 1, 2 }, { 2, 0 } } }, 74  // tri-face 75  { 2, 76  1, 77  { 3 }, 78  { MBTRI, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 79  MBMAXTYPE, MBMAXTYPE }, 80  { { 0, 1, 2 } } }, 81  // tri-region 82  { 2, 83  0, 84  { 0 }, 85  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 86  MBMAXTYPE, MBMAXTYPE }, 87  { { 0 } } } }, 88  89  // quad-edge 90  { { 2, 91  4, 92  { 2, 2, 2, 2 }, 93  { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 94  MBMAXTYPE }, 95  { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 } } }, 96  // quad-face 97  { 2, 98  1, 99  { 4 }, 100  { MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 101  MBMAXTYPE, MBMAXTYPE }, 102  { { 0, 1, 2, 3 } } }, 103  // quad-region 104  { 2, 105  0, 106  { 0 }, 107  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 108  MBMAXTYPE, MBMAXTYPE }, 109  { { 0 } } } }, 110  111  // polygon-edge 112  { { 2, 113  0, 114  { 0 }, 115  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 116  MBMAXTYPE }, 117  { { 0 } } }, 118  // polygon-face 119  { 2, 120  1, 121  { 0 }, 122  { MBPOLYGON, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 123  MBMAXTYPE, MBMAXTYPE }, 124  { { 0 } } }, 125  // polygon-region 126  { 2, 127  0, 128  { 0 }, 129  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 130  MBMAXTYPE, MBMAXTYPE }, 131  { { 0 } } } }, 132  133  // tet-edge 134  { { 3, 135  6, 136  { 2, 2, 2, 2, 2, 2 }, 137  { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 138  MBMAXTYPE }, 139  { { 0, 1 }, { 1, 2 }, { 2, 0 }, { 0, 3 }, { 1, 3 }, { 2, 3 } } }, 140  // tet-face 141  { 3, 142  4, 143  { 3, 3, 3, 3 }, 144  { MBTRI, MBTRI, MBTRI, MBTRI, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 145  MBMAXTYPE }, 146  { { 0, 1, 3 }, { 1, 2, 3 }, { 0, 3, 2 }, { 0, 2, 1 } } }, 147  // tet-tet 148  { 3, 149  1, 150  { 4 }, 151  { MBTET, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 152  MBMAXTYPE, MBMAXTYPE }, 153  { { 0, 1, 2, 3 } } } }, 154  155  // pyramid-edge 156  { { 3, 157  8, 158  { 2, 2, 2, 2, 2, 2, 2, 2 }, 159  { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE }, 160  { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 }, { 0, 4 }, { 1, 4 }, { 2, 4 }, { 3, 4 } } }, 161  // pyramid-face 162  { 3, 163  5, 164  { 3, 3, 3, 3, 4 }, 165  { MBTRI, MBTRI, MBTRI, MBTRI, MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 166  MBMAXTYPE }, 167  { { 0, 1, 4 }, { 1, 2, 4 }, { 2, 3, 4 }, { 3, 0, 4 }, { 0, 3, 2, 1 } } }, 168  // pyramid-pyramid 169  { 3, 170  1, 171  { 5 }, 172  { MBPYRAMID, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 173  MBMAXTYPE, MBMAXTYPE }, 174  { { 0, 1, 2, 3, 4 } } } }, 175  176  // wedge-edge 177  { { 3, 178  9, 179  { 2, 2, 2, 2, 2, 2, 2, 2, 2 }, 180  { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE }, 181  { { 0, 1 }, { 1, 2 }, { 2, 0 }, { 0, 3 }, { 1, 4 }, { 2, 5 }, { 3, 4 }, { 4, 5 }, { 5, 3 } } }, 182  // wedge-face 183  { 3, 184  5, 185  { 4, 4, 4, 3, 3 }, 186  { MBQUAD, MBQUAD, MBQUAD, MBTRI, MBTRI, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 187  MBMAXTYPE }, 188  { { 0, 1, 4, 3 }, { 1, 2, 5, 4 }, { 0, 3, 5, 2 }, { 0, 2, 1 }, { 3, 4, 5 } } }, 189  // wedge-wedge 190  { 3, 191  1, 192  { 6 }, 193  { MBPRISM, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 194  MBMAXTYPE, MBMAXTYPE }, 195  { { 0, 1, 2, 3, 4, 5 } } } }, 196  197  // knife-edge 198  { { 3, 199  10, 200  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, 201  { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBMAXTYPE, MBMAXTYPE }, 202  { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 }, { 0, 4 }, { 1, 5 }, { 2, 6 }, { 3, 5 }, { 4, 5 }, { 5, 6 } } }, 203  // knife-face 204  { 3, 205  5, 206  { 4, 4, 4, 4, 4 }, 207  { MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 208  MBMAXTYPE }, 209  { { 0, 1, 5, 4 }, { 1, 2, 6, 5 }, { 2, 3, 5, 6 }, { 3, 0, 4, 5 }, { 0, 3, 2, 1 } } }, 210  // knife-knife 211  { 3, 212  1, 213  { 7 }, 214  { MBKNIFE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 215  MBMAXTYPE, MBMAXTYPE }, 216  { { 0, 1, 2, 3, 4, 5, 6 } } } }, 217  218  // hex-edge 219  { { 3, 220  12, 221  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, 222  { MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE, MBEDGE }, 223  { { 0, 1 }, 224  { 1, 2 }, 225  { 2, 3 }, 226  { 3, 0 }, 227  { 0, 4 }, 228  { 1, 5 }, 229  { 2, 6 }, 230  { 3, 7 }, 231  { 4, 5 }, 232  { 5, 6 }, 233  { 6, 7 }, 234  { 7, 4 } } }, 235  // hex-face 236  { 3, 237  6, 238  { 4, 4, 4, 4, 4, 4 }, 239  { MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBQUAD, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 240  MBMAXTYPE }, 241  { { 0, 1, 5, 4 }, { 1, 2, 6, 5 }, { 2, 3, 7, 6 }, { 3, 0, 4, 7 }, { 0, 3, 2, 1 }, { 4, 5, 6, 7 } } }, 242  // hex-hex 243  { 3, 244  1, 245  { 8 }, 246  { MBHEX, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 247  MBMAXTYPE, MBMAXTYPE }, 248  { { 0, 1, 2, 3, 4, 5, 6, 7 } } } }, 249  250  // polyhedron-edge 251  { { 3, 252  0, 253  { 0 }, 254  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 255  MBMAXTYPE, MBMAXTYPE }, 256  { { 0 } } }, 257  // polyhedron-face 258  { 3, 259  0, 260  { 0 }, 261  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 262  MBMAXTYPE, MBMAXTYPE }, 263  { { 0 } } }, 264  // polyhedron-polyhedron 265  { 3, 266  1, 267  { 0 }, 268  { MBPOLYHEDRON, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 269  MBMAXTYPE, MBMAXTYPE, MBMAXTYPE }, 270  { { 0 } } } }, 271  272  // meshset-edge 273  { { 4, 274  0, 275  { 0 }, 276  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 277  MBMAXTYPE, MBMAXTYPE }, 278  { { 0 } } }, // not handled yet? 279  // meshset-face 280  { 4, 281  0, 282  { 0 }, 283  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 284  MBMAXTYPE, MBMAXTYPE }, 285  { { 0 } } }, // not handled yet? 286  // meshset-region 287  { 4, 288  0, 289  { 0 }, 290  { MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, MBMAXTYPE, 291  MBMAXTYPE, MBMAXTYPE }, 292  { { 0 } } } } // not handled yet? 293  294  // maxtype 295 }; 296  297 const CN::UpConnMap CN::mUpConnMap[MBMAXTYPE][4][4] = { 298  { 299  // type MBVERTEX 300  { { { 1 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 0 301  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 1 302  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2 303  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 3 304  }, 305  306  { 307  // type MBEDGE 308  { 309  // source dim 0 310  { // target dim 0 311  { 1, 1 }, // 1 connected vertices for all vertices 312  { { 1 }, { 0 } } }, // end target dimension 0 313  { // target dimension 1 314  { 1, 1 }, // 1 connected edges for all vertices 315  { { 0 }, { 0 } } }, // end target dimension 1 316  { // target dimension 2 317  { 0 }, // 0 connected faces for all vertices 318  { { 0 } } }, // end target dimension 2 319  { // target dimension 3 320  { 0 }, // 0 connected elements for all vertices 321  { { 0 } } } // end target dimension 3 322  }, // end source dim 0 323  324  { 325  // source dim 1 326  { // target dim 0 327  { 2 }, // 2 vertices for all edges 328  { { 0, 1 } } }, // end target dim 0 329  { // target dim 1 330  { 0 }, // 0 edges for all edges 331  { { 0 } } }, // end target dim 1 332  { // target dim 2 333  { 0 }, // 2 faces for all edges 334  { { 0 } } }, // end target dim 2 335  { // target dimension 3 336  { 0 }, // 0 connected elements for all vertices 337  { { 0 } } } // end target dimension 3 338  }, // end source dim 1 339  340  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2 341  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 3 342  }, // end type MBEDGE 343  344  { 345  // type MBTRI 346  { 347  // source dim 0 348  { // target dim 0 349  { 2, 2, 2 }, // 2 connected vertices for all vertices 350  { { 1, 2 }, { 0, 2 }, { 0, 1 } } }, // end target dimension 0 351  { // target dimension 1 352  { 2, 2, 2 }, // 2 connected edges for all vertices 353  { { 0, 2 }, { 0, 1 }, { 1, 2 } } }, // end target dimension 1 354  { // target dimension 2 355  { 1, 1, 1 }, // 1 connected faces for all vertices 356  { { 0 }, { 0 }, { 0 } } }, // end target dimension 2 357  { // target dimension 3 358  { 0 }, // 0 connected elements for all vertices 359  { { 0 } } } // end target dimension 3 360  }, // end source dim 0 361  362  { 363  // source dim 1 364  { // target dim 0 365  { 2, 2, 2 }, // 2 vertices for all edges 366  { { 0, 1 }, { 1, 2 }, { 0, 2 } } }, // end target dim 0 367  { // target dim 1 368  { 2, 2, 2 }, // 2 edges for all edges 369  { { 1, 2 }, { 0, 2 }, { 0, 1 } } }, // end target dim 1 370  { // target dim 2 371  { 1, 1, 1 }, // 1 faces for all edges 372  { { 0 }, { 0 }, { 0 } } }, // end target dim 2 373  { // target dimension 3 374  { 0 }, // 0 connected elements for all vertices 375  { { 0 } } } // end target dimension 3 376  }, // end source dim 1 377  378  { 379  // source dim 2 380  { // target dim 0 381  { 3 }, // 3 vertices for all faces 382  { { 0, 1, 2 } } }, // end target dim 0 383  { // target dim 1 384  { 3 }, // 3 edges for all faces 385  { { 0, 1, 2 } } }, // end target dim 1 386  { // target dim 2 387  { 0 }, // 0 faces for all faces 388  { { 0 } } }, // end target dim 2 389  { // target dimension 3 390  { 0 }, // 0 connected elements for all vertices 391  { { 0 } } } // end target dimension 3 392  }, // end source dim 2 393  394  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3 395  }, // end type MBTRI 396  397  { 398  // type MBQUAD 399  { 400  // source dim 0 401  { // target dim 0 402  { 2, 2, 2, 2 }, // 2 connected vertices for all vertices 403  { { 1, 3 }, { 0, 2 }, { 2, 3 }, { 0, 2 } } }, // end target dimension 0 404  { // target dimension 1 405  { 2, 2, 2, 2 }, // 2 connected edges for all vertices 406  { { 0, 3 }, { 0, 1 }, { 1, 2 }, { 2, 3 } } }, // end target dimension 1 407  { // target dimension 2 408  { 1, 1, 1, 1 }, // 1 connected faces for all vertices 409  { { 0 }, { 0 }, { 0 }, { 0 } } }, // end target dimension 2 410  { // target dimension 3 411  { 0 }, // 0 connected elements for all vertices 412  { { 0 } } } // end target dimension 3 413  }, // end source dim 0 414  415  { 416  // source dim 1 417  { // target dim 0 418  { 2, 2, 2, 2 }, // 2 vertices for all edges 419  { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 0, 3 } } }, // end target dim 0 420  { // target dim 1 421  { 2, 2, 2, 2 }, // 2 edges for all edges 422  { { 1, 3 }, { 0, 2 }, { 1, 3 }, { 0, 2 } } }, // end target dim 1 423  { // target dim 2 424  { 1, 1, 1, 1 }, // 1 faces for all edges 425  { { 0 }, { 0 }, { 0 }, { 0 } } }, // end target dim 2 426  { // target dimension 3 427  { 0 }, // 0 connected elements for all vertices 428  { { 0 } } } // end target dimension 3 429  }, // end source dim 1 430  431  { 432  // source dim 2 433  { // target dim 0 434  { 4 }, // 4 vertices for all faces 435  { { 0, 1, 2, 3 } } }, // end target dim 0 436  { // target dim 1 437  { 4 }, // 4 edges for all faces 438  { { 0, 1, 2, 3 } } }, // end target dim 1 439  { // target dim 2 440  { 0 }, // 4 faces for all faces 441  { { 0 } } }, // end target dim 2 442  { // target dimension 3 443  { 0 }, // 0 connected elements for all vertices 444  { { 0 } } } // end target dimension 3 445  }, // end source dim 2 446  447  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3 448  }, // end type MBQUAD 449  450  { 451  // type MBPOLYGON 452  { // source dim 0 453  { // target dim 0 454  { 0 }, 455  { { 0 } } }, 456  { // target dimension 1 457  { 0 }, 458  { { 0 } } }, 459  { // target dimension 2 460  { 0 }, 461  { { 0 } } }, 462  { // target dimension 3 463  { 0 }, 464  { { 0 } } } }, // end source dim 0 465  466  { // source dim 1 467  { // target dim 0 468  { 0 }, 469  { { 0 } } }, 470  { // target dimension 1 471  { 0 }, 472  { { 0 } } }, 473  { // target dimension 2 474  { 0 }, 475  { { 0 } } }, 476  { // target dimension 3 477  { 0 }, 478  { { 0 } } } }, // end source dim 1 479  480  { // source dim 2 481  { // target dim 0 482  { 0 }, 483  { { 0 } } }, 484  { // target dimension 1 485  { 0 }, 486  { { 0 } } }, 487  { // target dimension 2 488  { 0 }, 489  { { 0 } } }, 490  { // target dimension 3 491  { 0 }, 492  { { 0 } } } }, // end source dim 2 493  494  { // source dim 3 495  { // target dim 0 496  { 0 }, 497  { { 0 } } }, 498  { // target dimension 1 499  { 0 }, 500  { { 0 } } }, 501  { // target dimension 2 502  { 0 }, 503  { { 0 } } }, 504  { // target dimension 3 505  { 0 }, 506  { { 0 } } } } // end source dim 3 507  }, // end type MBPOLYGON 508  509  { 510  // type MBTET 511  { 512  // source dim 0 513  { // target dim 0 514  { 3, 3, 3, 3 }, // 3 connected vertices for all vertices 515  { { 1, 2, 3 }, { 0, 2, 3 }, { 0, 1, 3 }, { 0, 1, 2 } } }, // end target dimension 0 516  { // target dimension 1 517  { 3, 3, 3, 3 }, // 3 connected edges for all vertices 518  { { 0, 2, 3 }, { 0, 1, 4 }, { 1, 2, 5 }, { 3, 4, 5 } } }, // end target dimension 1 519  { // target dimension 2 520  { 3, 3, 3, 3 }, // 3 connected faces for all vertices 521  { { 0, 2, 3 }, { 0, 1, 3 }, { 1, 2, 3 }, { 0, 1, 2 } } }, // end target dimension 2 522  { // target dimension 3 523  { 1, 1, 1, 1 }, // 0 connected elements for all vertices 524  { { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 525  }, // end source dim 0 526  527  { 528  // source dim 1 529  { // target dim 0 530  { 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges 531  { { 0, 1 }, { 1, 2 }, { 0, 2 }, { 0, 3 }, { 1, 3 }, { 2, 3 } } }, // end target dim 0 532  { // target dim 1 533  { 4, 4, 4, 4, 4, 4 }, // 4 edges for all edges 534  { { 1, 2, 3, 4 }, 535  { 0, 2, 4, 5 }, 536  { 0, 1, 3, 5 }, 537  { 0, 2, 4, 5 }, 538  { 0, 1, 3, 5 }, 539  { 1, 2, 3, 4 } } }, // end target dim 1 540  { // target dim 2 541  { 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges 542  { { 0, 3 }, { 1, 3 }, { 2, 3 }, { 0, 2 }, { 0, 1 }, { 1, 2 } } }, // end target dim 2 543  { // target dimension 3 544  { 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 545  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 546  }, // end source dim 1 547  548  { 549  // source dim 2 550  { // target dim 0 551  { 3, 3, 3, 3 }, // 3 vertices for all faces 552  { { 0, 1, 3 }, { 1, 2, 3 }, { 0, 3, 2 }, { 0, 2, 1 } } }, // end target dim 0 553  { // target dim 1 554  { 3, 3, 3, 3 }, // 3 edges for all faces 555  { { 0, 4, 3 }, { 1, 5, 4 }, { 3, 5, 2 }, { 2, 1, 0 } } }, // end target dim 1 556  { // target dim 2 557  { 3, 3, 3, 3 }, // 3 faces for all faces 558  { { 3, 1, 2 }, { 3, 2, 0 }, { 0, 1, 3 }, { 2, 1, 0 } } }, // end target dim 2 559  { // target dimension 3 560  { 1, 1, 1, 1 }, // 0 connected elements for all vertices 561  { { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 562  }, // end source dim 2 563  564  { 565  // source dim 3 566  { // target dim 0 567  { 4 }, // 4 vertices for all elements 568  { { 0, 1, 2, 3 } } }, // end target dim 0 569  { // target dim 1 570  { 6 }, // 6 edges for all elements 571  { { 0, 1, 2, 3, 4, 5 } } }, // end target dim 1 572  { // target dim 2 573  { 4 }, // 4 faces for all elements 574  { { 0, 1, 2, 3 } } }, // end target dim 2 575  { // target dimension 3 576  { 0 }, // 0 connected elements for all vertices 577  { { 0 } } } // end target dimension 3 578  } // end source dim 3 579  }, // end type MBTET 580  581  { 582  // type MBPYRAMID 583  { 584  // source dim 0 585  { // target dim 0 586  { 3, 3, 3, 3, 4 }, // 3 connected vertices for most vertices 587  { { 1, 3, 4 }, { 0, 2, 4 }, { 1, 3, 4 }, { 0, 2, 4 }, { 0, 1, 2, 3 } } }, // end target dimension 0 588  { // target dimension 1 589  { 3, 3, 3, 3, 4 }, // 3 connected edges for most vertices 590  { { 0, 3, 4 }, { 0, 1, 5 }, { 1, 2, 6 }, { 2, 3, 7 }, { 4, 5, 6, 7 } } }, // end target dimension 1 591  { // target dimension 2 592  { 3, 3, 3, 3, 4 }, // 3 connected faces for most vertices 593  { { 0, 3, 4 }, { 0, 1, 4 }, { 1, 2, 4 }, { 2, 3, 4 }, { 0, 1, 2, 3 } } }, // end target dimension 2 594  { // target dimension 3 595  { 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 596  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 597  }, // end source dim 0 598  599  { 600  // source dim 1 601  { // target dim 0 602  { 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges 603  { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 0, 3 }, { 0, 4 }, { 1, 4 }, { 2, 4 }, { 3, 4 } } }, // end target dim 0 604  { // target dim 1 605  { 4, 4, 4, 4, 5, 5, 5, 5 }, // 4 edges for some edges, 5 for others 606  { { 1, 3, 4, 5 }, 607  { 0, 2, 5, 6 }, 608  { 1, 3, 6, 7 }, 609  { 0, 2, 4, 7 }, 610  { 0, 3, 5, 6, 7 }, 611  { 0, 1, 4, 6, 7 }, 612  { 1, 2, 4, 5, 7 }, 613  { 2, 3, 4, 5, 6 } } }, // end target dim 1 614  { // target dim 2 615  { 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges 616  { { 0, 4 }, { 1, 4 }, { 2, 4 }, { 3, 4 }, { 0, 3 }, { 0, 1 }, { 1, 2 }, { 2, 3 } } }, // end target dim 2 617  { // target dimension 3 618  { 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 619  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 620  // 3 621  }, // end source dim 1 622  623  { 624  // source dim 2 625  { // target dim 0 626  { 3, 3, 3, 3, 4 }, // 3 vertices for most edges 627  { { 0, 1, 4 }, { 1, 2, 4 }, { 2, 3, 4 }, { 0, 3, 4 }, { 0, 1, 2, 3 } } }, // end target dim 0 628  { // target dim 1 629  { 3, 3, 3, 3, 4 }, // 3 edges for most faces 630  { { 0, 5, 4 }, { 1, 6, 5 }, { 6, 2, 7 }, { 3, 4, 7 }, { 0, 3, 2, 1 } } }, // end target dim 1 631  { // target dim 2 632  { 3, 3, 3, 3, 4 }, // 4 faces for most faces 633  { { 4, 1, 3 }, { 4, 2, 0 }, { 4, 3, 1 }, { 4, 0, 2 }, { 0, 1, 2, 3 } } }, // end target dim 2 634  { // target dimension 3 635  { 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 636  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 637  }, // end source dim 2 638  639  { 640  // source dim 3 641  { // target dim 0 642  { 5 }, // 5 vertices for all elements 643  { { 0, 1, 2, 3, 4 } } }, // end target dim 0 644  { // target dim 1 645  { 8 }, // 8 edges for all elements 646  { { 0, 1, 2, 3, 4, 5, 6, 7 } } }, // end target dim 1 647  { // target dim 2 648  { 5 }, // 5 faces for all elements 649  { { 0, 1, 2, 3, 4 } } }, // end target dim 2 650  { // target dimension 3 651  { 0 }, // 0 connected elements for all vertices 652  { { 0 } } } // end target dimension 3 653  } // end source dim 3 654  }, // end type MBPYRAMID 655  656  { 657  // type MBPRISM 658  { 659  // source dim 0 660  { // target dim 0 661  { 3, 3, 3, 3, 3, 3 }, // 3 connected vertices for all vertices 662  { { 1, 2, 3 }, { 0, 2, 4 }, { 0, 1, 5 }, { 0, 4, 5 }, { 1, 3, 5 }, { 2, 3, 4 } } }, // end target 663  // dimension 0 664  { // target dimension 1 665  { 3, 3, 3, 3, 3, 3 }, // 3 connected edges for all vertices 666  { { 0, 2, 3 }, { 0, 1, 4 }, { 1, 2, 5 }, { 3, 6, 8 }, { 4, 6, 7 }, { 5, 7, 8 } } }, // end target 667  // dimension 1 668  { // target dimension 2 669  { 3, 3, 3, 3, 3, 3 }, // 3 connected faces for all vertices 670  { { 0, 2, 3 }, { 0, 1, 3 }, { 1, 2, 3 }, { 0, 2, 4 }, { 0, 1, 4 }, { 1, 2, 4 } } }, // end target 671  // dimension 2 672  { // target dimension 3 673  { 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 674  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 675  }, // end source dim 0 676  677  { 678  // source dim 1 679  { // target dim 0 680  { 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges 681  { { 0, 1 }, { 1, 2 }, { 0, 2 }, { 0, 3 }, { 1, 4 }, { 2, 5 }, { 3, 4 }, { 4, 5 }, { 3, 5 } } }, // end 682  // target 683  // dim 0 684  { // target dim 1 685  { 4, 4, 4, 4, 4, 4, 4, 4, 4 }, // 4 edges for all edges 686  { { 1, 2, 3, 4 }, 687  { 0, 2, 4, 5 }, 688  { 0, 1, 3, 5 }, 689  { 0, 2, 6, 8 }, 690  { 0, 1, 6, 7 }, 691  { 1, 2, 7, 8 }, 692  { 3, 4, 7, 8 }, 693  { 4, 5, 6, 8 }, 694  { 3, 5, 6, 7 } } }, // end target dim 1 695  { // target dim 2 696  { 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges 697  { { 0, 3 }, { 1, 3 }, { 2, 3 }, { 0, 2 }, { 0, 1 }, { 1, 2 }, { 0, 4 }, { 1, 4 }, { 2, 4 } } }, // end 698  // target 699  // dim 2 700  { // target dimension 3 701  { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 702  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target 703  // dimension 3 704  }, // end source dim 1 705  706  { 707  // source dim 2 708  { // target dim 0 709  { 4, 4, 4, 3, 3 }, // 4 vertices for some faces, 3 for others 710  { { 0, 1, 3, 4 }, { 1, 2, 4, 5 }, { 0, 2, 3, 5 }, { 0, 1, 2 }, { 3, 4, 5 } } }, // end target dim 0 711  { // target dim 1 712  { 4, 4, 4, 3, 3 }, // 4 edges for some faces, 3 for others 713  { { 0, 4, 6, 3 }, { 1, 5, 7, 4 }, { 3, 8, 5, 2 }, { 2, 1, 0 }, { 6, 7, 8 } } }, // end target dim 1 714  { // target dim 2 715  { 4, 4, 4, 3, 3 }, // 4 faces for some faces, 3 for others 716  { { 3, 1, 4, 2 }, { 3, 2, 4, 0 }, { 0, 4, 1, 3 }, { 2, 1, 0 }, { 0, 1, 2 } } }, // end target dim 2 717  { // target dimension 3 718  { 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 719  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 720  }, // end source dim 2 721  722  { 723  // source dim 3 724  { // target dim 0 725  { 6 }, // 6 vertices for all elements 726  { { 0, 1, 2, 3, 4, 5 } } }, // end target dim 0 727  { // target dim 1 728  { 9 }, // 9 edges for all elements 729  { { 0, 1, 2, 3, 4, 5, 6, 7, 8 } } }, // end target dim 1 730  { // target dim 2 731  { 5 }, // 5 faces for all elements 732  { { 0, 1, 2, 3, 4 } } }, // end target dim 2 733  { // target dimension 3 734  { 0 }, // 0 connected elements for all vertices 735  { { 0 } } } // end target dimension 3 736  } // end source dim 3 737  }, // end type MBPRISM 738  739  { 740  // type MBKNIFE 741  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 0 742  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 1 743  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2 744  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3 745  }, // end type MBKNIFE 746  747  { 748  // type MBHEX 749  { 750  // source dim 0 751  { // target dim 0 752  { 3, 3, 3, 3, 3, 3, 3, 3 }, // 3 connected vertices for all vertices 753  { { 1, 3, 4 }, 754  { 0, 2, 5 }, 755  { 1, 3, 6 }, 756  { 0, 2, 7 }, 757  { 0, 5, 7 }, 758  { 1, 4, 6 }, 759  { 2, 5, 7 }, 760  { 3, 4, 6 } } }, // end target dimension 0 761  { // target dimension 1 762  { 3, 3, 3, 3, 3, 3, 3, 3 }, // 3 connected edges for all vertices 763  { { 0, 3, 4 }, 764  { 0, 1, 5 }, 765  { 1, 2, 6 }, 766  { 2, 3, 7 }, 767  { 4, 8, 11 }, 768  { 5, 8, 9 }, 769  { 6, 9, 10 }, 770  { 7, 10, 11 } } }, // end target dimension 1 771  { // target dimension 2 772  { 3, 3, 3, 3, 3, 3, 3, 3 }, // 3 connected faces for all vertices 773  { { 0, 3, 4 }, 774  { 0, 1, 4 }, 775  { 1, 2, 4 }, 776  { 2, 3, 4 }, 777  { 0, 3, 5 }, 778  { 0, 1, 5 }, 779  { 1, 2, 5 }, 780  { 2, 3, 5 } } }, // end target dimension 2 781  { // target dimension 3 782  { 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 783  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 784  // 3 785  }, // end source dim 0 786  787  { 788  // source dim 1 789  { // target dim 0 790  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 vertices for all edges 791  { { 0, 1 }, 792  { 1, 2 }, 793  { 2, 3 }, 794  { 0, 3 }, 795  { 0, 4 }, 796  { 1, 5 }, 797  { 2, 6 }, 798  { 3, 7 }, 799  { 4, 5 }, 800  { 5, 6 }, 801  { 6, 7 }, 802  { 4, 7 } } }, // end target dim 0 803  { // target dim 1 804  { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 }, // 4 edges for all edges 805  { { 1, 3, 4, 5 }, 806  { 0, 2, 5, 6 }, 807  { 1, 3, 6, 7 }, 808  { 0, 2, 4, 7 }, 809  { 0, 3, 8, 11 }, 810  { 0, 1, 8, 9 }, 811  { 1, 2, 9, 10 }, 812  { 2, 3, 10, 11 }, 813  { 4, 5, 9, 11 }, 814  { 5, 6, 8, 10 }, 815  { 6, 7, 9, 11 }, 816  { 4, 7, 8, 10 } } }, // end target dim 1 817  { // target dim 2 818  { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, // 2 faces for all edges 819  { { 0, 4 }, 820  { 1, 4 }, 821  { 2, 4 }, 822  { 3, 4 }, 823  { 0, 3 }, 824  { 0, 1 }, 825  { 1, 2 }, 826  { 2, 3 }, 827  { 0, 5 }, 828  { 1, 5 }, 829  { 2, 5 }, 830  { 3, 5 } } }, // end target dim 2 831  { // target dimension 3 832  { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 833  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target 834  // dimension 3 835  }, // end source dim 1 836  837  { 838  // source dim 2 839  { // target dim 0 840  { 4, 4, 4, 4, 4, 4 }, // 4 vertices for all faces 841  { { 0, 1, 4, 5 }, 842  { 1, 2, 5, 6 }, 843  { 2, 3, 6, 7 }, 844  { 0, 3, 4, 7 }, 845  { 0, 1, 2, 3 }, 846  { 4, 5, 6, 7 } } }, // end target dim 0 847  { // target dim 1 848  { 4, 4, 4, 4, 4, 4 }, // 4 edges for all faces 849  { { 0, 5, 8, 4 }, 850  { 1, 6, 9, 5 }, 851  { 2, 7, 10, 6 }, 852  { 3, 4, 11, 7 }, 853  { 0, 3, 2, 1 }, 854  { 8, 9, 10, 11 } } }, // end target dim 1 855  { // target dim 2 856  { 4, 4, 4, 4, 4, 4 }, // 4 faces for all faces 857  { { 4, 1, 5, 3 }, 858  { 4, 2, 5, 0 }, 859  { 4, 3, 5, 1 }, 860  { 4, 0, 5, 2 }, 861  { 0, 3, 2, 1 }, 862  { 0, 1, 2, 3 } } }, // end target dim 2 863  { // target dimension 3 864  { 1, 1, 1, 1, 1, 1 }, // 0 connected elements for all vertices 865  { { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 } } } // end target dimension 3 866  }, // end source dim 2 867  868  { 869  // source dim 3 870  { // target dim 0 871  { 8 }, // 8 vertices for all elements 872  { { 0, 1, 2, 3, 4, 5, 6, 7 } } }, // end target dim 0 873  { // target dim 1 874  { 12 }, // 12 edges for all elements 875  { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } } }, // end target dim 1 876  { // target dim 2 877  { 6 }, // 6 faces for all elements 878  { { 0, 1, 2, 3, 4, 5 } } }, // end target dim 2 879  { // target dimension 3 880  { 0 }, // 0 connected elements for all vertices 881  { { 0 } } } // end target dimension 3 882  } // end source dim 3 883  }, // end type MBHEX 884  885  { 886  // type MBPOLYHEDRON 887  { // source dim 0 888  { // target dim 0 889  { 0 }, 890  { { 0 } } }, 891  { // target dimension 1 892  { 0 }, 893  { { 0 } } }, 894  { // target dimension 2 895  { 0 }, 896  { { 0 } } }, 897  { // target dimension 3 898  { 0 }, 899  { { 0 } } } }, // end source dim 0 900  901  { // source dim 1 902  { // target dim 0 903  { 0 }, 904  { { 0 } } }, 905  { // target dimension 1 906  { 0 }, 907  { { 0 } } }, 908  { // target dimension 2 909  { 0 }, 910  { { 0 } } }, 911  { // target dimension 3 912  { 0 }, 913  { { 0 } } } }, // end source dim 1 914  915  { // source dim 2 916  { // target dim 0 917  { 0 }, 918  { { 0 } } }, 919  { // target dimension 1 920  { 0 }, 921  { { 0 } } }, 922  { // target dimension 2 923  { 0 }, 924  { { 0 } } }, 925  { // target dimension 3 926  { 0 }, 927  { { 0 } } } }, // end source dim 2 928  929  { // source dim 3 930  { // target dim 0 931  { 0 }, 932  { { 0 } } }, 933  { // target dimension 1 934  { 0 }, 935  { { 0 } } }, 936  { // target dimension 2 937  { 0 }, 938  { { 0 } } }, 939  { // target dimension 3 940  { 0 }, 941  { { 0 } } } } // end source dim 3 942  }, // end type MBPOLYHEDRON 943  944  { 945  // type MBENTITYSET 946  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 0 947  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 1 948  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } }, // source dim 2 949  { { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } }, { { 0 }, { { 0 } } } } // source dim 3 950  } // end type MBENTITYSET 951 }; 952 const unsigned char E = CN::MID_EDGE_BIT; 953 const unsigned char F = CN::MID_FACE_BIT; 954 const unsigned char R = CN::MID_REGION_BIT; 955 const unsigned char CN::midNodesPerType[MBMAXTYPE][MAX_NODES_PER_ELEMENT + 1] = { 956  // vertex 957  { 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 }, 958  // edge 959  { 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 }, 960  // tri 961  { 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 }, 962  // quad 963  { 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 }, 964  // polygon 965  { 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 }, 966  // tet 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13, 14, 15 967  { 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 }, 968  // pyramid 3, 4, 5, 6, 7, 8, 9,10, 11, 12,13, 14, 15,16,17, 18, 19 969  { 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 }, 970  // prism 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12, 13,14,15, 16, 17,18,19, 20, 21 971  { 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 }, 972  // knife 2, 3, 4, 5, 6, 7, 8, 9,10,11, 12,13, 14,15,16,17, 18, 19,20,21, 22, 23 973  { 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 }, 974  // 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 975  { 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 }, 976  // polyhedron 977  { 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 }, 978  // set 979  { 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 }, 980 }; 981  982 } // namespace moab 983  984 #endif