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 */1516#ifndef MOAB_EXOII_INTERFACE_HPP17#define MOAB_EXOII_INTERFACE_HPP1819#include"moab/Types.hpp"20#include"moab/Compiler.hpp"2122namespace moab
23 {
2425enumExoIIElementType26 {
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 };
7677classExoIIInterface78 {
79public:
80enum81 {
82 MAX_STR_LENGTH = 33,
83 MAX_LINE_LENGTH = 8084 };
8586ExoIIInterface() {}
87virtual ~ExoIIInterface() {}
8889//! given the element name, return the type90virtual ExoIIElementType element_name_to_type( constchar* name )= 0;
9192//! 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 an94//! individual entity.95virtual ExoIIElementType get_element_type( EntityHandle entity,
96 Tag mid_nodes_tag,
97 Tag geom_dimension_tag,
98 EntityType indiv_entity_type = MBMAXTYPE )= 0;
99100virtualinthas_mid_nodes( ExoIIElementType elem_type, int dimension )= 0;
101virtualvoidhas_mid_nodes( ExoIIElementType elem_type, int* array )= 0;
102103virtualconstchar* element_type_name( ExoIIElementType type )= 0;
104105//! return the geometric dimension of the specified element type106virtualintgeometric_dimension( const ExoIIElementType elem_type )= 0;
107 };
108109 } // namespace moab110111#endif