|
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, hyEdge_index_t > | tpcc_ref_elem_ |
| Tensor product chain complex for refined elements. More...
|
|
unsigned int | n_loc_ref_elem |
| Number of refined elements per element. More...
|
|
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
class Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >
Hypergraph geometry based on an input file.
The geometry class File is a set of hyperedges. Each of these tensorial hyperedges is represented by its vertices (given within the file). For consistency, it is assumed that the vertices are given in lexicographical order. Also 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> . |
mapping_tM | The mapping which should depened on the aforementioned three template arguments. Default is linear mapping. |
hyEdge_dimTM | 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. Template parameter for the mapping which defaults to hyEdge_dimT. |
space_dimTM | The dimension of the space, the object is located in. This number should be larger than or equal to hyEdge_dimT. Template parameter for the mapping which defaults to space_dimT. |
pt_coord_tM | The floating point type in which points/vertices are represented. Default is the floating point of the point class. Template parameter for the mapping which defaults to pt_coord_t. |
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 . |
- 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>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
typedef Topology:: File<hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t> Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::constructor_value_type |
Define 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>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
using Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::mapping_t = mapping_tM<hyEdge_dimTM, space_dimTM, pt_coord_tM> |
|
private |
The mapping type is mapping_tt
with given template parameters.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
using Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::pt_coord_t = typename pointT::value_type |
|
private |
The point type is the floating point type of pointT
.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
typedef hyEdge Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::value_type |
Defines the return value of the class.
The class
Geometry::File
defines the geometry of the hypergraph. It "contains" the different hyperedges (that actually are constructed everytime access is needed from e.g. the solver class). Thus, its main purpose is to provide a structure that administrates the hyperedges that are the return value of this structure.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::File |
( |
const constructor_value_type & |
topology | ) |
|
|
inline |
Construct a hypergraph which is read from a file.
Constructs a hypergraph from a Topology::File
containing the elementens per spatial dimension which is given as by its topology.
- Parameters
-
topology | The topology of the hypergraph that has the geometry of the unit cube. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
value_type Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::get_hyEdge |
( |
const hyEdge_index_t |
index | ) |
const |
|
inline |
Get geometrical hyperedge of given index.
This function returns the hyperedge of the given index, i.e., it returns the geometrical hyperedge (not the topological information). The geometrical informatiom comprises the indices of adjacent vertices (i.e. points) and information about their respective positions. It is equivalent to operator
[].
- Parameters
-
index | The index of the hyperedge to be returned. |
- Return values
-
hyperedge | Geometrical 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>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
unsigned int Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::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>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
static constexpr unsigned int Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::hyEdge_dim |
( |
| ) |
|
|
inlinestaticconstexpr |
Returns 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, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
value_type Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::operator[] |
( |
const hyEdge_index_t |
index | ) |
const |
|
inline |
Get geometrical hyperedge of given index.
This function returns the hyperedge of the given index, i.e., it returns the geometrical hyperedge (not the topological information). The geometrical informatiom comprises the indices of adjacent vertices (i.e. points) and information about their respective positions. It is equivalent to get_hyEdge
.
- Parameters
-
index | The index of the hyperedge to be returned. |
- Return values
-
hyperedge | Geometrical 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>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
void Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_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, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
static constexpr unsigned int Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::space_dim |
( |
| ) |
|
|
inlinestaticconstexpr |
Returns 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, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
const DomainInfo<hyEdge_dimT, space_dimT, vectorT, pointT, hyEdge_index_t, hyNode_index_t, pt_index_t>& Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::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>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
unsigned int Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::n_loc_ref_elem |
|
private |
Number of refined elements per element.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, template< typename... > typename vectorT = std::vector, typename pointT = Point<space_dimT, float>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
unsigned int Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::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>, template< unsigned int, unsigned int, typename > typename mapping_tM = Mapping::Linear, unsigned int hyEdge_dimTM = hyEdge_dimT, unsigned int space_dimTM = space_dimT, typename pt_coord_tM = typename pointT::value_type, typename hyEdge_index_t = unsigned int, typename hyNode_index_t = hyEdge_index_t, typename pt_index_t = hyNode_index_t>
Wrapper::tpcc_t<hyEdge_dimT, hyEdge_dimT, TPCC::boundaries::both, hyEdge_index_t> Geometry::File< hyEdge_dimT, space_dimT, vectorT, pointT, mapping_tM, hyEdge_dimTM, space_dimTM, pt_coord_tM, hyEdge_index_t, hyNode_index_t, pt_index_t >::tpcc_ref_elem_ |
|
private |
Tensor product chain complex for refined elements.