Go to the documentation of this file. 1 #pragma once // Ensure that file is included only once in a single compilation.
34 template <
unsigned int hyEdge_dimT,
35 unsigned int space_dimT,
38 typename hyEdge_index_t =
typename NodeIndexVecT::value_type,
39 typename NodeOrientationT =
SmallVec<2 * hyEdge_dimT - 2,
unsigned int> >
107 static constexpr
unsigned int hyEdge_dim() {
return hyEdge_dimT; };
113 static constexpr
unsigned int space_dim() {
return space_dimT; };
244 "The index of an hyperedge must be non-negative and smaller than the total amount "
245 <<
"of hyperedges, which is " <<
n_hyEdges_ <<
". Nonetheless, the " <<
index
246 <<
"-th hyperedge is tried to be accessed.");
302 Wrapper::create_tpcc<hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyEdge_index_t>(
Tensor coordinates for a facet of dimension k in the complex of dimension n.
Definition: element.h:38
This file provides the function hy_assert.
A namespace containing the different wrapper functions.
Definition: lapack.hxx:20
unsigned int n_coarse_elem
Number of refined corase elements.
Definition: cubic.hxx:159
Wrapper::tpcc_t< hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyNode_index_t > tpcc_ref_elem_
Tensor product chain complex for refining a hyperedge into elements.
Definition: cubic.hxx:138
index
Definition: check_push_test.py:10
index_t get_index(const auto &tpcc, const auto &elem)
Return index of given element within TPCC.
Definition: tpcc.hxx:102
@ both
Definition: lexicographic.h:11
A namespace containing different classes describing hypergraph topologies.
Definition: cubic.hxx:7
unsigned int n_face_per_face
Number of refined faces per corase face.
Definition: cubic.hxx:151
unsigned int n_elem_per_elem
Number of refined elements per corase element.
Definition: cubic.hxx:147
index_t get_index_in_slice(const auto &tpcc, const auto &elem)
Return index of given element within TPCC.
Definition: tpcc.hxx:112
boundaries
Definition: lexicographic.h:9
const value_type operator[](const hyEdge_index_t index) const
Get topological hyperedge of given index.
Definition: cubic.hxx:241
const Wrapper::tpcc_t< hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyNode_index_t > & tpcc_ref_elem() const
Tensor product chain complex of 'local' / refined elements.
Definition: cubic.hxx:275
unsigned int exterior_coordinate(const auto &elem, const unsigned int index)
Return coordinate value with respect to index-th orthonormal direction on element.
Definition: tpcc.hxx:150
This file provides the functions of the submodule TPCC.
auto get_face(const auto &elem, const unsigned int index)
Return i-th element facet.
Definition: tpcc.hxx:121
auto tpcc_faces(const auto &elements)
Create a tensor product chain complex associated to the facets.
Definition: tpcc.hxx:72
@ none
Definition: lexicographic.h:12
auto get_element(const auto &tpcc, const auto index)
Return the element of given index the TPCC.
Definition: tpcc.hxx:92
Cubic(const Cubic< hyEdge_dimT, space_dimT > &other)
Construct a hypergraph topology from another hypergraph topology.
Definition: cubic.hxx:215
Definition: combinations.h:8
const ConstructorVecT n_elements_
Number of elements per spatial dimension.
Definition: cubic.hxx:113
Wrapper::tpcc_t< hyEdge_dimT - 1, hyEdge_dimT, TPCC::boundaries::none, hyNode_index_t > tpcc_ref_faces_
Tensor product chain complex for refining a hyperedge into faces.
Definition: cubic.hxx:143
void set_refinement(unsigned int level)
Set the refinement level (equal to number of subintervals).
Definition: cubic.hxx:298
const Wrapper::tpcc_t< hyEdge_dimT - 1, space_dimT, TPCC::boundaries::both, hyNode_index_t > tpcc_faces_
Tensor product chain complex for faces.
Definition: cubic.hxx:129
unsigned int n_coarse_face
Number of refined corase faces.
Definition: cubic.hxx:163
static constexpr unsigned int hyEdge_dim()
Return the template parameter representing the dimension of a hyperedge.
Definition: cubic.hxx:107
index_t n_elements(const auto &tpcc)
Return the element of given index the TPCC.
Definition: tpcc.hxx:80
NodeIndexVecT hyNode_indices_
Indices of the hypernodes adjacent to the hyperedge.
Definition: cubic.hxx:55
Lexicographic enumeration of the k-dimensional faces in a tensor product chain complex of dimension n...
Definition: lexicographic.h:44
unsigned int n_subintervals_
Refinment level corresponds to number of subintervals per dimension.
Definition: cubic.hxx:134
typename NodeIndexVecT::value_type hyNode_index_t
Definition: cubic.hxx:42
Definition of the topology of a hypergraph's edges — Cubic HyperGraph's edges.
Definition: cubic.hxx:49
const ConstructorVecT & n_elements() const
Read the array of elements per dimensions.
Definition: cubic.hxx:254
Definition of the topology of a hypergraph — Cubic HyperGraphs.
Definition: cubic.hxx:40
hyEdge_index_t n_hyEdges_
Total amount of hyperedges.
Definition: cubic.hxx:168
static constexpr unsigned int space_dim()
Return the template parameter representing the dimension of the space.
Definition: cubic.hxx:113
ConstructorVecT constructor_value_type
Define the value type of input argument for standard constructor.
Definition: cubic.hxx:182
const NodeIndexVecT & get_hyNode_indices() const
Return indices of hypernodes adjacent to the hyperedge.
Definition: cubic.hxx:94
const Wrapper::tpcc_t< hyEdge_dimT - 1, space_dimT, TPCC::boundaries::both, hyNode_index_t > & tpcc_face() const
Tensor product chain complex for faces.
Definition: cubic.hxx:267
const Wrapper::tpcc_t< hyEdge_dimT, space_dimT, TPCC::boundaries::both, hyNode_index_t > & tpcc_elem() const
Tensor product chain complex for elements.
Definition: cubic.hxx:259
static constexpr unsigned int pow(unsigned int base)
Return n to the power dim.
Definition: hypercube.hxx:25
hyEdge(const hyEdge_index_t index, const Cubic &topology)
Construct a cubic hyperedge from its index and a the global topology class.
Definition: cubic.hxx:64
const hyNode_index_t n_hyNodes() const
Return the number of hypernodes making up the hypergraph.
Definition: cubic.hxx:290
const hyEdge_index_t n_hyEdges() const
Return the number of hyperedges making up the hypergraph.
Definition: cubic.hxx:284
const NodeOrientationT get_hyNode_oriantation(unsigned int) const
Return orienation of hypernode.
Definition: cubic.hxx:98
hyNode_index_t n_hyNodes_
Total amount of hypernodes.
Definition: cubic.hxx:172
#define hy_assert(Expr, Msg)
The assertion to be used within HyperHDG — deactivate using -DNDEBUG compile flag.
Definition: hy_assert.hxx:38
unsigned int n_face_per_elem
Number of refined faces per corase element.
Definition: cubic.hxx:155
hyEdge value_type
Define the return value of the class.
Definition: cubic.hxx:178
const Wrapper::tpcc_t< hyEdge_dimT, space_dimT, TPCC::boundaries::both, hyNode_index_t > tpcc_elements_
Tensor product chain complex for elements.
Definition: cubic.hxx:124
unsigned int get_refinement() const
Return the refinement level (equal to number of subintervals).
Definition: cubic.hxx:294
tpcc_t< hyEdge_dim, space_dim, bndT, index_t > create_tpcc(const SmallVec< space_dim, index_t > &vec)
Create a tensor product chain complex.
Definition: tpcc.hxx:62
Cubic(const constructor_value_type &n_elements)
Construct a cubic hypergraph.
Definition: cubic.hxx:188
This class implements a small/dense matrix.
Definition: dense_la.hxx:34
Helper class containing numbers and functions related to hypercubes.
Definition: hypercube.hxx:12