|
| File (const constructor_value_type &filename) |
| Construct a topology from a given filename. More...
|
|
| File (const File< hyEdge_dimT, space_dimT > &other) |
| Copy constructor. More...
|
|
const value_type | operator[] (const hyEdge_index_t index) const |
| Get topological hyperedge of given index. More...
|
|
const value_type | get_hyEdge (const hyEdge_index_t index) const |
| Get topological hyperedge of given index. More...
|
|
const hyEdge_index_t | n_hyEdges () const |
| Return the number of hyperedges making up the hypergraph. More...
|
|
const hyNode_index_t | n_hyNodes () const |
| Return the number of hypernodes making up the hypergraph. More...
|
|
const DomainInfo< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t > & | domain_info () const |
| Return the whole domain info related to a hypergraph. More...
|
|
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. More...
|
|
unsigned int | get_refinement () const |
| Return the refinement level (equal to number of subintervals). More...
|
|
void | set_refinement (unsigned int level) |
| Set the refinement level (equal to number of subintervals). More...
|
|
|
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). More...
|
|
unsigned int | n_subintervals_ |
| Refinment level corresponds to number of subintervals per dimension. More...
|
|
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. More...
|
|
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. More...
|
|
unsigned int | n_elem_per_elem |
| Number of refined elements per corase element. More...
|
|
unsigned int | n_face_per_face |
| Number of refined faces per corase face. More...
|
|
unsigned int | n_face_per_elem |
| Number of refined faces per corase element. More...
|
|
unsigned int | n_coarse_elem |
| Number of refined corase elements. More...
|
|
unsigned int | n_coarse_face |
| Number of refined corase faces. More...
|
|
hyEdge_index_t | n_hyEdges_ |
| Total amount of hyperedges. More...
|
|
hyNode_index_t | n_hyNodes_ |
| Total amount of hypernodes. More...
|
|
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
class Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >
Hypergraph topology based on an input file.
The topology class File is a set of hyperedges. Each of these tensorial hyperedges is represented by its hypernodes (given within the file). For consistency, it is assumed that the vertices and the hypernodes are assumed to be given in lexicographical order to ensure that geometry and topology of all hyperedges fit.
- Template Parameters
-
hyEdge_dimT | Dimension of a hyperedge, i.e., 1 is for PDEs defined on graphs, 2 is for PDEs defined on surfaces, and 3 is for PDEs defined on volumes. |
space_dimT | The dimension of the space, the object is located in. This number should be larger than or equal to hyEdge_dimT. |
vectorT | The typename of the large vector type. Defaults to std::vector. |
pointT | The typename of a Point class. Defaults to Point<space_dimT, float> . |
hyEdge_index_t | The index type for hyperedges. Default is unsigned int . |
hyNode_index_t | The index type for hypernodes. Default is hyNode_index_t . |
pt_index_t | The index type of points. Default is hyNode_index_t . |
NodeOrientationT | The class type that encodes the orientation of the hypernodes with respect to a given hyperedge. |
- Authors
- Guido Kanschat, Heidelberg University, 2019–2020.
-
Andreas Rupp, Heidelberg University, 2019–2020.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
Defines the value type of input argument for standard constructor.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
Defines the return value of the class.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
Construct a topology from a given filename.
- Parameters
-
filename | Name of file containing the information. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::File |
( |
const File< hyEdge_dimT, space_dimT > & |
other | ) |
|
|
inline |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
const DomainInfo<hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t>& Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::domain_info |
( |
| ) |
const |
|
inline |
Return the whole domain info related to a hypergraph.
- Return values
-
domain_info | Const reference to domain info. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
const value_type Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::get_hyEdge |
( |
const hyEdge_index_t |
index | ) |
const |
|
inline |
Get topological hyperedge of given index.
This is equivalent to operator
[].
- Parameters
-
index | The index of the hyperedge to be returned. |
- Return values
-
hyperedge | Topological information on the hyperedge (cf. value_type ). |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::get_refinement |
( |
| ) |
const |
|
inline |
Return the refinement level (equal to number of subintervals).
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
static constexpr unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::hyEdge_dim |
( |
| ) |
|
|
inlinestaticconstexpr |
Return local dimension of the hypergraph's hyperedges.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
const hyEdge_index_t Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_hyEdges |
( |
| ) |
const |
|
inline |
Return 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, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
const hyNode_index_t Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_hyNodes |
( |
| ) |
const |
|
inline |
Return the number of hypernodes making up the hypergraph.
- Return values
-
n_hypernodes | The total amount of hypernodes of a hypergraph. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
const value_type Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::operator[] |
( |
const hyEdge_index_t |
index | ) |
const |
|
inline |
Get topological hyperedge of given index.
This is equivalent to get_hyEdge
.
- Parameters
-
index | The index of the hyperedge to be returned. |
- Return values
-
hyperedge | Topological information on the hyperedge (cf. value_type ). |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
void Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::set_refinement |
( |
unsigned int |
level | ) |
|
|
inline |
Set the refinement level (equal to number of subintervals).
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
static constexpr unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::space_dim |
( |
| ) |
|
|
inlinestaticconstexpr |
Return dimension of the surrounding space.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
const Wrapper::tpcc_t<hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyNode_index_t>& Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::tpcc_ref_elem |
( |
| ) |
const |
|
inline |
Tensor product chain complex of 'local' / refined elements.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
const DomainInfo<hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t> Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::domain_info_ |
|
private |
Domain Info containing all the information of the hypergraph (cf. ReadDomain.hxx).
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_coarse_elem |
|
private |
Number of refined corase elements.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_coarse_face |
|
private |
Number of refined corase faces.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_elem_per_elem |
|
private |
Number of refined elements per corase element.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_face_per_elem |
|
private |
Number of refined faces per corase element.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_face_per_face |
|
private |
Number of refined faces per corase face.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
hyEdge_index_t Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_hyEdges_ |
|
private |
Total amount of hyperedges.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
hyNode_index_t Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_hyNodes_ |
|
private |
Total amount of hypernodes.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
unsigned int Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::n_subintervals_ |
|
private |
Refinment level corresponds to number of subintervals per dimension.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
Wrapper::tpcc_t<hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyNode_index_t> Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::tpcc_ref_elem_ |
|
private |
Tensor product chain complex for refining a hyperedge into elements.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t, typename NodeOrientationT = SmallVec<2 * hyEdge_dimT - 2, unsigned int>>
Wrapper::tpcc_t<hyEdge_dimT - 1, hyEdge_dimT, TPCC::boundaries::none, hyNode_index_t> Topology::File< hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t, NodeOrientationT >::tpcc_ref_faces_ |
|
private |
Tensor product chain complex for refining a hyperedge into faces.