16#include "ioss_export.h"
41 using ETM_VP = ElementTopologyMap::value_type;
70 void alias(
const std::string &base,
const std::string &syn);
134 bool ok_to_fail =
false);
148 ElementTopology(std::string type, std::string master_elem_name,
bool delete_me =
false);
#define IOSS_NODISCARD
Definition Ioss_CodeTypes.h:55
Definition Ioss_ElementTopology.h:44
std::vector< Ioss::ElementTopology * > m_deleteThese
Definition Ioss_ElementTopology.h:58
IOSS_NODISCARD ElementTopologyMap::iterator find(const std::string &type)
Definition Ioss_ElementTopology.h:49
IOSS_NODISCARD ElementTopologyMap::iterator end()
Definition Ioss_ElementTopology.h:48
IOSS_NODISCARD ElementTopologyMap::iterator begin()
Definition Ioss_ElementTopology.h:47
void insert(const Ioss::ETM_VP &value, bool delete_me)
Definition Ioss_ElementTopology.C:21
Ioss::ElementTopologyMap m_registry
Definition Ioss_ElementTopology.h:57
Definition Ioss_ElementPermutation.h:60
Represents an element topology.
Definition Ioss_ElementTopology.h:68
virtual IOSS_NODISCARD ElementTopology * face_type(int face_number=0) const =0
static const std::string & topology_shape_to_permutation_name(Ioss::ElementShape topoShape)
Definition Ioss_ElementTopology.C:405
virtual IOSS_NODISCARD ElementShape shape() const =0
IOSS_NODISCARD const std::string & name() const
Definition Ioss_ElementTopology.h:78
virtual IOSS_NODISCARD int number_corner_nodes() const =0
virtual IOSS_NODISCARD IntVector element_connectivity() const =0
virtual IOSS_NODISCARD bool edges_similar() const
Definition Ioss_ElementTopology.C:64
IOSS_NODISCARD ElementTopology * boundary_type(int face_number=0) const
Definition Ioss_ElementTopology.C:302
static IOSS_NODISCARD ElementTopology * factory(const std::string &type, bool ok_to_fail=false)
Definition Ioss_ElementTopology.C:67
virtual IOSS_NODISCARD bool validate_permutation_nodes() const
Definition Ioss_ElementTopology.h:149
virtual IOSS_NODISCARD bool is_element() const
Definition Ioss_ElementTopology.C:222
IOSS_NODISCARD IntVector element_edge_connectivity() const
Definition Ioss_ElementTopology.C:201
virtual IOSS_NODISCARD bool faces_similar() const
Definition Ioss_ElementTopology.C:65
ElementTopology(const ElementTopology &)=delete
virtual IOSS_NODISCARD int number_nodes() const =0
virtual IOSS_NODISCARD int number_edges() const =0
virtual IOSS_NODISCARD int number_edges_face(int face=0) const =0
virtual IOSS_NODISCARD int order() const =0
virtual IOSS_NODISCARD int number_nodes_face(int face=0) const =0
const std::string name_
Definition Ioss_ElementTopology.h:153
virtual IOSS_NODISCARD IntVector face_edge_connectivity(int face_number) const
Definition Ioss_ElementTopology.C:186
virtual IOSS_NODISCARD int parametric_dimension() const =0
IOSS_NODISCARD int number_boundaries() const
Definition Ioss_ElementTopology.C:229
static int describe(NameList *names)
Get the names of element topologies known to Ioss.
Definition Ioss_ElementTopology.C:176
IOSS_NODISCARD std::string master_element_name() const
Definition Ioss_ElementTopology.h:83
IOSS_NODISCARD bool equal(const Ioss::ElementTopology &rhs) const
Definition Ioss_ElementTopology.C:377
const std::string masterElementName_
Definition Ioss_ElementTopology.h:154
virtual ~ElementTopology()=default
virtual IOSS_NODISCARD const std::string & base_topology_permutation_name() const
Definition Ioss_ElementTopology.C:399
virtual IOSS_NODISCARD int spatial_dimension() const =0
IOSS_NODISCARD bool is_alias(const std::string &my_alias) const
Definition Ioss_ElementTopology.C:212
IOSS_NODISCARD bool operator!=(const Ioss::ElementTopology &rhs) const
Definition Ioss_ElementTopology.C:372
static IOSS_NODISCARD unsigned int get_unique_id(const std::string &type)
Definition Ioss_ElementTopology.C:139
IOSS_NODISCARD IntVector boundary_connectivity(int edge_number) const
Definition Ioss_ElementTopology.C:262
virtual IOSS_NODISCARD bool is_shell() const =0
virtual IOSS_NODISCARD int number_faces() const =0
IOSS_NODISCARD bool operator==(const Ioss::ElementTopology &rhs) const
Definition Ioss_ElementTopology.C:367
virtual IOSS_NODISCARD int number_nodes_edge(int edge=0) const =0
virtual IOSS_NODISCARD ElementTopology * edge_type(int edge_number=0) const =0
static ETRegistry & registry()
Definition Ioss_ElementTopology.C:58
virtual IOSS_NODISCARD IntVector edge_connectivity(int edge_number) const =0
void alias(const std::string &base, const std::string &syn)
Definition Ioss_ElementTopology.C:49
virtual IOSS_NODISCARD IntVector face_connectivity(int face_number) const =0
IOSS_NODISCARD ElementPermutation * permutation() const
Definition Ioss_ElementTopology.C:382
ElementTopology & operator=(const ElementTopology &)=delete
The main namespace for the Ioss library.
Definition Ioad_DatabaseIO.C:40
ElementShape
Definition Ioss_ElementTopology.h:24
@ LINE
Definition Ioss_ElementTopology.h:28
@ TET
Definition Ioss_ElementTopology.h:32
@ SPRING
Definition Ioss_ElementTopology.h:29
@ TRI
Definition Ioss_ElementTopology.h:30
@ WEDGE
Definition Ioss_ElementTopology.h:34
@ HEX
Definition Ioss_ElementTopology.h:35
@ UNKNOWN
Definition Ioss_ElementTopology.h:25
@ SPHERE
Definition Ioss_ElementTopology.h:27
@ POINT
Definition Ioss_ElementTopology.h:26
@ QUAD
Definition Ioss_ElementTopology.h:31
@ PYRAMID
Definition Ioss_ElementTopology.h:33
@ SUPER
Definition Ioss_ElementTopology.h:36
std::map< std::string, ElementTopology *, std::less<> > ElementTopologyMap
Definition Ioss_ElementTopology.h:40
std::vector< int > IntVector
Definition Ioss_CodeTypes.h:21
Ioss::NameList NameList
Definition Ioss_ChangeSetFactory.h:25
std::map< ElementShape, std::string > ElementShapeMap
Definition Ioss_ElementTopology.h:39
ElementTopologyMap::value_type ETM_VP
Definition Ioss_ElementTopology.h:41