|
constexpr | Slab (const Lexicographic< n, k, Bint, Sint, Tint > &from, const std::array< Tint, n - 1 > directions, const std::array< bool, n - 1 > &reverse, Tint normal_direction, Sint normal_coordinate) |
|
constexpr Bint | size () const |
|
constexpr Bint | block_size (Tint block) const |
| The number of elements in one direction. More...
|
|
constexpr Element< n, k, Sint, Tint > | operator[] (Bint index) const |
| The element at position index, in the coordinates of the whole chain complex. More...
|
|
template<int n, int k, typename Bint = unsigned int, typename Sint = unsigned short, typename Tint = unsigned char>
class TPCC::Slab< n, k, Bint, Sint, Tint >
A slab of thickness one cell cut out of a tensor product chain complex.
A slab is a submesh of (topological) codimension 1 cut out of an n
-dimensional mesh. It is characterized by its normal_direction, the one missing from the complex, and the normal_coordinate, the position along the normal_direction. It only consists of elements which extend in the normal direction. In this respect, it differs from a CutPlane which contains elements within a hyperplane characterized by the same data.
- Note
- The data member superset is currently a reference, which might become outdated. We could replace it by some kind of smartpointer, but this induces overhead. AS of now, the focus of this project is on minimal overhead, such that we can use the functions for the managing of high order cochain finite elements on each mesh cell. Thus, we trade off safety for efficiency until there is a better idea.
template<int n, int k, typename Bint = unsigned int, typename Sint = unsigned short, typename Tint = unsigned char>
constexpr Element<n, k, Sint, Tint> TPCC::Slab< n, k, Bint, Sint, Tint >::operator[] |
( |
Bint |
index | ) |
const |
|
inlineconstexpr |
The element at position index, in the coordinates of the whole chain complex.
The index refers to lexicographic ordering in the local coordinates of the Slab, as defined by directions and reverse. The Element returned has its coordinates in the superset. Thus, it contains a field for a coordinate normal_direction and the value of this coordinate is always normal_coordinate.