alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec > Struct Template Reference

An n-dimensional boundary direction. More...

#include <BoundaryIter.hpp>

Public Types

using T_BoundaryVec = Vec<BoundaryType, T_dim>

Public Member Functions

constexpr BoundaryDirection (concepts::Vector auto const &boundaries, T_LowHaloVec const &lower_halo_sizes, T_UpHaloVec const &upper_halo_sizes)
constexpr uint32_t boundaryDimensionality () const
 The dimensionality of the boundary direction.
constexpr bool isCell () const
 Return true if this boundary direction describes a cell, for example the interior of a cube or one of the 8 cells in a tesseract.
constexpr bool isEdge () const
 Return true if this boundary direction describes an edge, for example any of the 12 edges of a cube.
constexpr bool isFace () const
 Return true if this boundary direction describes a face, for example any of the 6 sides of a cube.
constexpr bool isInterior () const
 Return true if this boundary direction describes the interior of a volume, like the 2D interior of a plane or the 3D interior of a cube.
constexpr bool isVertex () const
 Return true if this boundary direction describes a vertex, for example the corner of a plane.
constexpr auto operator<=> (BoundaryDirection const &) const =default

Static Public Member Functions

static constexpr uint32_t dim ()
 The dimensionality of the whole volume that this is a boundary direction for.

Public Attributes

T_BoundaryVec data
T_LowHaloVec lowerHaloSize
T_UpHaloVec upperHaloSize

Detailed Description

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
struct alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >

An n-dimensional boundary direction.

Encodes a single unique boundary of an nD volume, e.g., a specific corner of a 2D plane or a side of a 3D cube.

See also: BoundaryDirectionsContainer

Template Parameters
T_dimThe dimensionality of the volume that this is a boundary direction for.
T_LowHaloVecThe vector type used for the lower halo sizes.
T_UpHaloVecThe vector type used for the upper halo sizes.

Definition at line 43 of file BoundaryIter.hpp.

Member Typedef Documentation

◆ T_BoundaryVec

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
using alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::T_BoundaryVec = Vec<BoundaryType, T_dim>

Definition at line 45 of file BoundaryIter.hpp.

Constructor & Destructor Documentation

◆ BoundaryDirection()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::BoundaryDirection ( concepts::Vector auto const & boundaries,
T_LowHaloVec const & lower_halo_sizes,
T_UpHaloVec const & upper_halo_sizes )
inlineconstexpr

Definition at line 51 of file BoundaryIter.hpp.

Member Function Documentation

◆ boundaryDimensionality()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
uint32_t alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::boundaryDimensionality ( ) const
inlinenodiscardconstexpr

The dimensionality of the boundary direction.

For example, a vertex (corner) of a 3D-volume (cube) is 0-dimensional. See also the functions isVertex(), isEdge(), etc.

Definition at line 72 of file BoundaryIter.hpp.

◆ dim()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
constexpr uint32_t alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::dim ( )
inlinestaticnodiscardconstexpr

The dimensionality of the whole volume that this is a boundary direction for.

Not to be confused with boundaryDimensionality().

Definition at line 64 of file BoundaryIter.hpp.

◆ isCell()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
bool alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::isCell ( ) const
inlinenodiscardconstexpr

Return true if this boundary direction describes a cell, for example the interior of a cube or one of the 8 cells in a tesseract.

Definition at line 107 of file BoundaryIter.hpp.

◆ isEdge()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
bool alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::isEdge ( ) const
inlinenodiscardconstexpr

Return true if this boundary direction describes an edge, for example any of the 12 edges of a cube.

Definition at line 92 of file BoundaryIter.hpp.

◆ isFace()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
bool alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::isFace ( ) const
inlinenodiscardconstexpr

Return true if this boundary direction describes a face, for example any of the 6 sides of a cube.

Definition at line 99 of file BoundaryIter.hpp.

◆ isInterior()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
bool alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::isInterior ( ) const
inlinenodiscardconstexpr

Return true if this boundary direction describes the interior of a volume, like the 2D interior of a plane or the 3D interior of a cube.

Definition at line 115 of file BoundaryIter.hpp.

◆ isVertex()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
bool alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::isVertex ( ) const
inlinenodiscardconstexpr

Return true if this boundary direction describes a vertex, for example the corner of a plane.

Definition at line 85 of file BoundaryIter.hpp.

◆ operator<=>()

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
auto alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::operator<=> ( BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec > const & ) const
nodiscardconstexprdefault

Member Data Documentation

◆ data

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
T_BoundaryVec alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::data

Definition at line 47 of file BoundaryIter.hpp.

◆ lowerHaloSize

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
T_LowHaloVec alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::lowerHaloSize

Definition at line 48 of file BoundaryIter.hpp.

◆ upperHaloSize

template<uint32_t T_dim, concepts::Vector T_LowHaloVec, concepts::Vector T_UpHaloVec>
T_UpHaloVec alpaka::BoundaryDirection< T_dim, T_LowHaloVec, T_UpHaloVec >::upperHaloSize

Definition at line 49 of file BoundaryIter.hpp.


The documentation for this struct was generated from the following file: