Poster of Linux kernelThe best gift for a Linux geek
ExodusII_IO_Helper::ElementMaps

ExodusII_IO_Helper::ElementMaps

Section: C Library Functions (3) Updated: Thu Apr 7 2011
Local index Up
 

NAME

ExodusII_IO_Helper::ElementMaps -  

SYNOPSIS


#include <exodusII_io_helper.h>  

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.

{}
 

Member Function Documentation

 

ExodusII_IO_Helper::Conversion ExodusII_IO_Helper::ElementMaps::assign_conversion (const std::stringtype_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().

{
  // ExodusII defines the following types in contrib/exodusii/Lib/include/exodusII_int.h
  // UNK         =  -1     
  // NULL_ELEMENT=   0     
  // TRIANGLE    =   1     
  // QUAD        =   2     
  // HEX         =   3     
  // WEDGE       =   4     
  // TETRA       =   5     
  // TRUSS       =   6     
  // BEAM        =   7     
  // SHELL       =   8     
  // SPHERE      =   9     
  // CIRCLE      =  10     
  // TRISHELL    =  11     
  // PYRAMID     =  12      
  
  if ((type_str == 'QUAD4') || (type_str == 'QUAD') || (type_str == 'quad'))
    return assign_conversion(QUAD4);

  else if (type_str == 'QUAD8')
    return assign_conversion(QUAD8);

  else if (type_str == 'QUAD9')
    return assign_conversion(QUAD9);

  else if ((type_str == 'TRI3') || (type_str == 'TRIANGLE') || (type_str == 'TRI') || (type_str == 'tri'))
    return assign_conversion(TRI3);

  else if (type_str == 'TRI6')
    return assign_conversion(TRI6);

  else if ((type_str == 'HEX8') || (type_str == 'HEX') || (type_str=='hex8')) 
    return assign_conversion(HEX8);

  else if (type_str == 'HEX20')
    return assign_conversion(HEX20);

  else if (type_str == 'HEX27')
    return assign_conversion(HEX27);

  else if ((type_str == 'TETRA4') || (type_str == 'TETRA'))
    return assign_conversion(TET4);

  else if (type_str == 'TETRA10')
    return assign_conversion(TET10);

  else if (type_str == 'WEDGE')
    return assign_conversion(PRISM6);

  else if (type_str == 'WEDGE15')
    return assign_conversion(PRISM15);

  else if (type_str == 'WEDGE18')
    return assign_conversion(PRISM18);

  else if (type_str == 'PYRAMID' || type_str == 'PYRAMID5')
    return assign_conversion(PYRAMID5);

  else
    {
      std::cerr << 'ERROR! Unrecognized element type_str: ' << type_str << std::endl;
      libmesh_error();
    }

  libmesh_error();
  
  const Conversion conv(tri3_node_map, tri_edge_map, tri_inverse_edge_map, TRI3,'TRI3'); // dummy
  return conv;  
}
 

ExodusII_IO_Helper::Conversion ExodusII_IO_Helper::ElementMaps::assign_conversion (const ElemTypetype)Returns:

a conversion object given an element type.

Definition at line 902 of file exodusII_io_helper.C.

References 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, and libMeshEnums::TRI6.

{
  switch (type)
    {

    case QUAD4:
      {
        const Conversion conv(quad4_node_map, quad_edge_map, quad_inverse_edge_map, QUAD4, 'QUAD4');
        return conv;
      }

    case QUAD8:
      {
        const Conversion conv(quad8_node_map, quad_edge_map, quad_inverse_edge_map, QUAD8, 'QUAD8');
        return conv;
      }
      
    case QUAD9:
      {
        const Conversion conv(quad9_node_map, quad_edge_map, quad_inverse_edge_map, QUAD9, 'QUAD9');
        return conv;
      }
      
    case TRI3:
      {
        const Conversion conv(tri3_node_map, tri_edge_map, tri_inverse_edge_map, TRI3, 'TRI3');
        return conv;
      }
      
    case TRI6:
      {
        const Conversion conv(tri6_node_map, tri_edge_map, tri_inverse_edge_map, TRI6, 'TRI6');
        return conv;
      }
      
    case HEX8:
      {
        const Conversion conv(hex8_node_map, hex_face_map, hex_inverse_face_map, HEX8, 'HEX8');
        return conv;
      }
      
    case HEX20:
      {
        const Conversion conv(hex20_node_map, hex_face_map, hex_inverse_face_map, HEX20, 'HEX20');
        return conv;
      }
      
    case HEX27:
      {
        const Conversion conv(hex27_node_map, hex27_face_map, hex27_inverse_face_map, HEX27, 'HEX27');
        return conv;
      }
      
    case TET4:
      {
        const Conversion conv(tet4_node_map, tet_face_map, tet_inverse_face_map, TET4, 'TETRA4');
        return conv;
      }
      
    case TET10:
      {
        const Conversion conv(tet10_node_map, tet_face_map, tet_inverse_face_map, TET10, 'TETRA10');
        return conv;
      }

    case PRISM6:
      {
        const Conversion conv(prism6_node_map, prism_face_map, prism_inverse_face_map, PRISM6, 'WEDGE');
        return conv;
      }

    case PRISM15:
      {
        const Conversion conv(prism15_node_map, prism_face_map, prism_inverse_face_map, PRISM15, 'WEDGE15');
        return conv;
      }

    case PRISM18:
      {
        const Conversion conv(prism18_node_map, prism_face_map, prism_inverse_face_map, PRISM18, 'WEDGE18');
        return conv;
      }

    case PYRAMID5:
      {
        const Conversion conv(pyramid5_node_map, pyramid_face_map, pyramid_inverse_face_map, PYRAMID5, 'PYRAMID5');
        return conv;
      }
        
    default:
      libmesh_error();
    }
    
  libmesh_error();
    
  const Conversion conv(tri3_node_map, tri_edge_map, tri_inverse_edge_map, TRI3, 'TRI3'); // dummy
  return conv;  
}
 

Member Data Documentation

 

const int ExodusII_IO_Helper::ElementMaps::hex20_node_map [static]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.  

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.  

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.  

const int ExodusII_IO_Helper::ElementMaps::hex27_node_map [static]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.  

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.  

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.  

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.  

const int ExodusII_IO_Helper::ElementMaps::prism15_node_map [static]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.  

const int ExodusII_IO_Helper::ElementMaps::prism18_node_map [static]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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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.  

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().  

const int ExodusII_IO_Helper::ElementMaps::tri_inverse_edge_map = {1, 2, 3} [static]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().

 

Author

Generated automatically by Doxygen for libMesh from the source code.


 

Index

NAME
SYNOPSIS
Public Member Functions
Static Public Attributes
Detailed Description
Constructor & Destructor Documentation
ExodusII_IO_Helper::ElementMaps::ElementMaps () [inline]Constructor.
Member Function Documentation
ExodusII_IO_Helper::Conversion ExodusII_IO_Helper::ElementMaps::assign_conversion (const std::stringtype_str)Returns:
ExodusII_IO_Helper::Conversion ExodusII_IO_Helper::ElementMaps::assign_conversion (const ElemTypetype)Returns:
Member Data Documentation
const int ExodusII_IO_Helper::ElementMaps::hex20_node_map [static]Initial value:
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.
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.
const int ExodusII_IO_Helper::ElementMaps::hex27_node_map [static]Initial value:
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.
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.
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.
const int ExodusII_IO_Helper::ElementMaps::prism15_node_map [static]Initial value:
const int ExodusII_IO_Helper::ElementMaps::prism18_node_map [static]Initial value:
const int ExodusII_IO_Helper::ElementMaps::prism6_node_map = {0, 1, 2, 3, 4, 5} [static]The Prism6 node map.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
const int ExodusII_IO_Helper::ElementMaps::tri_inverse_edge_map = {1, 2, 3} [static]Maps the Exodus edge numbering for triangles. Useful for writing sideset information.
Author

This document was created by man2html, using the manual pages.
Time: 21:45:45 GMT, April 16, 2011