| 
    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 | 
| Polarity of a cell's permutation.  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 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 131 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 483 of file Shards_CellTopology.hpp.
| 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 192 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 204 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 217 of file Shards_CellTopology.hpp.
      
  | 
  inline | 
Unique name for this cell's base topology.
Definition at line 227 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 296 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 311 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 322 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 334 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 345 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 356 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 367 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 378 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 388 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 400 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 414 of file Shards_CellTopology.hpp.
      
  | 
  inline | 
Permutation of a cell's node ordinals.
| permutation_ordinal | [in] | 
| node_ordinal | [in] | 
Definition at line 437 of file Shards_CellTopology.hpp.
      
  | 
  inline | 
Polarity of a cell's permutation.
| permutation_ordinal | [in] | 
Definition at line 448 of file Shards_CellTopology.hpp.
      
  | 
  inline | 
Inverse permutation of a cell's node ordinals.
| permutation_ordinal | [in] | 
| node_ordinal | [in] | 
Definition at line 459 of file Shards_CellTopology.hpp.