|
| hyEdge (const hyEdge_index_t index, const UnitCube &geometry) |
| Construct a orthotopic hyperedge from its index and the surrounding unit hypercube. More...
|
|
template<unsigned int n_vec> |
SmallMat< space_dimT, n_vec, pt_coord_t > | map_ref_to_phys (const SmallMat< hyEdge_dimT, n_vec, pt_coord_t > &points) const |
| Map n_vec points from reference to physical element. More...
|
|
template<unsigned int n_vec> |
SmallMat< space_dimT, n_vec, pt_coord_t > & | map_ref_to_phys (SmallMat< space_dimT, n_vec, pt_coord_t > &points) const |
| Map n_vec points from reference to physical element. More...
|
|
SmallVec< space_dimT, pt_coord_t > | span_vec (const unsigned int index) const |
| Return matrix column of the affine-linear transformation. More...
|
|
const SmallSquareMat< hyEdge_dimT, pt_coord_t > | mat_r () const |
| Return reduced matrix R of the QR decomposition of the linear transoformation. More...
|
|
const SmallSquareMat< space_dimT, pt_coord_t > | mat_q () const |
| Return matrix Q of the QR decomposition of the linear transoformation. More...
|
|
pt_coord_t | area () const |
| Return Haussdorff/Lebesque measure of the hyperedge. More...
|
|
pt_coord_t | face_area (const unsigned int index) const |
| Return Haussdorff measure of the specified hypernode. More...
|
|
Point< hyEdge_dimT, pt_coord_t > | local_normal (const unsigned int index) const |
| Return local normal of given index. More...
|
|
Point< space_dimT, pt_coord_t > | inner_normal (const unsigned int index) const |
| Return inner normal of given index. More...
|
|
Point< space_dimT, pt_coord_t > | face_barycenter (const unsigned int index) const |
| Return barycenter of face of given index. More...
|
|
Point< space_dimT, pt_coord_t > | outer_normal (const unsigned int index) const |
| Return outer normal of given index. More...
|
|
template<unsigned int n_sub_points, typename one_dim_float_t > |
Point< space_dimT, pt_coord_t > | lexicographic (unsigned int index, const SmallVec< n_sub_points, one_dim_float_t > &points_1d) const |
| Return lexicographically ordered equidistant tensorial point of given index. More...
|
|
template<unsigned int n_sub_points, typename one_dim_float_t > |
Point< space_dimT, pt_coord_t > | boundary_lexicographic (unsigned int index, unsigned int boundary_number, float boundary_scale, const SmallVec< n_sub_points, one_dim_float_t > &points_1d) const |
| Return equidistant tensorial point of given index on a given boundary face (slightly moved away from the boundary using boundary_scale), ordered lexicographically. More...
|
|
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
class Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge
Definition of the geometry of a single hyperedge.
A hyperege is uniquely defined by a translation, the spanning dimensions, and the lengths of the lines along the these spanning dimensions.
- Authors
- Guido Kanschat, Heidelberg University, 2019–2020.
-
Andreas Rupp, Heidelberg University, 2019–2020.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
template<unsigned int n_sub_points, typename one_dim_float_t >
Point<space_dimT, pt_coord_t> Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::boundary_lexicographic |
( |
unsigned int |
index, |
|
|
unsigned int |
boundary_number, |
|
|
float |
boundary_scale, |
|
|
const SmallVec< n_sub_points, one_dim_float_t > & |
points_1d |
|
) |
| const |
|
inline |
Return equidistant tensorial point of given index on a given boundary face (slightly moved away from the boundary using boundary_scale), ordered lexicographically.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
template<unsigned int hyEdge_dimTT>
unsigned int Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::fill_data |
( |
unsigned int |
index, |
|
|
const Wrapper::tpcc_elem_t< hyEdge_dimTT, space_dimT > & |
elem, |
|
|
const UnitCube & |
geometry |
|
) |
| |
|
inlineprivate |
Fill data of hyEdge.
Recursive function that fills translation
, dim_indices
, and \ยข char_length. To do so, it considers a single hyperedge and takes its zeroth and first faces, and the zeroth and first faces of these faces, and so on to determine the positions of the translation and the other spanning points of the interface.
- Template Parameters
-
hyEdge_dimTT | Dimension of the hyperedge or face that is considered. |
- Parameters
-
index | Variable that indicates which point is investigated. Supposed to be 0, initially. |
elem | Hyperedge or face which is considered. |
geometry | The overall unit cube of which the initial elem is a hyperedge of. |
- Return values
-
index | Index that is used for further (recursive) executions of the function. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
Point<space_dimT, pt_coord_t> Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::inner_normal |
( |
const unsigned int |
index | ) |
const |
|
inline |
Return inner normal of given index.
Return outer unit normal with respect to the hypernode which is spanned by all vectors spanning the phyiscal element, but the vector of the given index. The vector has to be in the span of the columns of the local transformation matrix. This is an element of the same dimension as the full space.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
template<unsigned int n_sub_points, typename one_dim_float_t >
Point<space_dimT, pt_coord_t> Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::lexicographic |
( |
unsigned int |
index, |
|
|
const SmallVec< n_sub_points, one_dim_float_t > & |
points_1d |
|
) |
| const |
|
inline |
Return lexicographically ordered equidistant tensorial point of given index.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
Point<hyEdge_dimT, pt_coord_t> Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::local_normal |
( |
const unsigned int |
index | ) |
const |
|
inline |
Return local normal of given index.
Return outer unit normal with respect to the hypernode which is spanned by the vectors spanning the phyiscal element, orthogonally projected to a hyEdge_dimT dimensional space, but the vector of the given index. This is an element of the same dimension as the reference element.
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
template<unsigned int n_vec>
SmallMat<space_dimT, n_vec, pt_coord_t> Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::map_ref_to_phys |
( |
const SmallMat< hyEdge_dimT, n_vec, pt_coord_t > & |
points | ) |
const |
|
inline |
Map n_vec points from reference to physical element.
- Parameters
-
points | Matrix whose columns consist of the points to be mapped. |
- Return values
-
phy_points | Matrix whose columns consist of the mapped points. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
template<unsigned int n_vec>
SmallMat<space_dimT, n_vec, pt_coord_t>& Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::map_ref_to_phys |
( |
SmallMat< space_dimT, n_vec, pt_coord_t > & |
points | ) |
const |
|
inline |
Map n_vec points from reference to physical element.
- Parameters
-
points | Matrix whose columns consist of the points to be mapped. |
- Return values
-
points | Matrix whose columns consist of the mapped points. |
template<unsigned int hyEdge_dimT, unsigned int space_dimT, typename pt_coord_t = double, typename ConstructorVecT = SmallVec<space_dimT, unsigned int>, typename hyEdge_index_t = unsigned int>
Point<space_dimT, pt_coord_t> Geometry::UnitCube< hyEdge_dimT, space_dimT, pt_coord_t, ConstructorVecT, hyEdge_index_t >::hyEdge::outer_normal |
( |
const unsigned int |
index | ) |
const |
|
inline |
Return outer normal of given index.
Return unit normal with respect to the hyperedge within the full space.