Go to the documentation of this file. 1 #pragma once // Ensure that file is included only once in a single compilation.
19 template <
unsigned int hyEdge_dimT,
20 unsigned int space_dimT,
21 template <
typename...>
typename vectorT = std::vector,
23 typename hyEdge_index_t =
unsigned int,
24 typename hyNode_index_t = hyEdge_index_t,
25 typename pt_index_t = hyNode_index_t>
34 static constexpr
unsigned int n_hyNodes() {
return 2 * hyEdge_dimT; }
38 static constexpr
unsigned int hyEdge_dim() {
return hyEdge_dimT; }
42 static constexpr
unsigned int space_dim() {
return space_dimT; }
93 static constexpr
unsigned int hyEdge_dim() {
return hyEdge_dimT; }
97 static constexpr
unsigned int space_dim() {
return space_dimT; }
133 File<hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t>
174 "Index must be non-negative and smaller than "
175 <<
domain_info_.n_hyEdges <<
" (which is the amount of hyperedges). It was "
190 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
static constexpr unsigned int hyEdge_dim()
Return dimension of the hyperedge.
Definition: file.hxx:38
This file provides the function hy_assert.
File(const File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t > &other)
Copy constructor.
Definition: file.hxx:148
A namespace containing the different wrapper functions.
Definition: lapack.hxx:20
const hyEdge_index_t index_
Index of the hyperedge within the hypergraph.
Definition: file.hxx:52
index
Definition: check_push_test.py:10
@ both
Definition: lexicographic.h:11
hyEdge(const File &node_desc, const hyEdge_index_t index)
Construct hyperedge from hypergraph and index.
Definition: file.hxx:63
static constexpr unsigned int space_dim()
Return dimension of the surrounding space.
Definition: file.hxx:42
hyEdge_index_t n_hyEdges_
Total amount of hyperedges in hypergraph.
Definition: file.hxx:122
Hypergraph topology based on an input file.
Definition: file.hxx:43
Wrapper::tpcc_t< hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyNode_index_t > tpcc_ref_elem_
Tensor product chain complex for refined elements of hypergedge.
Definition: file.hxx:118
boundaries
Definition: lexicographic.h:9
const DomainInfo< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t > & domain_info_
Domain Info containing all the information of the hypergraph (cf. ReadDomain.hxx).
Definition: file.hxx:109
static constexpr unsigned int n_hyNodes()
Definition: file.hxx:34
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
std::array< hyNode_index_t, 2 *hyEdge_dimT > hyFace_types_
Indices of the hypernodes adjacent to the hyperedge.
Definition: file.hxx:57
auto get_face(const auto &elem, const unsigned int index)
Return i-th element facet.
Definition: tpcc.hxx:121
auto get_element(const auto &tpcc, const auto index)
Return the element of given index the TPCC.
Definition: tpcc.hxx:92
Hypergraph topology based on an input file.
Definition: file.hxx:26
Definition: combinations.h:8
index_t n_elements(const auto &tpcc)
Return the element of given index the TPCC.
Definition: tpcc.hxx:80
Lexicographic enumeration of the k-dimensional faces in a tensor product chain complex of dimension n...
Definition: lexicographic.h:44
static constexpr unsigned int hyEdge_dim()
Return local dimension of the hypergraph's hyperedges.
Definition: file.hxx:93
const File & hyGraph_topology_
Reference to parent hypergraph.
Definition: file.hxx:48
unsigned int n_subintervals_
Refinment level corresponds to number of subintervals per dimension.
Definition: file.hxx:114
hyEdge value_type
Define the return value of the class.
Definition: file.hxx:128
value_type operator[](const hyEdge_index_t index) const
Return hyperegde of given index.
Definition: file.hxx:167
File(const constructor_value_type &topology)
Construct a node descriptor from a file topology.
Definition: file.hxx:138
const auto & get_hyFaces_types() const
Return hypernode types of the hyEdge.
Definition: file.hxx:82
static constexpr unsigned int space_dim()
Return dimension of the surrounding space.
Definition: file.hxx:97
unsigned int get_refinement() const
Return the refinement level (equal to number of subintervals).
Definition: file.hxx:182
#define hy_assert(Expr, Msg)
The assertion to be used within HyperHDG — deactivate using -DNDEBUG compile flag.
Definition: hy_assert.hxx:38
Definition of the node types of a hypergraph's edges.
Definition: file.hxx:31
A namespace containing different classes describing the types of hypernodes.
Definition: cubic.hxx:7
unsigned int operator[](const unsigned int index) const
Return hypernode type of given index.
Definition: file.hxx:86
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
value_type get_hyEdge(const hyEdge_index_t index) const
Return hyperedge of given index.
Definition: file.hxx:171
Hold all topological and geometrical information of a hypergraph.
Definition: read_domain.hxx:59
Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t > constructor_value_type
Defines the value type of input argument for standard constructor.
Definition: file.hxx:134
This class implements a small/dense matrix.
Definition: dense_la.hxx:34
void set_refinement(unsigned int level)
Set the refinement level (equal to number of subintervals).
Definition: file.hxx:186