moab
patran_order.h
Go to the documentation of this file.
00001 #ifndef PATRAN_ORDER_H
00002 #define PATRAN_ORDER_H
00003 
00004 #ifdef __cplusplus
00005 extern "C" {
00006 namespace moab {
00007 #endif
00008 
00009 /* Define maps that, when indexed by the PATRAN connectivity index return
00010    the corresponding index in the MOAB connectivity. */
00011 
00012 static const int patran_tet8_order[] = { 0, 1, 2, 3, 7, 5, 6, 4 };
00013 static const int patran_tet9_order[] = { 0, 1, 2, 3, 8, 7, 5, 6, 4 };
00014 static const int patran_tet14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 11, 12, 10 };
00015 static const int patran_tet15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 13, 11, 12, 10 };
00016 
00017 static const int patran_hex14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 11, 9, 8, 10 };
00018 static const int patran_hex15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 14, 12, 13, 11, 9, 8, 10 };
00019 static const int patran_hex26_order[] = { 0, 1, 2, 3, 4, 5, 6, 7,
00020                                    8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
00021                                    24, 25, 23, 21, 20, 22 };
00022 static const int patran_hex27_order[] = { 0, 1, 2, 3, 4, 5, 6, 7,
00023                                    8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
00024                                    26, 24, 25, 23, 21, 20, 22 };
00025 
00026 static const int patran_pri11_order[] = { 0, 1, 2, 3, 4, 5, 9, 10, 7, 8, 6 };
00027 static const int patran_pri12_order[] = { 0, 1, 2, 3, 4, 5, 11, 9, 10, 7, 8, 6 };
00028 static const int patran_pri20_order[] = { 0, 1, 2, 3, 4, 5,
00029                                    6, 7, 8, 9, 10, 11, 12, 13, 14,
00030                                    18, 19, 16, 17, 15 };
00031 static const int patran_pri21_order[] = { 0, 1, 2, 3, 4, 5,
00032                                    6, 7, 8, 9, 10, 11, 12, 13, 14,
00033                                    20, 18, 19, 16, 17, 15 };
00034 
00035 /* Define list of maps for an element type, indexed by the number
00036    of nodes in the element. Entries are NULL where MBCN connectivity
00037    is the same as PATRAN (or the number of nodes is invalid.) */
00038 
00039 static const int* const patran_null_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
00040                                          0, 0, 0, 0, 0, 0, 0, 0, 
00041                                          0, 0, 0, 0, 0, 0, 0, 0, 
00042                                          0, 0, 0, 0, 0, 0, 0, 0,
00043                                          0, 0, 0, 0, 0, 0, 0, 0, 
00044                                          0, 0, 0, 0, 0, 0, 0, 0, 
00045                                          0, 0, 0, 0, 0, 0, 0, 0, 
00046                                          0, 0, 0, 0, 0, 0, 0, 0, 
00047                                          0 };
00048 static const int* const patran_tet_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
00049                                         patran_tet8_order,
00050                                         patran_tet9_order,
00051                                         0, 0, 0, 0,  
00052                                         patran_tet14_order,
00053                                         patran_tet15_order, 
00054                                         0, 0, 0, 0, 0, 0, 0, 0,
00055                                         0, 0, 0, 0, 0, 0, 0, 0, 
00056                                         0, 0, 0, 0, 0, 0, 0, 0, 
00057                                         0, 0, 0, 0, 0, 0, 0, 0, 
00058                                         0, 0, 0, 0, 0, 0, 0, 0, 
00059                                         0 };
00060 static const int* const patran_hex_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
00061                                         0, 0, 0, 0, 0, 0, 
00062                                         patran_hex14_order,
00063                                         patran_hex15_order,
00064                                         0, 0, 0, 0, 0, 0, 0, 0, 
00065                                         0, 0, 
00066                                         patran_hex26_order,
00067                                         patran_hex27_order,
00068                                         0, 0, 0, 0,
00069                                         0, 0, 0, 0, 0, 0, 0, 0, 
00070                                         0, 0, 0, 0, 0, 0, 0, 0, 
00071                                         0, 0, 0, 0, 0, 0, 0, 0, 
00072                                         0, 0, 0, 0, 0, 0, 0, 0, 
00073                                         0 };
00074 static const int* const patran_pri_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
00075                                         0, 0, 0, 
00076                                         patran_pri11_order,
00077                                         patran_pri12_order,
00078                                         0, 0, 0, 0, 0, 0, 0,
00079                                         patran_pri20_order,
00080                                         patran_pri21_order,
00081                                         0, 0, 
00082                                         0, 0, 0, 0, 0, 0, 0, 0,
00083                                         0, 0, 0, 0, 0, 0, 0, 0, 
00084                                         0, 0, 0, 0, 0, 0, 0, 0, 
00085                                         0, 0, 0, 0, 0, 0, 0, 0, 
00086                                         0, 0, 0, 0, 0, 0, 0, 0, 
00087                                         0 };
00088 
00089 /* Define matrix of maps indexed by element topology (EntityType) and
00090    number of nodes. Entries are NULL where MBCN connectivity
00091    is the same as PATRAN (or the number of nodes is invalid.) */
00092 
00093 static const int *const *const patran_elem_order_map[] = { 
00094   patran_null_order, /*  MBVERTEX */
00095   patran_null_order, /*  MBEDGE */
00096   patran_null_order, /*  MBTRI */
00097   patran_null_order, /*  MBQUAD */
00098   patran_null_order, /*  MBPOLYGON */
00099   patran_tet_order,  /*  MBTET */
00100   patran_null_order, /*  MBPYRAMID */
00101   patran_pri_order,  /*  MBPRISM */
00102   patran_null_order, /*  MBKNIFE */
00103   patran_hex_order,  /*  MBHEX */
00104   patran_null_order, /*  MBPOLYHEDRON */
00105   patran_null_order
00106 };
00107 
00108 #ifdef __cplusplus
00109 } /*  extern "C" */
00110 } /* namespace moab */
00111 #endif
00112 
00113 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines