shards
Version of the Day
|
Provide input checked access (in debug mode) to cell topology data and a procedure to create custom cell topologies. More...
#include <Shards_CellTopology.hpp>
Safe query methods | |
unsigned | getDimension () const |
Dimension of this cell topology. | |
unsigned | getKey () const |
Unique key for this cell topology; under certain subcell uniformity conditions. More... | |
unsigned | getBaseKey () const |
Unique key for this cell's base topology; under certain subcell uniformity conditions. More... | |
const char * | getName () const |
Unique name for this cell topology;. More... | |
const char * | getBaseName () const |
Unique name for this cell's base topology. More... | |
unsigned | getNodeCount () const |
Node count of this cell topology. | |
unsigned | getVertexCount () const |
Vertex count of this cell topology. | |
unsigned | getEdgeCount () const |
Edge boundary subcell count of this cell topology. | |
unsigned | getFaceCount () const |
Face boundary subcell count of this cell topology. | |
unsigned | getSideCount () const |
Side boundary subcell count of this cell topology. | |
bool | isValid () const |
This cell's raw topology data. | |
const CellTopologyData * | getCellTopologyData () const |
This cell's raw topology data. | |
const CellTopologyData * | getBaseCellTopologyData () const |
This cell's base cell topology's raw topology data. | |
const CellTopologyData * | getCellTopologyData (const unsigned subcell_dim, const unsigned subcell_ord) const |
Raw cell topology data for a subcell of the given dimension and ordinal. More... | |
const CellTopologyData * | getBaseCellTopologyData (const unsigned subcell_dim, const unsigned subcell_ord) const |
Raw cell topology data for the base topology of a subcell of the given dimension and ordinal. More... | |
unsigned | getKey (const unsigned subcell_dim, const unsigned subcell_ord) const |
Key of a subcell of the given dimension and ordinal. More... | |
const char * | getName (const unsigned subcell_dim, const unsigned subcell_ord) const |
Name of a subcell of the given dimension and ordinal. More... | |
unsigned | getNodeCount (const unsigned subcell_dim, const unsigned subcell_ord) const |
Node count of a subcell of the given dimension and ordinal. More... | |
unsigned | getVertexCount (const unsigned subcell_dim, const unsigned subcell_ord) const |
Vertex count of a subcell of the given dimension and ordinal. More... | |
unsigned | getEdgeCount (const unsigned subcell_dim, const unsigned subcell_ord) const |
Edge count of a subcell of the given dimension and ordinal. More... | |
unsigned | getSideCount (const unsigned subcell_dim, const unsigned subcell_ord) const |
Side count of a subcell of the given dimension and ordinal. More... | |
unsigned | getSubcellCount (const unsigned subcell_dim) const |
Subcell count of subcells of the given dimension. More... | |
bool | getSubcellHomogeneity (const unsigned subcell_dim) const |
Query if all subcells of the given dimension have the same cell topology. More... | |
unsigned | getNodeMap (const unsigned subcell_dim, const unsigned subcell_ord, const unsigned subcell_node_ord) const |
Mapping from a subcell's node ordinal to a node ordinal of this parent cell topology. More... | |
unsigned | getNodePermutationCount () const |
Number of node permutations defined for this cell. | |
unsigned | getNodePermutation (const unsigned permutation_ord, const unsigned node_ord) const |
Permutation of a cell's node ordinals. More... | |
unsigned | getNodePermutationPolarity (const unsigned permutation_ord) const |
Permutation of a cell's node ordinals. More... | |
unsigned | getNodePermutationInverse (const unsigned permutation_ord, const unsigned node_ord) const |
Inverse permutation of a cell's node ordinals. More... | |
Constructors and destructor | |
CellTopology (const CellTopologyData *cell) | |
Wrapper for safe access to a raw cell topology data. More... | |
CellTopology (const std::string &name, const unsigned nodeCount) | |
Constructs custom 1-cell (line) with base topology Line<>. Example use: the statement. More... | |
CellTopology (const std::string &name, const unsigned vertex_count, const unsigned node_count, const std::vector< const CellTopologyData * > &edges, const std::vector< unsigned > &edge_node_map, const CellTopologyData *base=NULL) | |
Construct custom 2-cell (polygon) from a list of edges. The default base topology is the specified custom cell topology. More... | |
CellTopology (const std::string &name, const unsigned vertex_count, const unsigned node_count, const std::vector< const CellTopologyData * > &edges, const std::vector< unsigned > &edge_node_map, const std::vector< const CellTopologyData * > &faces, const std::vector< unsigned > &face_node_map, const CellTopologyData *base=NULL) | |
Construct custom 3-cell (polyhedron) from a list of edges and sides. The default base topology is the specified custom cell topology. More... | |
CellTopology & | operator= (const CellTopology &right) |
Assignment operator *this = right. | |
CellTopology (const CellTopology &right) | |
Copy constructor. | |
CellTopology () | |
Default constructor initializes to NULL. | |
~CellTopology () | |
Destructor. | |
Provide input checked access (in debug mode) to cell topology data and a procedure to create custom cell topologies.
Input checking is compiled in when the HAVE_SHARDS_DEBUG macro is defined.
Two kinds of CellTopology objects are used: (1) wrappers for the predefined basic cell topologies and (2) temporary custom cell topologies.
A temporary custom cell topology is created by a calling code, passed to a computational kernel such as those supplied by Intrepid, and then discarded. The use case is discretization function evaluations on a arbitrary polyhedon mesh does not have standard or consistent cell topologies.
Definition at line 167 of file Shards_CellTopology.hpp.
|
inline |
Wrapper for safe access to a raw cell topology data.
cell | [in] - pointer to raw cell topology Example use: the statements CellTopology myTri_3 ( getCellTopologyData< Triangle<3> >() )
CellTopology myTet_10( getCellTopologyData< Tetrahedron<10>() );
|
Definition at line 520 of file Shards_CellTopology.hpp.
shards::CellTopology::CellTopology | ( | const std::string & | name, |
const unsigned | nodeCount | ||
) |
Constructs custom 1-cell (line) with base topology Line<>. Example use: the statement.
defines custom line with 4 nodes.
shards::CellTopology::CellTopology | ( | const std::string & | name, |
const unsigned | vertex_count, | ||
const unsigned | node_count, | ||
const std::vector< const CellTopologyData * > & | edges, | ||
const std::vector< unsigned > & | edge_node_map, | ||
const CellTopologyData * | base = NULL |
||
) |
Construct custom 2-cell (polygon) from a list of edges. The default base topology is the specified custom cell topology.
name | [in] - descriptive name of the custom 2-cell |
vertex_count | [in] - number of vertices in the custom 2-cell |
node_count | [in] - number of nodes in the custom 2-cell |
edges | [in] - raw CellTopologyData for each edge (can be different!) |
edge_node_map | [in] - flat array with node maps for each edge |
base | [in] - CellTopologyData of the base topology |
shards::CellTopology::CellTopology | ( | const std::string & | name, |
const unsigned | vertex_count, | ||
const unsigned | node_count, | ||
const std::vector< const CellTopologyData * > & | edges, | ||
const std::vector< unsigned > & | edge_node_map, | ||
const std::vector< const CellTopologyData * > & | faces, | ||
const std::vector< unsigned > & | face_node_map, | ||
const CellTopologyData * | base = NULL |
||
) |
Construct custom 3-cell (polyhedron) from a list of edges and sides. The default base topology is the specified custom cell topology.
name | [in] - descriptive name of the custom 3-cell |
vertex_count | [in] - number of vertices in the custom 3-cell |
node_count | [in] - number of nodes in the custom 3-cell |
edges | [in] - raw CellTopologyData for each edge (can be different!) |
edge_node_map | [in] - flat array with node maps for each edge |
faces | [in] - raw CellTopologyData for each face (can be different!) |
face_node_map | [in] - flat array with node maps for each face |
base | [in] - CellTopologyData of the base topology |
|
inline |
Unique key for this cell topology; under certain subcell uniformity conditions.
The key is only guaranteed to be unique for predefined cell topologies.
Definition at line 228 of file Shards_CellTopology.hpp.
|
inline |
Unique key for this cell's base topology; under certain subcell uniformity conditions.
The key is only guaranteed to be unique for predefined cell topologies.
Definition at line 240 of file Shards_CellTopology.hpp.
|
inline |
Unique name for this cell topology;.
The name is only guaranteed to be unique for predefined cell topologies. A calling code may construct custom cell topologies with arbitrary names.
Definition at line 253 of file Shards_CellTopology.hpp.
|
inline |
Unique name for this cell's base topology.
Definition at line 263 of file Shards_CellTopology.hpp.
|
inline |
Raw cell topology data for a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 332 of file Shards_CellTopology.hpp.
|
inline |
Raw cell topology data for the base topology of a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 347 of file Shards_CellTopology.hpp.
|
inline |
Key of a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 358 of file Shards_CellTopology.hpp.
|
inline |
Name of a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 370 of file Shards_CellTopology.hpp.
|
inline |
Node count of a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 381 of file Shards_CellTopology.hpp.
|
inline |
Vertex count of a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 392 of file Shards_CellTopology.hpp.
|
inline |
Edge count of a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 403 of file Shards_CellTopology.hpp.
|
inline |
Side count of a subcell of the given dimension and ordinal.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
Definition at line 414 of file Shards_CellTopology.hpp.
|
inline |
Subcell count of subcells of the given dimension.
subcell_dim | [in] - spatial dimension of the subcell |
Definition at line 424 of file Shards_CellTopology.hpp.
|
inline |
Query if all subcells of the given dimension have the same cell topology.
subcell_dim | [in] - spatial dimension of the subcell |
Definition at line 436 of file Shards_CellTopology.hpp.
|
inline |
Mapping from a subcell's node ordinal to a node ordinal of this parent cell topology.
subcell_dim | [in] - spatial dimension of the subcell |
subcell_ord | [in] - subcell ordinal |
subcell_node_ord | [in] - node ordinal relative to subcell |
Definition at line 450 of file Shards_CellTopology.hpp.
|
inline |
Permutation of a cell's node ordinals.
permutation_ordinal | [in] |
node_ordinal | [in] |
Definition at line 473 of file Shards_CellTopology.hpp.
|
inline |
Permutation of a cell's node ordinals.
permutation_ordinal | [in] |
node_ordinal | [in] |
Definition at line 485 of file Shards_CellTopology.hpp.
|
inline |
Inverse permutation of a cell's node ordinals.
permutation_ordinal | [in] |
node_ordinal | [in] |
Definition at line 496 of file Shards_CellTopology.hpp.