ExodusII_IO_Helper::ElementMaps Class Reference

#include <exodusII_io_helper.h>

List of all members.

Public Member Functions

 ElementMaps ()
ExodusII_IO_Helper::Conversion assign_conversion (const std::string type_str)
ExodusII_IO_Helper::Conversion assign_conversion (const ElemType type)

Static Public Attributes

static const int quad4_node_map [4] = {0, 1, 2, 3}
static const int quad8_node_map [8] = {0, 1, 2, 3, 4, 5, 6, 7}
static const int quad9_node_map [9] = {0, 1, 2, 3, 4, 5, 6, 7, 8}
static const int tri3_node_map [3] = {0, 1, 2}
static const int tri6_node_map [6] = {0, 1, 2, 3, 4, 5}
static const int tri_edge_map [3] = {0, 1, 2}
static const int quad_edge_map [4] = {0, 1, 2, 3}
static const int tri_inverse_edge_map [3] = {1, 2, 3}
static const int quad_inverse_edge_map [4] = {1, 2, 3, 4}
static const int hex8_node_map [8] = {0, 1, 2, 3, 4, 5, 6, 7}
static const int hex20_node_map [20]
static const int hex27_node_map [27]
static const int tet4_node_map [4] = {0, 1, 2, 3}
static const int tet10_node_map [10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
static const int prism6_node_map [6] = {0, 1, 2, 3, 4, 5}
static const int prism15_node_map [15]
static const int prism18_node_map [18]
static const int pyramid5_node_map [5] = {0, 1, 2, 3, 4}
static const int hex_face_map [6] = {1, 2, 3, 4, 0, 5}
static const int hex27_face_map [6] = {1, 2, 3, 4, 0, 5}
static const int tet_face_map [4] = {1, 2, 3, 0}
static const int prism_face_map [5] = {-1,-1,-1,-1,-1}
static const int pyramid_face_map [5] = {-1,-1,-1,-1,-1}
static const int hex_inverse_face_map [6] = {5, 1, 2, 3, 4, 6}
static const int hex27_inverse_face_map [6] = {5, 1, 2, 3, 4, 6}
static const int tet_inverse_face_map [4] = {4, 1, 2, 3}
static const int prism_inverse_face_map [5] = {-1,-1,-1,-1,-1}
static const int pyramid_inverse_face_map [5] = {-1,-1,-1,-1,-1}


Detailed Description

Definition at line 675 of file exodusII_io_helper.h.


Constructor & Destructor Documentation

ExodusII_IO_Helper::ElementMaps::ElementMaps (  )  [inline]

Constructor.

Definition at line 682 of file exodusII_io_helper.h.

00682 {}


Member Function Documentation

ExodusII_IO_Helper::Conversion ExodusII_IO_Helper::ElementMaps::assign_conversion ( const ElemType  type  ) 

Returns:
a conversion object given an element type.

Definition at line 902 of file exodusII_io_helper.C.

References libMeshEnums::HEX20, hex20_node_map, libMeshEnums::HEX27, hex27_face_map, hex27_inverse_face_map, hex27_node_map, libMeshEnums::HEX8, hex8_node_map, hex_face_map, hex_inverse_face_map, libMeshEnums::PRISM15, prism15_node_map, libMeshEnums::PRISM18, prism18_node_map, libMeshEnums::PRISM6, prism6_node_map, prism_face_map, prism_inverse_face_map, libMeshEnums::PYRAMID5, pyramid5_node_map, pyramid_face_map, pyramid_inverse_face_map, libMeshEnums::QUAD4, quad4_node_map, libMeshEnums::QUAD8, quad8_node_map, libMeshEnums::QUAD9, quad9_node_map, quad_edge_map, quad_inverse_edge_map, libMeshEnums::TET10, tet10_node_map, libMeshEnums::TET4, tet4_node_map, tet_face_map, tet_inverse_face_map, libMeshEnums::TRI3, tri3_node_map, libMeshEnums::TRI6, tri6_node_map, tri_edge_map, and tri_inverse_edge_map.

00903 {
00904   switch (type)
00905     {
00906 
00907     case QUAD4:
00908       {
00909         const Conversion conv(quad4_node_map, quad_edge_map, quad_inverse_edge_map, QUAD4, "QUAD4");
00910         return conv;
00911       }
00912 
00913     case QUAD8:
00914       {
00915         const Conversion conv(quad8_node_map, quad_edge_map, quad_inverse_edge_map, QUAD8, "QUAD8");
00916         return conv;
00917       }
00918       
00919     case QUAD9:
00920       {
00921         const Conversion conv(quad9_node_map, quad_edge_map, quad_inverse_edge_map, QUAD9, "QUAD9");
00922         return conv;
00923       }
00924       
00925     case TRI3:
00926       {
00927         const Conversion conv(tri3_node_map, tri_edge_map, tri_inverse_edge_map, TRI3, "TRI3");
00928         return conv;
00929       }
00930       
00931     case TRI6:
00932       {
00933         const Conversion conv(tri6_node_map, tri_edge_map, tri_inverse_edge_map, TRI6, "TRI6");
00934         return conv;
00935       }
00936       
00937     case HEX8:
00938       {
00939         const Conversion conv(hex8_node_map, hex_face_map, hex_inverse_face_map, HEX8, "HEX8");
00940         return conv;
00941       }
00942       
00943     case HEX20:
00944       {
00945         const Conversion conv(hex20_node_map, hex_face_map, hex_inverse_face_map, HEX20, "HEX20");
00946         return conv;
00947       }
00948       
00949     case HEX27:
00950       {
00951         const Conversion conv(hex27_node_map, hex27_face_map, hex27_inverse_face_map, HEX27, "HEX27");
00952         return conv;
00953       }
00954       
00955     case TET4:
00956       {
00957         const Conversion conv(tet4_node_map, tet_face_map, tet_inverse_face_map, TET4, "TETRA4");
00958         return conv;
00959       }
00960       
00961     case TET10:
00962       {
00963         const Conversion conv(tet10_node_map, tet_face_map, tet_inverse_face_map, TET10, "TETRA10");
00964         return conv;
00965       }
00966 
00967     case PRISM6:
00968       {
00969         const Conversion conv(prism6_node_map, prism_face_map, prism_inverse_face_map, PRISM6, "WEDGE");
00970         return conv;
00971       }
00972 
00973     case PRISM15:
00974       {
00975         const Conversion conv(prism15_node_map, prism_face_map, prism_inverse_face_map, PRISM15, "WEDGE15");
00976         return conv;
00977       }
00978 
00979     case PRISM18:
00980       {
00981         const Conversion conv(prism18_node_map, prism_face_map, prism_inverse_face_map, PRISM18, "WEDGE18");
00982         return conv;
00983       }
00984 
00985     case PYRAMID5:
00986       {
00987         const Conversion conv(pyramid5_node_map, pyramid_face_map, pyramid_inverse_face_map, PYRAMID5, "PYRAMID5");
00988         return conv;
00989       }
00990         
00991     default:
00992       libmesh_error();
00993     }
00994     
00995   libmesh_error();
00996     
00997   const Conversion conv(tri3_node_map, tri_edge_map, tri_inverse_edge_map, TRI3, "TRI3"); // dummy
00998   return conv;  
00999 }

ExodusII_IO_Helper::Conversion ExodusII_IO_Helper::ElementMaps::assign_conversion ( const std::string  type_str  ) 

Returns:
a conversion object given an element type name.

Definition at line 828 of file exodusII_io_helper.C.

References assign_conversion(), libMeshEnums::HEX20, libMeshEnums::HEX27, libMeshEnums::HEX8, libMeshEnums::PRISM15, libMeshEnums::PRISM18, libMeshEnums::PRISM6, libMeshEnums::PYRAMID5, libMeshEnums::QUAD4, libMeshEnums::QUAD8, libMeshEnums::QUAD9, libMeshEnums::TET10, libMeshEnums::TET4, libMeshEnums::TRI3, tri3_node_map, libMeshEnums::TRI6, tri_edge_map, and tri_inverse_edge_map.

Referenced by assign_conversion(), Nemesis_IO::read(), ExodusII_IO::read(), ExodusII_IO_Helper::write_elements(), and ExodusII_IO_Helper::write_sidesets().

00829 {
00830   // ExodusII defines the following types in contrib/exodusii/Lib/include/exodusII_int.h
00831   // UNK         =  -1     
00832   // NULL_ELEMENT=   0     
00833   // TRIANGLE    =   1     
00834   // QUAD        =   2     
00835   // HEX         =   3     
00836   // WEDGE       =   4     
00837   // TETRA       =   5     
00838   // TRUSS       =   6     
00839   // BEAM        =   7     
00840   // SHELL       =   8     
00841   // SPHERE      =   9     
00842   // CIRCLE      =  10     
00843   // TRISHELL    =  11     
00844   // PYRAMID     =  12      
00845   
00846   if ((type_str == "QUAD4") || (type_str == "QUAD") || (type_str == "quad"))
00847     return assign_conversion(QUAD4);
00848 
00849   else if (type_str == "QUAD8")
00850     return assign_conversion(QUAD8);
00851 
00852   else if (type_str == "QUAD9")
00853     return assign_conversion(QUAD9);
00854 
00855   else if ((type_str == "TRI3") || (type_str == "TRIANGLE") || (type_str == "TRI") || (type_str == "tri"))
00856     return assign_conversion(TRI3);
00857 
00858   else if (type_str == "TRI6")
00859     return assign_conversion(TRI6);
00860 
00861   else if ((type_str == "HEX8") || (type_str == "HEX") || (type_str=="hex8")) 
00862     return assign_conversion(HEX8);
00863 
00864   else if (type_str == "HEX20")
00865     return assign_conversion(HEX20);
00866 
00867   else if (type_str == "HEX27")
00868     return assign_conversion(HEX27);
00869 
00870   else if ((type_str == "TETRA4") || (type_str == "TETRA"))
00871     return assign_conversion(TET4);
00872 
00873   else if (type_str == "TETRA10")
00874     return assign_conversion(TET10);
00875 
00876   else if (type_str == "WEDGE")
00877     return assign_conversion(PRISM6);
00878 
00879   else if (type_str == "WEDGE15")
00880     return assign_conversion(PRISM15);
00881 
00882   else if (type_str == "WEDGE18")
00883     return assign_conversion(PRISM18);
00884 
00885   else if (type_str == "PYRAMID" || type_str == "PYRAMID5")
00886     return assign_conversion(PYRAMID5);
00887 
00888   else
00889     {
00890       std::cerr << "ERROR! Unrecognized element type_str: " << type_str << std::endl;
00891       libmesh_error();
00892     }
00893 
00894   libmesh_error();
00895   
00896   const Conversion conv(tri3_node_map, tri_edge_map, tri_inverse_edge_map, TRI3,"TRI3"); // dummy
00897   return conv;  
00898 }


Member Data Documentation

Initial value:

 { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
                                                        10, 11, 12, 13, 14, 15, 16, 17, 18, 19}
The Hex20 node map. Use this map for serendipity hexahedral elements in 3D.

Definition at line 771 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::hex27_face_map = {1, 2, 3, 4, 0, 5} [static]

Maps the Exodus face numbering for 27-noded hexahedrals. Useful for reading sideset information.

Definition at line 832 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::hex27_inverse_face_map = {5, 1, 2, 3, 4, 6} [static]

Maps the Exodus face numbering for 27-noded hexahedrals. Useful for writing sideset information.

Definition at line 862 of file exodusII_io_helper.h.

Referenced by assign_conversion().

Initial value:

 {
  
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  
  21, 25, 24, 26, 23, 22, 20}
The Hex27 node map. Use this map for bi-quadratic hexahedral elements in 3D.

Definition at line 778 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::hex8_node_map = {0, 1, 2, 3, 4, 5, 6, 7} [static]

3D maps. These define mappings from ExodusII-formatted element numberings. The Hex8 node map. Use this map for bi-linear hexahedral elements in 3D.

Definition at line 764 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::hex_face_map = {1, 2, 3, 4, 0, 5} [static]

3D face maps. Are these ever used for anything? Maps the Exodus face numbering for general hexahedrals. Useful for reading sideset information.

Definition at line 826 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::hex_inverse_face_map = {5, 1, 2, 3, 4, 6} [static]

Maps the Exodus face numbering for general hexahedrals. Useful for writing sideset information.

Definition at line 856 of file exodusII_io_helper.h.

Referenced by assign_conversion().

Initial value:

 {0, 1, 2, 3, 4, 5, 6,  7,  8,  9,
                                                                     10, 11, 12, 13, 14}
The Prism15 node map. Use this map for "serendipity" prisms in 3D.

Definition at line 803 of file exodusII_io_helper.h.

Referenced by assign_conversion().

Initial value:

 {0, 1, 2, 3, 4, 5, 6,  7,  8,  9,
                                                                     10, 11, 12, 13, 14, 15, 16, 17}
The Prism18 node map.

Definition at line 808 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::prism6_node_map = {0, 1, 2, 3, 4, 5} [static]

The Prism6 node map.

Definition at line 797 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::prism_face_map = {-1,-1,-1,-1,-1} [static]

Maps the Exodus face numbering for general prisms. Useful for reading sideset information.

Definition at line 844 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::prism_inverse_face_map = {-1,-1,-1,-1,-1} [static]

Maps the Exodus face numbering for general prisms. Useful for writing sideset information.

Definition at line 874 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::pyramid5_node_map = {0, 1, 2, 3, 4} [static]

The Pyramid5 node map. Use this map for linear pyramid elements in 3D.

Definition at line 815 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::pyramid_face_map = {-1,-1,-1,-1,-1} [static]

Maps the Exodus face numbering for general pyramids. Useful for reading sideset information.

Definition at line 850 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::pyramid_inverse_face_map = {-1,-1,-1,-1,-1} [static]

Maps the Exodus face numbering for general pyramids. Useful for writing sideset information.

Definition at line 880 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::quad4_node_map = {0, 1, 2, 3} [static]

2D node maps. These define mappings from ExodusII-formatted element numberings. The Quad4 node map. Use this map for bi-linear quadrilateral elements in 2D.

Definition at line 695 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::quad8_node_map = {0, 1, 2, 3, 4, 5, 6, 7} [static]

The Quad8 node map. Use this map for serendipity quadrilateral elements in 2D.

Definition at line 702 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::quad9_node_map = {0, 1, 2, 3, 4, 5, 6, 7, 8} [static]

The Quad9 node map. Use this map for bi-quadratic quadrilateral elements in 2D.

Definition at line 709 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::quad_edge_map = {0, 1, 2, 3} [static]

Maps the Exodus edge numbering for quadrilaterals. Useful for reading sideset information.

Definition at line 739 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::quad_inverse_edge_map = {1, 2, 3, 4} [static]

Maps the Exodus edge numbering for quadrilaterals. Useful for writing sideset information.

Definition at line 751 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::tet10_node_map = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} [static]

The Tet10 node map. Use this map for quadratic tetrahedral elements in 3D.

Definition at line 792 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::tet4_node_map = {0, 1, 2, 3} [static]

The Tet4 node map. Use this map for linear tetrahedral elements in 3D.

Definition at line 785 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::tet_face_map = {1, 2, 3, 0} [static]

Maps the Exodus face numbering for general tetrahedrals. Useful for reading sideset information.

Definition at line 838 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::tet_inverse_face_map = {4, 1, 2, 3} [static]

Maps the Exodus face numbering for general tetrahedrals. Useful for writing sideset information.

Definition at line 868 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::tri3_node_map = {0, 1, 2} [static]

The Tri3 node map. Use this map for linear triangles in 2D.

Definition at line 716 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::tri6_node_map = {0, 1, 2, 3, 4, 5} [static]

The Tri6 node map. Use this map for quadratic triangular elements in 2D.

Definition at line 723 of file exodusII_io_helper.h.

Referenced by assign_conversion().

const int ExodusII_IO_Helper::ElementMaps::tri_edge_map = {0, 1, 2} [static]

2D edge maps Maps the Exodus edge numbering for triangles. Useful for reading sideset information.

Definition at line 733 of file exodusII_io_helper.h.

Referenced by assign_conversion().

Maps the Exodus edge numbering for triangles. Useful for writing sideset information.

Definition at line 745 of file exodusII_io_helper.h.

Referenced by assign_conversion().


The documentation for this class was generated from the following files:

Site Created By: libMesh Developers
Last modified: November 25 2009 03:44:12.

Hosted By:
SourceForge.net Logo