[MOAB-dev] r2560 - MOAB/trunk

Tim Tautges tautges at mcs.anl.gov
Tue Jan 20 16:47:12 CST 2009


Hmm, why aren't these maps in the ReadNCDF class?

- tim

kraftche at mcs.anl.gov wrote:
> Author: kraftche
> Date: 2009-01-20 16:42:43 -0600 (Tue, 20 Jan 2009)
> New Revision: 2560
> 
> Added:
>    MOAB/trunk/exodus_order.h
>    MOAB/trunk/patran_order.h
> Log:
> add maps for converting from MBCN to PATRAN or ExodusII node orderings
> 
> Added: MOAB/trunk/exodus_order.h
> ===================================================================
> --- MOAB/trunk/exodus_order.h	                        (rev 0)
> +++ MOAB/trunk/exodus_order.h	2009-01-20 22:42:43 UTC (rev 2560)
> @@ -0,0 +1,46 @@
> +#ifndef EXODUS_ORDER_HPP
> +#define EXODUS_ORDER_HPP
> +
> +#include "patran_order.h"
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/* Cubit writes ExodusII files with tet mid-face nodes in this order */
> +static const int exodus_tet8_order[] = { 0, 1, 2, 3, 4, 5, 7, 6 };
> +static const int exodus_tet9_order[] = { 0, 1, 2, 3, 8, 4, 5, 7, 6 };
> +static const int exodus_tet14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 12 };
> +static const int exodus_tet15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 10, 11, 13, 12 };
> +
> +static const int* exodus_tet_order[] = { 0, 0, 0, 0, 0, 0, 0, 0,
> +                                  exodus_tet8_order,
> +                                  exodus_tet9_order,
> +                                  0, 0, 0, 0,
> +                                  exodus_tet14_order,
> +                                  exodus_tet15_order,
> +                                  0, 0, 0, 0, 0, 0,
> +                                  0, 0, 0, 0, 0, 0 };
> +
> +static const int* const* exodus_hex_order = patran_hex_order;
> +
> +static const int *const *const exodus_elem_order_map[] = { 
> +  patran_null_order, // MBVERTEX
> +  patran_null_order, // MBEDGE
> +  patran_null_order, // MBTRI
> +  patran_null_order, // MBQUAD
> +  patran_null_order, // MBPOLYGON
> +  exodus_tet_order,  // MBTET
> +  patran_null_order, // MBPYRAMID
> +  patran_pri_order,  // MBPRISM
> +  patran_null_order, // MBKNIFE
> +  exodus_hex_order,  // MBHEX
> +  patran_null_order, // MBPOLYHEDRON
> +  patran_null_order
> +};
> +
> +#ifdef __cplusplus
> +} // extern "C"
> +#endif
> +
> +#endif
> 
> Added: MOAB/trunk/patran_order.h
> ===================================================================
> --- MOAB/trunk/patran_order.h	                        (rev 0)
> +++ MOAB/trunk/patran_order.h	2009-01-20 22:42:43 UTC (rev 2560)
> @@ -0,0 +1,111 @@
> +#ifndef PATRAN_ORDER_H
> +#define PATRAN_ORDER_H
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/* Define maps that, when indexed by the PATRAN connectivity index return
> +   the corresponding index in the MOAB connectivity. */
> +
> +static const int patran_tet8_order[] = { 0, 1, 2, 3, 7, 5, 6, 4 };
> +static const int patran_tet9_order[] = { 0, 1, 2, 3, 8, 7, 5, 6, 4 };
> +static const int patran_tet14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 11, 12, 10 };
> +static const int patran_tet15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 13, 11, 12, 10 };
> +
> +static const int patran_hex14_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 11, 9, 8, 10 };
> +static const int patran_hex15_order[] = { 0, 1, 2, 3, 4, 5, 6, 7, 14, 12, 13, 11, 9, 8, 10 };
> +static const int patran_hex26_order[] = { 0, 1, 2, 3, 4, 5, 6, 7,
> +                                   8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
> +                                   24, 25, 23, 21, 20, 22 };
> +static const int patran_hex27_order[] = { 0, 1, 2, 3, 4, 5, 6, 7,
> +                                   8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
> +                                   26, 24, 25, 23, 21, 20, 22 };
> +
> +static const int patran_pri11_order[] = { 0, 1, 2, 3, 4, 5, 9, 10, 7, 8, 6 };
> +static const int patran_pri12_order[] = { 0, 1, 2, 3, 4, 5, 11, 9, 10, 7, 8, 6 };
> +static const int patran_pri20_order[] = { 0, 1, 2, 3, 4, 5,
> +                                   6, 7, 8, 9, 10, 11, 12, 13, 14,
> +                                   18, 19, 16, 17, 15 };
> +static const int patran_pri21_order[] = { 0, 1, 2, 3, 4, 5,
> +                                   6, 7, 8, 9, 10, 11, 12, 13, 14,
> +                                   20, 18, 19, 16, 17, 15 };
> +
> +/* Define list of maps for an element type, indexed by the number
> +   of nodes in the element. Entries are NULL where MBCN connectivity
> +   is the same as PATRAN (or the number of nodes is invalid.) */
> +
> +static const int* const patran_null_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
> +                                         0, 0, 0, 0, 0, 0, 0, 0, 
> +                                         0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 
> +                                         0, 0, 0, 0, 0, 0, 0, 0, 
> +                                         0 };
> +static const int* const patran_tet_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
> +                                        patran_tet8_order,
> +                                        patran_tet9_order,
> +                                        0, 0, 0, 0,  
> +                                        patran_tet14_order,
> +                                        patran_tet15_order, 
> +                                        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, 0, 0, 0, 0, 0, 
> +                                        0, 0, 0, 0, 0, 0, 0, 0, 
> +                                        0 };
> +static const int* const patran_hex_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
> +                                        0, 0, 0, 0, 0, 0, 
> +                                        patran_hex14_order,
> +                                        patran_hex15_order,
> +                                        0, 0, 0, 0, 0, 0, 0, 0, 
> +                                        0, 0, 
> +                                        patran_hex26_order,
> +                                        patran_hex27_order,
> +                                        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, 0, 
> +                                        0, 0, 0, 0, 0, 0, 0, 0, 
> +                                        0 };
> +static const int* const patran_pri_order[] = { 0, 0, 0, 0, 0, 0, 0, 0, 
> +                                        0, 0, 0, 
> +                                        patran_pri11_order,
> +                                        patran_pri12_order,
> +                                        0, 0, 0, 0, 0, 0, 0,
> +                                        patran_pri20_order,
> +                                        patran_pri21_order,
> +                                        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, 0, 0, 0, 0, 0, 0, 0, 
> +                                        0, 0, 0, 0, 0, 0, 0, 0, 
> +                                        0 };
> +
> +/* Define matrix of maps indexed by element topology (MBEntityType) and
> +   number of nodes. Entries are NULL where MBCN connectivity
> +   is the same as PATRAN (or the number of nodes is invalid.) */
> +
> +static const int *const *const patran_elem_order_map[] = { 
> +  patran_null_order, // MBVERTEX
> +  patran_null_order, // MBEDGE
> +  patran_null_order, // MBTRI
> +  patran_null_order, // MBQUAD
> +  patran_null_order, // MBPOLYGON
> +  patran_tet_order,  // MBTET
> +  patran_null_order, // MBPYRAMID
> +  patran_pri_order,  // MBPRISM
> +  patran_null_order, // MBKNIFE
> +  patran_hex_order,  // MBHEX
> +  patran_null_order, // MBPOLYHEDRON
> +  patran_null_order
> +};
> +
> +#ifdef __cplusplus
> +} // extern "C"
> +#endif
> +
> +#endif
> 
> 

-- 
================================================================
"You will keep in perfect peace him whose mind is
   steadfast, because he trusts in you."               Isaiah 26:3

              Tim Tautges            Argonne National Laboratory
          (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
          phone: (608) 263-8485      1500 Engineering Dr.
            fax: (608) 263-4499      Madison, WI 53706




More information about the moab-dev mailing list