|
shards Version of the Day
|
Topological description of polytope cells (polygons and polyhedrons) in terms of their subcells. More...

Classes | |
| struct | shards::Node |
| Topological traits: Dimension = 0, Vertices = 0, Nodes = 0. More... | |
| struct | shards::Particle |
| Topological traits: Dimension = 0, Vertices = 1, Nodes = 1. More... | |
| struct | shards::Line< NodeCount > |
| Topological traits: Dimension = 1, Vertices = 2, Nodes = 2 or 3. More... | |
| struct | shards::Beam< NodeCount > |
| Topological traits: Dimension = 2, Edges = 1, Vertices = 2, and Nodes = 2 or 3. More... | |
| struct | shards::ShellLine< NodeCount > |
| Topological traits: Dimension = 2, Edges = 2, Vertices = 2, and Nodes = 2 or 3. More... | |
| struct | shards::Triangle< NodeCount > |
| Topological traits: Dimension = 2, Edges = 3, Vertices = 3, and Nodes = 3 or 6. More... | |
| struct | shards::ShellTriangle< NodeCount > |
| Topological traits: Dimension = 3, Sides = 2, Edges = 3, Vertices = 3, and Nodes = 3 or 6. More... | |
| struct | shards::Quadrilateral< NodeCount > |
| Topological traits: Dimension = 2, Edges = 4, Vertices = 4, and Nodes = 4, 8, or 9. More... | |
| struct | shards::ShellQuadrilateral< NodeCount > |
| Topological traits: Dimension = 2, Sides = 2, Edges = 4, Vertices = 4, and Nodes = 4, 8, or 9. More... | |
| struct | shards::Tetrahedron< NodeCount > |
| Topological traits: Dimension = 3, Sides = 4, Edges = 6, Vertices = 4, and Nodes = 4 or 10. More... | |
| struct | shards::Pyramid< NodeCount > |
| Topological traits: Dimension = 3, Sides = 5, Edges = 8, Vertices = 5, and Nodes = 5, 13, or 14. More... | |
| struct | shards::Wedge< NodeCount > |
| Topological traits: Dimension = 3, Sides = 5, Edges = 9, Vertices = 6, and Nodes = 6, 15, or 18. More... | |
| struct | shards::Hexahedron< NodeCount > |
| Topological traits: Dimension = 3, Sides = 6, Edges = 12, Vertices = 8, and Nodes = 8, 20, or 27. More... | |
| class | shards::CellTopology |
| Provide input checked access (in debug mode) to cell topology data and a procedure to create custom cell topologies. More... | |
| struct | CellTopologyData |
| A simple 'C' struct of cell topology attributes. More... | |
| struct | CellTopologyData_Subcell |
| Subcell information. More... | |
| struct | CellTopologyData_Permutation |
| Array of node permutations. More... | |
| struct | shards::CellTopologyTraits< Dimension, Number_Vertex, Number_Node, EdgeList, EdgeMaps, FaceList, FaceMaps, PermutationMaps, PermutationPolarity > |
| Compile-time traits for a cell topology. More... | |
Typedefs | |
| typedef struct CellTopologyData | CellTopologyData |
| Self-typedef. | |
Enumerations | |
| enum | shards::ECellType { ALL_CELLS = 0 , STANDARD_CELL , NONSTANDARD_CELL } |
| Enumeration of cell types in Shards. More... | |
| enum | shards::ETopologyType { ALL_TOPOLOGIES , BASE_TOPOLOGY , EXTENDED_TOPOLOGY } |
| Enumeration of topology types in Shards. More... | |
| enum | { CELL_PERMUTATION_POLARITY_IRRELEVANT = 0 , CELL_PERMUTATION_POLARITY_POSITIVE = 1 , CELL_PERMUTATION_POLARITY_NEGATIVE = 2 } |
| Values for the CellTopologyData_Permutation polarity. More... | |
Functions | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Node > () |
| Singleton for Node topology. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Particle > () |
| Singleton for Particle topology. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Line< 2 > > () |
| Singleton for line topology with two nodes. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Line< 3 > > () |
| Singleton for line topology with three nodes. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Beam< 2 > > () |
| Singleton for beam topology with two nodes. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Beam< 3 > > () |
| Singleton for beam topology with three nodes. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< ShellLine< 2 > > () |
| Singleton for shell-line topology with two nodes. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< ShellLine< 3 > > () |
| Singleton for shell-line topology with three nodes. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Triangle< 3 > > () |
| Return CellTopologyData singleton for the Triangle<3>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Triangle< 6 > > () |
| Return CellTopologyData singleton for the Triangle<6>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Triangle< 4 > > () |
| Return CellTopologyData singleton for the Triangle<4> (Face of Tet8). | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< ShellTriangle< 3 > > () |
| Return CellTopologyData singleton for the ShellTriangle<3>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< ShellTriangle< 6 > > () |
| Return CellTopologyData singleton for the ShellTriangle<6>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Quadrilateral< 4 > > () |
| Return CellTopologyData singleton for the Quadrilateral<4>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Quadrilateral< 8 > > () |
| Return CellTopologyData singleton for the Quadrilateral<8>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Quadrilateral< 9 > > () |
| Return CellTopologyData singleton for the Quadrilateral<9>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< ShellQuadrilateral< 4 > > () |
| Return CellTopologyData singleton for the ShellQuadrilateral<4>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< ShellQuadrilateral< 8 > > () |
| Return CellTopologyData singleton for the ShellQuadrilateral<8>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< ShellQuadrilateral< 9 > > () |
| Return CellTopologyData singleton for the ShellQuadrilateral<9>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Tetrahedron< 4 > > () |
| Return CellTopologyData singleton for the Tetrahedron<4>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Tetrahedron< 10 > > () |
| Return CellTopologyData singleton for the Tetrahedron<10>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Tetrahedron< 8 > > () |
| Return CellTopologyData singleton for the Tetrahedron<8>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Tetrahedron< 11 > > () |
| Return CellTopologyData singleton for the Tetrahedron<11>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Pyramid< 5 > > () |
| Return CellTopologyData singleton for the Pyramid<5>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Pyramid< 13 > > () |
| Return CellTopologyData singleton for the Pyramid<13>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Pyramid< 14 > > () |
| Return CellTopologyData singleton for the Pyramid<14>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Wedge< 6 > > () |
| Return CellTopologyData singleton for the Wedge<6>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Wedge< 15 > > () |
| Return CellTopologyData singleton for the Wedge<15>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Wedge< 18 > > () |
| Return CellTopologyData singleton for the Wedge<18>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Hexahedron< 8 > > () |
| Return CellTopologyData singleton for the Hexahedron<8>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Hexahedron< 20 > > () |
| Return CellTopologyData singleton for the Hexahedron<20>. | |
| template<> | |
| const CellTopologyData * | shards::getCellTopologyData< Hexahedron< 27 > > () |
| Return CellTopologyData singleton for the Hexahedron<27>. | |
| std::ostream & | shards::operator<< (std::ostream &, const CellTopology &) |
| Overloaded << operator for CellTopologyData objects. | |
| std::string | shards::ECellTypeToString (ECellType cellType) |
| std::string | shards::ETopologyTypeToString (ETopologyType topologyType) |
| void | shards::getTopologies (std::vector< shards::CellTopology > &topologies, const unsigned cellDim=4, const ECellType cellType=ALL_CELLS, const ETopologyType topologyType=ALL_TOPOLOGIES) |
| Returns an std::vector with all cell topologies that meet the specified selection flags. | |
| int | shards::isPredefinedCell (const CellTopology &cell) |
| Checks if the cell topology is predefined in shards. | |
| template<typename id_type> | |
| int | shards::findPermutation (const CellTopologyData &top, const id_type *const expected_node, const id_type *const actual_node) |
| template<typename id_type> | |
| int | shards::findPermutation (const CellTopology &top, const id_type *const expected_node, const id_type *const actual_node) |
| void | shards::badCellTopologyKey (const unsigned dimension, const unsigned face_count, const unsigned edge_count, const unsigned vertex_count, const unsigned node_count) |
| Generates detailed message if one or more input parameters are out of their admissible bounds. | |
| unsigned | shards::cellTopologyKey (const unsigned dimension, const unsigned face_count, const unsigned edge_count, const unsigned vertex_count, const unsigned node_count) |
| Generate integer key from topological dimensions. | |
| bool | shards::operator== (const CellTopology &left, const CellTopology &right) |
| bool | shards::operator< (const CellTopology &left, const CellTopology &right) |
| bool | shards::operator!= (const CellTopology &left, const CellTopology &right) |
| int | mapCellFaceEdge (const CellTopologyData *cell_topology, unsigned face_ordinal, unsigned face_edge_ordinal) |
| Map a cell->face->edge ordinal to the cell->edge ordinal. Return -1 for erroneous input. | |
| template<class Traits> | |
| const CellTopologyData * | shards::getCellTopologyData () |
| Return a CellTopology singleton for the given cell topology traits. | |
Topological description of polytope cells (polygons and polyhedrons) in terms of their subcells.
A cell topology defines a polytope in terms of its vertex, edge, and side connectivity. However, a cell topology does not define a geometric realization of that polytope - it does not associate spatial coordinates with any of the vertices.
The dimension of cell topology is the smallest spatial dimension in which that cell can be realized. For example, a tetrahedron or quadrilateral shell can only be realized in a 3D space.
The base cell topology of a polytope associates exactly one 










A subcell 


| typedef struct CellTopologyData CellTopologyData |
Self-typedef.
Definition at line 140 of file Shards_CellTopologyData.h.
| enum shards::ECellType |
Enumeration of cell types in Shards.
Definition at line 45 of file Shards_CellTopology.hpp.
Enumeration of topology types in Shards.
Definition at line 66 of file Shards_CellTopology.hpp.
| anonymous enum |
Values for the CellTopologyData_Permutation polarity.
Definition at line 164 of file Shards_CellTopologyData.h.
| std::ostream & shards::operator<< | ( | std::ostream & | , |
| const CellTopology & | ) |
Overloaded << operator for CellTopologyData objects.
Overloaded << operator for CellTopology objects.
|
inline |
Definition at line 51 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 72 of file Shards_CellTopology.hpp.
| void shards::getTopologies | ( | std::vector< shards::CellTopology > & | topologies, |
| const unsigned | cellDim = 4, | ||
| const ECellType | cellType = ALL_CELLS, | ||
| const ETopologyType | topologyType = ALL_TOPOLOGIES ) |
Returns an std::vector with all cell topologies that meet the specified selection flags.
| topologies | [out] - vector with all topologies that |
| cellDim | [in] - cell dimension; 0, 1, 2, 3, or 4 (default = all dimensions) |
| cellType | [in] - cell type: default = ALL_CELLS |
| topologyType | [in] - topology type: default = ALL_TOPOLOGIES |
| int shards::isPredefinedCell | ( | const CellTopology & | cell | ) |
Checks if the cell topology is predefined in shards.
| cell | [in] - cell topology |
| int shards::findPermutation | ( | const CellTopologyData & | top, |
| const id_type *const | expected_node, | ||
| const id_type *const | actual_node ) |
Definition at line 533 of file Shards_CellTopology.hpp.
| int shards::findPermutation | ( | const CellTopology & | top, |
| const id_type *const | expected_node, | ||
| const id_type *const | actual_node ) |
Definition at line 551 of file Shards_CellTopology.hpp.
| void shards::badCellTopologyKey | ( | const unsigned | dimension, |
| const unsigned | face_count, | ||
| const unsigned | edge_count, | ||
| const unsigned | vertex_count, | ||
| const unsigned | node_count ) |
Generates detailed message if one or more input parameters are out of their admissible bounds.
| dimension | [in] - maximum value = 7 |
| face_count | [in] - maximum value = 63 |
| edge_count | [in] - maximum value = 63 |
| vertex_count | [in] - maximum value = 63 |
| node_count | [in] - maximum value = 1023 |
|
inline |
Generate integer key from topological dimensions.
| dimension | [in] - maximum value = 7 (3 bits) |
| face_count | [in] - maximum value = 63 (6 bits) |
| edge_count | [in] - maximum value = 63 (6 bits) |
| vertex_count | [in] - maximum value = 63 (6 bits) |
| node_count | [in] - maximum value = 1023 (10 bits) The key uses all but the first bit in a 32 bit unsigned. |
Definition at line 584 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 614 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 620 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 628 of file Shards_CellTopology.hpp.