template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
struct alpaka::BoundaryDirectionsContainer< T_dim, T_LowHaloVec, T_UpHaloVec >
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.
- Template Parameters
-
| 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.