![]() |
alpaka
Abstraction Library for Parallel Kernel Acceleration
|
A container for boundary directions of an n-dimensional volume. More...
#include <BoundaryIter.hpp>
Public Member Functions | |
| constexpr | BoundaryDirectionsContainer (T_LowHaloVec const &lowerHaloSizes, T_UpHaloVec const &upperHaloSizes) |
| constexpr BoundaryDirectionIter< T_dim, T_LowHaloVec, T_UpHaloVec > | begin () const |
| constexpr BoundaryDirectionIter< T_dim, T_LowHaloVec, T_UpHaloVec > | end () const |
Static Public Member Functions | |
| static consteval auto | dim () |
| static consteval uint32_t | length () |
A container for boundary directions of an n-dimensional volume.
This class implements begin(), end(), and length(), and can be iterated over. This is useful for stencil codes, where boundary conditions exist, that need to only be applied to elements on the borders of memory. To create a BoundaryDirectionsContainer for a memory object, see makeBoundaryDirIterator.
A 0D boundary direction is a single value, a 1D boundary direction is a "line", for example edges of a cube, a 2D boundary direction is a "plane", for example the sides of a cube.
For example, a 1-dimensional (1D) volume has two 0D ends and a 1D center. A 2D volume has 4 0D corners, 4 1D edges, and one 2D center. In general, there are 3^n boundaries for an nD volume.
| T_dim | The dimensionality of the volume that this contains boundaries for. |
| T_LowHaloVec | The vector type used for the lower halo sizes. |
| T_UpHaloVec | The vector type used for the upper halo sizes. |
Definition at line 236 of file BoundaryIter.hpp.
|
inlineconstexpr |
Definition at line 240 of file BoundaryIter.hpp.
|
inlinenodiscardconstexpr |
Definition at line 246 of file BoundaryIter.hpp.
|
inlinestaticnodiscardconsteval |
Definition at line 267 of file BoundaryIter.hpp.
|
inlinenodiscardconstexpr |
Definition at line 254 of file BoundaryIter.hpp.
|
inlinestaticnodiscardconsteval |
Definition at line 262 of file BoundaryIter.hpp.