template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
class NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >
Definition of the node types of a cubic hypergraph.
In a cubic hypergraph \(\mathcal G\), the nodes receive their indices according to their positions. Thus, the node type \(t\) of node \(\mathcal N\) is defined as
\[ t = \sum_{n=1}^\text{space_dim} 3^n \left[ ( \Pi_n \mathcal N == \{ \min \Pi_n \mathcal G \} ) + 2 ( \Pi_n \mathcal N == \{ \max \Pi_n \mathcal G \} ) \right], \]
where \(\Pi_n\) is the orthonormal projection onto the \(n\)-th axis of the canonical basis.
- Authors
- Guido Kanschat, Heidelberg University, 2019–2020.
-
Andreas Rupp, Heidelberg University, 2019–2020.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
Defines the value type of input argument for standard constructor.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
Defines the return value of the class to be a hyEdge
.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::Cubic |
( |
const ConstructorVecT & |
n_elements | ) |
|
|
inline |
Construct a node descriptor of a cubic hypergraph.
- Parameters
-
n_elements | A vector/array containing number of elements per spatial dimension. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
Construct a cubic node descruiptor from a cubic topology.
- Parameters
-
other | Topology to which the node descriptor will fit. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
unsigned int NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::get_refinement |
( |
| ) |
const |
|
inline |
Return the refinement level (equal to number of subintervals).
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
static constexpr unsigned int NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::hyEdge_dim |
( |
| ) |
|
|
inlinestaticconstexpr |
Return the template parameter representing the dimension of a hyperedge.
- Return values
-
hyEdge_dimT | The dimension of a hyperedge. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
const ConstructorVecT& NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::n_elements |
( |
| ) |
const |
|
inline |
Return the array / vector of elements per dimensions.
- Return values
-
n_elements | A vector / array containing the elements in the repective dimension. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
const hyEdge_index_t NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::n_hyEdges |
( |
| ) |
const |
|
inline |
Returns the number of hyperedges making up the hypergraph.
- Return values
-
n_hyperedges | The total amount of hyperedges of a hypergraph. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
const value_type NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::operator[] |
( |
const hyEdge_index_t |
index | ) |
const |
|
inline |
Get topological hyperedge of given index.
This function returns the hyperedge of the given index, i.e., it returns the hyperedge 's node description info.
- Parameters
-
index | The index of the hyperedge to be returned. |
- Return values
-
hyperedge | Information on the hyperedge's nodes (cf. value_type ). |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
void NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::set_refinement |
( |
unsigned int |
level | ) |
|
|
inline |
Set the refinement level (equal to number of subintervals).
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
static constexpr unsigned int NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::space_dim |
( |
| ) |
|
|
inlinestaticconstexpr |
Return the template parameter representing the dimension of the space.
- Return values
-
space_dimT | The dimension of the space. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
const ConstructorVecT NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::n_elements_ |
|
private |
Number of elements per spatial dimension.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
hyEdge_index_t NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::n_hyEdges_ |
|
private |
Total amount of hyperedges in hypergraph.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
unsigned int NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::n_subintervals_ |
|
private |
Refinment level corresponds to number of subintervals per dimension.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
const Wrapper::tpcc_t<hyEdge_dimT, space_dimT, TPCC::boundaries::both, hyNode_index_t> NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::tpcc_elements_ |
|
private |
Tensor product chain complex for elements.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename NodeTypeVecT = SmallVec<2 * hyEdge_dimT, unsigned int>, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t>
Wrapper::tpcc_t<hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyNode_index_t> NodeDescriptor::Cubic< hyEdge_dimT, space_dimT, NodeTypeVecT, ConstructorVecT, hyEdge_index_t, hyNode_index_t >::tpcc_ref_elem_ |
|
private |
Tensor product chain complex for refined elements of hypergedge.