DASH  0.3.0
dash::halo::HaloSpec< NumDimensions > Class Template Reference

Contains all specified Halo regions. More...

#include <Halo.h>

Public Types

using RegionSpec_t = RegionSpec< NumDimensions >
 
using Specs_t = std::array< RegionSpec_t, RegionsMax >
 
using region_extent_t = typename RegionSpec_t::region_extent_t
 
using HaloExtsMaxPair_t = std::pair< region_extent_t, region_extent_t >
 
using HaloExtsMax_t = std::array< HaloExtsMaxPair_t, NumDimensions >
 

Public Member Functions

constexpr HaloSpec (const Specs_t &specs)
 
template<typename StencilSpecT >
 HaloSpec (const StencilSpecT &stencil_spec)
 
template<typename StencilSpecT , typename... Args>
 HaloSpec (const StencilSpecT &stencil_spec, const Args &... stencil_specs)
 
template<typename... ARGS>
 HaloSpec (const RegionSpec_t &region_spec, const ARGS &... args)
 
 HaloSpec (const Self_t &other)
 
constexpr RegionSpec_t spec (const region_index_t index) const
 Matching RegionSpec for a given region index. More...
 
constexpr region_extent_t extent (const region_index_t index) const
 Extent for a given region index. More...
 
constexpr region_size_t num_regions () const
 Number of specified regions. More...
 
const Specs_t & specs () const
 Used RegionSpec instance. More...
 
const HaloExtsMaxPair_t & halo_extension_max (dim_t dim) const
 Returns the maximal extension for a specific dimension. More...
 
const HaloExtsMax_t & halo_extension_max () const
 Returns the maximal halo extension for every dimension. More...
 

Static Public Member Functions

static constexpr dim_t ndim ()
 

Detailed Description

template<dim_t NumDimensions>
class dash::halo::HaloSpec< NumDimensions >

Contains all specified Halo regions.

HaloSpec can be build with StencilSpec.

Definition at line 70 of file Halo.h.

Member Function Documentation

◆ extent()

template<dim_t NumDimensions>
constexpr region_extent_t dash::halo::HaloSpec< NumDimensions >::extent ( const region_index_t  index) const
inline

Extent for a given region index.

Definition at line 129 of file Halo.h.

References dash::index().

Referenced by dash::halo::HaloMatrixWrapper< MatrixT, SigReady >::stencil_operator().

129  {
130  return _specs[index].extent();
131  }
constexpr std::enable_if< std::is_integral< IndexType >::value, IndexType >::type index(IndexType idx)
Definition: Iterator.h:60

◆ halo_extension_max() [1/2]

template<dim_t NumDimensions>
const HaloExtsMaxPair_t& dash::halo::HaloSpec< NumDimensions >::halo_extension_max ( dim_t  dim) const
inline

Returns the maximal extension for a specific dimension.

Definition at line 146 of file Halo.h.

146  {
147  return _halo_extents_max[dim];
148  }

◆ halo_extension_max() [2/2]

template<dim_t NumDimensions>
const HaloExtsMax_t& dash::halo::HaloSpec< NumDimensions >::halo_extension_max ( ) const
inline

Returns the maximal halo extension for every dimension.

Definition at line 153 of file Halo.h.

References dash::begin(), dash::extent(), dash::index(), and dash::halo::StencilSpec< StencilPointT, NumStencilPoints >::specs().

153 { return _halo_extents_max; }

◆ num_regions()

template<dim_t NumDimensions>
constexpr region_size_t dash::halo::HaloSpec< NumDimensions >::num_regions ( ) const
inline

Number of specified regions.

Definition at line 136 of file Halo.h.

136 { return _num_regions; }

◆ spec()

template<dim_t NumDimensions>
constexpr RegionSpec_t dash::halo::HaloSpec< NumDimensions >::spec ( const region_index_t  index) const
inline

Matching RegionSpec for a given region index.

Definition at line 122 of file Halo.h.

References dash::index().

Referenced by dash::halo::HaloMatrixWrapper< MatrixT, SigReady >::stencil_operator().

122  {
123  return _specs[index];
124  }
constexpr std::enable_if< std::is_integral< IndexType >::value, IndexType >::type index(IndexType idx)
Definition: Iterator.h:60

◆ specs()

template<dim_t NumDimensions>
const Specs_t& dash::halo::HaloSpec< NumDimensions >::specs ( ) const
inline

Used RegionSpec instance.

Definition at line 141 of file Halo.h.

141 { return _specs; }

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