| 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.