Information about different element topologies. More...
#include <TopologyInfo.hpp>
Static Public Member Functions | |
static unsigned | dimension (EntityTopology topo) |
Dimension of element topology. More... | |
static unsigned | adjacent (EntityTopology topo, unsigned dimension) |
Number of adjacent entities of a specified dimension. More... | |
static unsigned | sides (EntityTopology topo) |
Get number of sides a given topology type has. More... | |
static unsigned | corners (EntityTopology topo) |
Get the number of defining vertices for a given element topology. More... | |
static unsigned | edges (EntityTopology topo) |
Get the number of edges in a given topology. More... | |
static unsigned | faces (EntityTopology topo) |
Get the number of faces in a given topology. More... | |
static void | higher_order (EntityTopology topo, unsigned num_nodes, bool &midedge, bool &midface, bool &midvol, MsqError &err) |
Check which mid-nodes a higher-order element has. More... | |
static const unsigned * | edge_vertices (EntityTopology topo, unsigned edge_number, MsqError &err) |
Get indices of edge ends in element connectivity array. More... | |
static const unsigned * | face_vertices (EntityTopology topo, unsigned face_number, unsigned &num_vertices_out, MsqError &err) |
Get face corner indices in element connectivity array. More... | |
static const unsigned * | side_vertices (EntityTopology topo, unsigned side_dimension, unsigned side_number, unsigned &num_verts_out, MsqError &err) |
Get corner indices of side. More... | |
static void | side_number (EntityTopology topo, unsigned connectivity_length, unsigned node_index, unsigned &side_dimension_out, unsigned &side_number_out, MsqError &err) |
Return which side the specified mid-node lies on. More... | |
static unsigned | dimension (EntityTopology topo) |
Dimension of element topology. More... | |
static unsigned | adjacent (EntityTopology topo, unsigned dimension) |
Number of adjacent entities of a specified dimension. More... | |
static unsigned | sides (EntityTopology topo) |
Get number of sides a given topology type has. More... | |
static unsigned | corners (EntityTopology topo) |
Get the number of defining vertices for a given element topology. More... | |
static unsigned | edges (EntityTopology topo) |
Get the number of edges in a given topology. More... | |
static unsigned | faces (EntityTopology topo) |
Get the number of faces in a given topology. More... | |
static void | higher_order (EntityTopology topo, unsigned num_nodes, bool &midedge, bool &midface, bool &midvol, MsqError &err) |
Check which mid-nodes a higher-order element has. More... | |
static const unsigned * | edge_vertices (EntityTopology topo, unsigned edge_number, MsqError &err) |
Get indices of edge ends in element connectivity array. More... | |
static const unsigned * | face_vertices (EntityTopology topo, unsigned face_number, unsigned &num_vertices_out, MsqError &err) |
Get face corner indices in element connectivity array. More... | |
static const unsigned * | side_vertices (EntityTopology topo, unsigned side_dimension, unsigned side_number, unsigned &num_verts_out, MsqError &err) |
Get corner indices of side. More... | |
static void | side_number (EntityTopology topo, unsigned connectivity_length, unsigned node_index, unsigned &side_dimension_out, unsigned &side_number_out, MsqError &err) |
Return which side the specified mid-node lies on. More... | |
Private Types | |
enum | { MAX_EDGES = 12, MAX_FACES = 6, MAX_FACE_CONN = 5, FIRST_FACE = TRIANGLE, LAST_FACE = QUADRILATERAL, FIRST_VOL = TETRAHEDRON, LAST_VOL = PYRAMID } |
enum | { MAX_EDGES = 12, MAX_FACES = 6, MAX_FACE_CONN = 5, FIRST_FACE = TRIANGLE, LAST_FACE = QUADRILATERAL, FIRST_VOL = TETRAHEDRON, LAST_VOL = PYRAMID } |
Private Member Functions | |
TopologyInfo () | |
TopologyInfo () | |
Private Attributes | |
unsigned | dimMap [MIXED] |
Get dimension of entity given topology. More... | |
unsigned | adjMap [MIXED][3] |
Get number of adj entities of dimension 0, 1 and dimension 2. More... | |
unsigned | edgeMap [LAST_VOL-FIRST_FACE+1][MAX_EDGES][2] |
Vertex indices for element edges. More... | |
unsigned | faceMap [LAST_VOL-FIRST_VOL+1][MAX_FACES][MAX_FACE_CONN] |
Vertex indices for element faces. More... | |
Static Private Attributes | |
static TopologyInfo | instance |
Information about different element topologies.
Definition at line 38 of file includeLinks/TopologyInfo.hpp.
|
private |
Enumerator | |
---|---|
MAX_EDGES | |
MAX_FACES | |
MAX_FACE_CONN | |
FIRST_FACE | |
LAST_FACE | |
FIRST_VOL | |
LAST_VOL |
Definition at line 145 of file includeLinks/TopologyInfo.hpp.
|
private |
Enumerator | |
---|---|
MAX_EDGES | |
MAX_FACES | |
MAX_FACE_CONN | |
FIRST_FACE | |
LAST_FACE | |
FIRST_VOL | |
LAST_VOL |
Definition at line 145 of file src/Mesh/TopologyInfo.hpp.
|
private |
Definition at line 38 of file Mesh/TopologyInfo.cpp.
References TopologyInfo::adjMap, TopologyInfo::dimMap, TopologyInfo::edgeMap, TopologyInfo::faceMap, TopologyInfo::FIRST_FACE, TopologyInfo::FIRST_VOL, Mesquite::HEXAHEDRON, Mesquite::POLYGON, Mesquite::POLYHEDRON, Mesquite::PRISM, Mesquite::PYRAMID, Mesquite::QUADRILATERAL, Mesquite::SEPTAHEDRON, Mesquite::TETRAHEDRON, and Mesquite::TRIANGLE.
|
private |
|
inlinestatic |
Number of adjacent entities of a specified dimension.
For a given element topology, get the number of adjacent entities of the specified dimension.
Definition at line 51 of file includeLinks/TopologyInfo.hpp.
References TopologyInfo::adjMap, TopologyInfo::dimension(), TopologyInfo::instance, and Mesquite::MIXED.
Referenced by TopologyInfo::edges(), and TopologyInfo::faces().
|
inlinestatic |
Number of adjacent entities of a specified dimension.
For a given element topology, get the number of adjacent entities of the specified dimension.
Definition at line 51 of file src/Mesh/TopologyInfo.hpp.
References TopologyInfo::adjMap, TopologyInfo::dimension(), TopologyInfo::instance, and Mesquite::MIXED.
|
inlinestatic |
Get the number of defining vertices for a given element topology.
Get the number of corner vertices necessary to define an element of the specified topology. This is the number of nodes a linear element of the specified topology will have.
Definition at line 71 of file includeLinks/TopologyInfo.hpp.
References TopologyInfo::adjMap, TopologyInfo::instance, and Mesquite::MIXED.
Referenced by MeshImplData::clear_element(), MeshImplData::copy_mesh(), MeshImplData::element_topology(), MeanMidNodeMover::loop_over_mesh(), MeshImplData::num_vertex_uses(), MeshImplData::set_element(), TopologyInfo::side_vertices(), and MsqMeshEntity::vertex_count().
|
inlinestatic |
Get the number of defining vertices for a given element topology.
Get the number of corner vertices necessary to define an element of the specified topology. This is the number of nodes a linear element of the specified topology will have.
Definition at line 71 of file src/Mesh/TopologyInfo.hpp.
References TopologyInfo::adjMap, TopologyInfo::instance, and Mesquite::MIXED.
|
inlinestatic |
Dimension of element topology.
Definition at line 43 of file includeLinks/TopologyInfo.hpp.
References TopologyInfo::dimMap, TopologyInfo::instance, and Mesquite::MIXED.
Referenced by TopologyInfo::adjacent(), MeshImplData::has_adjacent_elements(), TopologyInfo::side_vertices(), and MeshImplData::skin().
|
inlinestatic |
Dimension of element topology.
Definition at line 43 of file src/Mesh/TopologyInfo.hpp.
References TopologyInfo::dimMap, TopologyInfo::instance, and Mesquite::MIXED.
|
static |
Get indices of edge ends in element connectivity array.
Definition at line 255 of file Mesh/TopologyInfo.cpp.
References TopologyInfo::edgeMap, TopologyInfo::edges(), TopologyInfo::FIRST_FACE, TopologyInfo::instance, MsqError::INVALID_ARG, TopologyInfo::LAST_VOL, and MSQ_SETERR.
Referenced by TopologyInfo::side_vertices().
|
static |
Get indices of edge ends in element connectivity array.
|
inlinestatic |
Get the number of edges in a given topology.
Definition at line 75 of file src/Mesh/TopologyInfo.hpp.
References TopologyInfo::adjacent().
|
inlinestatic |
Get the number of edges in a given topology.
Definition at line 75 of file includeLinks/TopologyInfo.hpp.
References TopologyInfo::adjacent().
Referenced by TopologyInfo::edge_vertices(), TopologyInfo::higher_order(), and TopologyInfo::side_number().
|
static |
Get face corner indices in element connectivity array.
Definition at line 271 of file Mesh/TopologyInfo.cpp.
References face, TopologyInfo::faceMap, TopologyInfo::faces(), TopologyInfo::FIRST_VOL, TopologyInfo::instance, MsqError::INVALID_ARG, TopologyInfo::LAST_VOL, and MSQ_SETERR.
Referenced by TopologyInfo::side_vertices().
|
static |
Get face corner indices in element connectivity array.
|
inlinestatic |
Get the number of faces in a given topology.
Definition at line 79 of file src/Mesh/TopologyInfo.hpp.
References TopologyInfo::adjacent().
|
inlinestatic |
Get the number of faces in a given topology.
Definition at line 79 of file includeLinks/TopologyInfo.hpp.
References TopologyInfo::adjacent().
Referenced by TopologyInfo::face_vertices(), TopologyInfo::higher_order(), and TopologyInfo::side_number().
|
static |
Check which mid-nodes a higher-order element has.
Assuming at most one mid-node per sub-entity per dimension (i.e. at most one mid-edge node, at most one mid-face node, etc.) determine which mid-nodes are present given the topology and total number of nodes.
|
static |
Check which mid-nodes a higher-order element has.
Assuming at most one mid-node per sub-entity per dimension (i.e. at most one mid-edge node, at most one mid-face node, etc.) determine which mid-nodes are present given the topology and total number of nodes.
Definition at line 205 of file Mesh/TopologyInfo.cpp.
References TopologyInfo::adjMap, TopologyInfo::dimMap, TopologyInfo::edges(), TopologyInfo::faces(), TopologyInfo::instance, MsqError::INVALID_ARG, MsqError::INVALID_STATE, Mesquite::MIXED, and MSQ_SETERR.
|
static |
Return which side the specified mid-node lies on.
Given an non-linear element type (specified by the topology and lenght of the connectiivty array) and the index of a node in the element's connectivity array, return the lower-dimension entity (side) of the element the mid-node lies on.
topo | Element topology |
connectivity_length | Number of nodes in element |
node_index | Which node of the element |
side_dimension_out | The dimension of the side containing the midnode (0 = vertex, 1 = edge, 2 = face, 3 = volume) |
side_number_out | The canonical number of the side |
Definition at line 326 of file Mesh/TopologyInfo.cpp.
References TopologyInfo::adjMap, TopologyInfo::dimMap, TopologyInfo::edges(), TopologyInfo::faces(), TopologyInfo::instance, MsqError::INVALID_ARG, Mesquite::MIXED, and MSQ_SETERR.
Referenced by MeshImplData::copy_higher_order(), and MeanMidNodeMover::loop_over_mesh().
|
static |
Return which side the specified mid-node lies on.
Given an non-linear element type (specified by the topology and lenght of the connectiivty array) and the index of a node in the element's connectivity array, return the lower-dimension entity (side) of the element the mid-node lies on.
topo | Element topology |
connectivity_length | Number of nodes in element |
node_index | Which node of the element |
side_dimension_out | The dimension of the side containing the midnode (0 = vertex, 1 = edge, 2 = face, 3 = volume) |
side_number_out | The canonical number of the side |
|
static |
Get corner indices of side.
Get the indices into element connectivity list for the corners/ends of the specified side of the element. If the passed dimension equals that of the specified topology, the side number is ignored and all the corners of the element are returned. Fails if side dimension greater than the dimension of the specified topology type.
|
static |
Get corner indices of side.
Get the indices into element connectivity list for the corners/ends of the specified side of the element. If the passed dimension equals that of the specified topology, the side number is ignored and all the corners of the element are returned. Fails if side dimension greater than the dimension of the specified topology type.
Definition at line 292 of file Mesh/TopologyInfo.cpp.
References TopologyInfo::corners(), TopologyInfo::dimension(), TopologyInfo::edge_vertices(), TopologyInfo::face_vertices(), MsqError::INVALID_ARG, and MSQ_SETERR.
Referenced by MeshImplData::copy_higher_order(), MeanMidNodeMover::loop_over_mesh(), and MeshImplData::skin().
|
inlinestatic |
Get number of sides a given topology type has.
Get the number of sides for a given element topology. Returns the number of adjacent entities of one less dimension. The number of faces for a volume element and the number of edges for a face element
Definition at line 61 of file src/Mesh/TopologyInfo.hpp.
References TopologyInfo::adjMap, TopologyInfo::dimMap, TopologyInfo::instance, and Mesquite::MIXED.
|
inlinestatic |
Get number of sides a given topology type has.
Get the number of sides for a given element topology. Returns the number of adjacent entities of one less dimension. The number of faces for a volume element and the number of edges for a face element
Definition at line 61 of file includeLinks/TopologyInfo.hpp.
References TopologyInfo::adjMap, TopologyInfo::dimMap, TopologyInfo::instance, and Mesquite::MIXED.
Referenced by MeshImplData::skin().
|
private |
Get number of adj entities of dimension 0, 1 and dimension 2.
Definition at line 156 of file includeLinks/TopologyInfo.hpp.
Referenced by TopologyInfo::adjacent(), TopologyInfo::corners(), TopologyInfo::higher_order(), TopologyInfo::side_number(), TopologyInfo::sides(), and TopologyInfo::TopologyInfo().
|
private |
Get dimension of entity given topology.
Definition at line 155 of file includeLinks/TopologyInfo.hpp.
Referenced by TopologyInfo::dimension(), TopologyInfo::higher_order(), TopologyInfo::side_number(), TopologyInfo::sides(), and TopologyInfo::TopologyInfo().
|
private |
Vertex indices for element edges.
Definition at line 158 of file includeLinks/TopologyInfo.hpp.
Referenced by TopologyInfo::edge_vertices(), and TopologyInfo::TopologyInfo().
|
private |
Vertex indices for element faces.
Definition at line 160 of file includeLinks/TopologyInfo.hpp.
Referenced by TopologyInfo::face_vertices(), and TopologyInfo::TopologyInfo().
|
staticprivate |
Definition at line 164 of file includeLinks/TopologyInfo.hpp.
Referenced by TopologyInfo::adjacent(), TopologyInfo::corners(), TopologyInfo::dimension(), TopologyInfo::edge_vertices(), TopologyInfo::face_vertices(), TopologyInfo::higher_order(), TopologyInfo::side_number(), and TopologyInfo::sides().