Mesh Oriented datABase  (version 5.5.0)
An array-based unstructured mesh library
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 
26 {
75 };
76 
78 {
79  public:
80  enum
81  {
83  MAX_LINE_LENGTH = 80
84  };
85 
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.
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