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
ExoIIInterface.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 MOAB_EXOII_INTERFACE_HPP 17 #define MOAB_EXOII_INTERFACE_HPP 18  19 #include "moab/Types.hpp" 20 #include "moab/Compiler.hpp" 21  22 namespace moab 23 { 24  25 enum ExoIIElementType 26 { 27  EXOII_SPHERE = 0, 28  EXOII_SPRING, 29  EXOII_BAR, 30  EXOII_BAR2, 31  EXOII_BAR3, 32  EXOII_BEAM, 33  EXOII_BEAM2, 34  EXOII_BEAM3, 35  EXOII_TRUSS, 36  EXOII_TRUSS2, 37  EXOII_TRUSS3, 38  EXOII_TRI, 39  EXOII_TRI3, 40  EXO_SHELL3, 41  EXOII_TRI6, 42  EXOII_TRI7, 43  EXOII_QUAD, 44  EXOII_QUAD4, 45  EXOII_QUAD5, 46  EXOII_QUAD8, 47  EXOII_QUAD9, 48  EXOII_SHELL, 49  EXOII_SHELL4, 50  EXOII_SHELL5, 51  EXOII_SHELL8, 52  EXOII_SHELL9, 53  EXOII_TETRA, 54  EXOII_TETRA4, 55  EXOII_TET4, 56  EXOII_TETRA8, 57  EXOII_TETRA10, 58  EXOII_TETRA14, 59  EXOII_PYRAMID, 60  EXOII_PYRAMID5, 61  EXOII_PYRAMID10, 62  EXOII_PYRAMID13, 63  EXOII_PYRAMID18, 64  EXOII_WEDGE, 65  EXOII_KNIFE, 66  EXOII_HEX, 67  EXOII_HEX8, 68  EXOII_HEX9, 69  EXOII_HEX20, 70  EXOII_HEX27, 71  EXOII_HEXSHELL, 72  EXOII_POLYGON, 73  EXOII_POLYHEDRON, 74  EXOII_MAX_ELEM_TYPE 75 }; 76  77 class ExoIIInterface 78 { 79  public: 80  enum 81  { 82  MAX_STR_LENGTH = 33, 83  MAX_LINE_LENGTH = 80 84  }; 85  86  ExoIIInterface() {} 87  virtual ~ExoIIInterface() {} 88  89  //! given the element name, return the type 90  virtual ExoIIElementType element_name_to_type( const char* name ) = 0; 91  92  //! get the element type of the entity; this entity can either be a meshset, 93  //! in which case it will be assumed to be a material set meshset, or an 94  //! individual entity. 95  virtual ExoIIElementType get_element_type( EntityHandle entity, 96  Tag mid_nodes_tag, 97  Tag geom_dimension_tag, 98  EntityType indiv_entity_type = MBMAXTYPE ) = 0; 99  100  virtual int has_mid_nodes( ExoIIElementType elem_type, int dimension ) = 0; 101  virtual void has_mid_nodes( ExoIIElementType elem_type, int* array ) = 0; 102  103  virtual const char* element_type_name( ExoIIElementType type ) = 0; 104  105  //! return the geometric dimension of the specified element type 106  virtual int geometric_dimension( const ExoIIElementType elem_type ) = 0; 107 }; 108  109 } // namespace moab 110  111 #endif