33 #ifndef IOSS_Ioss_Element_Topology_h 34 #define IOSS_Ioss_Element_Topology_h 41 class ElementTopology;
48 using ETM_VP = ElementTopologyMap::value_type;
54 ElementTopologyMap::iterator
begin() {
return m_registry.begin(); }
55 ElementTopologyMap::iterator
end() {
return m_registry.end(); }
56 ElementTopologyMap::iterator
find(
const std::string &type) {
return m_registry.find(type); }
75 void alias(
const std::string &base,
const std::string &syn);
76 bool is_alias(
const std::string &my_alias)
const;
83 const std::string &
name()
const {
return name_; }
102 virtual bool is_element()
const;
103 virtual int spatial_dimension()
const = 0;
104 virtual int parametric_dimension()
const = 0;
105 virtual int order()
const = 0;
107 virtual bool edges_similar()
const;
108 virtual bool faces_similar()
const;
110 virtual int number_corner_nodes()
const = 0;
111 virtual int number_nodes()
const = 0;
112 virtual int number_edges()
const = 0;
113 virtual int number_faces()
const = 0;
114 int number_boundaries()
const;
116 virtual int number_nodes_edge(
int edge = 0)
const = 0;
117 virtual int number_nodes_face(
int face = 0)
const = 0;
118 virtual int number_edges_face(
int face = 0)
const = 0;
120 IntVector boundary_connectivity(
int edge_number)
const;
121 virtual IntVector edge_connectivity(
int edge_number)
const = 0;
122 virtual IntVector face_connectivity(
int face_number)
const = 0;
123 virtual IntVector element_connectivity()
const = 0;
130 virtual IntVector face_edge_connectivity(
int face_number)
const;
131 IntVector element_edge_connectivity()
const;
137 static ElementTopology *factory(
const std::string &type,
bool ok_to_fail =
false);
139 static unsigned int get_unique_id(
const std::string &type);
140 static int describe(
NameList *names);
143 ElementTopology(std::string type, std::string master_elem_name,
bool delete_me =
false);
std::vector< std::string > NameList
Definition: Ioss_CodeTypes.h:44
Represents an element topology.
Definition: Ioss_ElementTopology.h:72
std::map< std::string, std::string > customFieldTypes
Definition: Ioss_ElementTopology.h:59
const std::string name_
Definition: Ioss_ElementTopology.h:146
The main namespace for the Ioss library.
Definition: Iocgns_DatabaseIO.h:50
std::vector< int > IntVector
Definition: Ioss_CodeTypes.h:42
std::string master_element_name() const
Definition: Ioss_ElementTopology.h:88
ElementTopologyMap::iterator find(const std::string &type)
Definition: Ioss_ElementTopology.h:56
Definition: Ioss_ElementTopology.h:50
Ioss::ElementTopologyMap m_registry
Definition: Ioss_ElementTopology.h:62
ElementShape
Definition: Ioss_ElementTopology.h:45
ElementTopologyMap::value_type ETM_VP
Definition: Ioss_ElementTopology.h:48
std::vector< Ioss::ElementTopology * > m_deleteThese
Definition: Ioss_ElementTopology.h:63
const std::string masterElementName_
Definition: Ioss_ElementTopology.h:147
const std::string & name() const
Definition: Ioss_ElementTopology.h:83
ElementTopologyMap::iterator begin()
Definition: Ioss_ElementTopology.h:54
ElementTopologyMap::iterator end()
Definition: Ioss_ElementTopology.h:55
std::map< std::string, ElementTopology *, std::less< std::string > > ElementTopologyMap
Definition: Ioss_ElementTopology.h:47