Intrepid2
|
For two cell topologies whose tensor product is a third, this class establishes a mapping from subcell pairs in the component topologies to the tensor product topology. More...
#include <Intrepid2_TensorTopologyMap.hpp>
Public Member Functions | |
TensorTopologyMap (shards::CellTopology cellTopo1, shards::CellTopology cellTopo2, shards::CellTopology compositeCellTopo, std::vector< std::pair< unsigned, unsigned > > nodePairs=std::vector< std::pair< unsigned, unsigned > >()) | |
Constructor. More... | |
TensorTopologyMap (shards::CellTopology cellTopo1, shards::CellTopology cellTopo2) | |
unsigned | getCompositeSubcellOrdinal (unsigned subcell1Dim, unsigned subcell1Ordinal, unsigned subcell2Dim, unsigned subcell2Ordinal) |
Map from component subcell ordinals to the corresponding composite subcell ordinal. More... | |
Static Public Member Functions | |
static std::vector < std::vector< int > > | referenceCellGeometry (shards::CellTopology cellTopo) |
A topological representation of the vertex geometries corresponding to a cell topology. More... | |
static std::vector< std::pair < unsigned, unsigned > > | defaultNodePairs (shards::CellTopology cellTopo1, shards::CellTopology cellTopo2, shards::CellTopology compositeCellTopo) |
Default node pairs corresponding to the provided component and composite cell topologies. More... | |
static shards::CellTopology | compositeCellTopology (shards::CellTopology cellTopo1, shards::CellTopology cellTopo2) |
The composite cell topology generated as the tensor product of the specified component cell topologies. More... | |
Private Types | |
using | Subcell = std::pair< unsigned, unsigned > |
using | SubcellPair = std::pair< Subcell, Subcell > |
Private Attributes | |
shards::CellTopology | cellTopo1_ |
shards::CellTopology | cellTopo2_ |
shards::CellTopology | compositeCellTopo_ |
std::map< SubcellPair, Subcell > | subcellMap_ |
For two cell topologies whose tensor product is a third, this class establishes a mapping from subcell pairs in the component topologies to the tensor product topology.
This is used in the construction of tensor-product bases;
This establishes the mapping from component topologies to an existing shards CellTopology, which might not have a "tensor numbering" of subcells (the shards quadrilateral is one example: vertices are numbered counter-clockwise rather than as the tensor product of two line topologies).
Definition at line 70 of file Intrepid2_TensorTopologyMap.hpp.
|
inline |
Constructor.
[in] | cellTopo1 | - the first component cell topology |
[in] | cellTopo2 | - the second component cell topology |
[in] | compositeCellTopo | - the composite cell topology |
[in] | nodePairs | - ordered list of node pairs that correspond to the nodes in compositeCellTopo |
If nodePairs is empty, then TensorTopologyMap will assign a default mapping. Default mappings are provided for the relevant lowest-order (linear) shards topologies in up to three dimensions.
If nodePairs is not empty, then the pair (n1,n2) in position tn indicates a correspondence between the tnth node in compositeCellTopo and node n1 in cellTopo1 and node n2 in cellTopo2.
The higher-dimensional subcell mappings are inferred from the node map.
Definition at line 94 of file Intrepid2_TensorTopologyMap.hpp.
References defaultNodePairs().
|
inlinestatic |
The composite cell topology generated as the tensor product of the specified component cell topologies.
cellTopo1 | [in] - The first component cell topology. |
cellTopo2 | [in] - The second component cell topology. |
Definition at line 335 of file Intrepid2_TensorTopologyMap.hpp.
|
inlinestatic |
Default node pairs corresponding to the provided component and composite cell topologies.
cellTopo1 | [in] - the first component cell topology |
cellTopo2 | [in] - the second component cell topology |
compositeCellTopo | [in] - the composite cell topology |
This method determines a suitable mapping from the component cell topologies to the composite cell topology; supported composite topologies are the lowest-order (linear) shards topologies in up to three dimensions, and any pair of component cell topologies that generate those composite topologies. For example, the hexahedron could be generated from line x quad, quad x line, node x hexahedron, hexahedron x node.
Definition at line 297 of file Intrepid2_TensorTopologyMap.hpp.
Referenced by TensorTopologyMap().
|
inline |
Map from component subcell ordinals to the corresponding composite subcell ordinal.
subcell1Dim | [in] - spatial dimension of the subcell in cellTopo1 |
subcell1Ordinal | [in] - ordinal of the subcell in cellTopo1 |
subcell2Dim | [in] - spatial dimension of the subcell in cellTopo2 |
subcell2Ordinal | [in] - ordinal of the subcell in cellTopo2 |
The dimension of the composite subcell is subcell1Dim + subcell2Dim.
Definition at line 214 of file Intrepid2_TensorTopologyMap.hpp.
Referenced by Intrepid2::Basis_TensorBasis< HVOL_LINE, HGRAD_LINE >::Basis_TensorBasis().
|
inlinestatic |
A topological representation of the vertex geometries corresponding to a cell topology.
cellTopo | [in] - the cell topology for which the geometry is requested. |
This method is used internally to TensorTopologyMap to determine default node mappings from component cell topologies to the composite cell topology.
TensorTopologyMap is agnostic about translations and scaling of the reference cell. This method gives the cell coordinates as integers, to emphasize that these are not coordinates in reference space, but rather a representation of the geometry concerned with x/y/z orientation but little else.
Definition at line 236 of file Intrepid2_TensorTopologyMap.hpp.