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 176 of file Shards_CellTopologyData.h.
Enumeration of cell types in Shards.
Definition at line 81 of file Shards_CellTopology.hpp.
Enumeration of topology types in Shards.
Definition at line 102 of file Shards_CellTopology.hpp.
anonymous enum |
Values for the CellTopologyData_Permutation polarity.
Definition at line 200 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 87 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 108 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 598 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 616 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 649 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 679 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 685 of file Shards_CellTopology.hpp.
|
inline |
Definition at line 693 of file Shards_CellTopology.hpp.