DASH
0.3.0
|
Proxy StencilOperator for boundary elements only. More...
#include <StencilOperator.h>
Public Types | |
using | Element_t = typename StencilOperatorT::Element_t |
using | uindex_t = typename StencilOperatorT::uindex_t |
using | ViewSpec_t = typename StencilOperatorT::ViewSpec_t |
using | Coords_t = typename StencilOperatorT::Coords_t |
using | iterator = typename StencilOperatorT::iterator_bnd |
using | const_iterator = const iterator |
using | BoundaryViews_t = typename StencilSpecViews_t::BoundaryViews_t |
using | RegionCoords_t = RegionCoords< NumDimensions > |
Public Member Functions | |
StencilOperatorBoundary (const StencilOperatorT *stencil_op) | |
iterator | begin () noexcept |
Returns the begin iterator for all boundary elements. More... | |
const_iterator | begin () const noexcept |
Returns the begin const iterator for all boundary elements. More... | |
iterator | end () noexcept |
Returns the end iterator for all boundary elements. More... | |
const_iterator | end () const noexcept |
Returns the end const iterator for all boundary elements. More... | |
const BoundaryViews_t & | view () const |
Returns all boundary views including all boundary elements (no dublicates) Unlike the view methods in StencilOperator and StencilOperatorInner this method returns a container with views. More... | |
uindex_t | boundary_size () const |
Returns the number of all boundary elements (no dublicates) More... | |
template<typename BinaryFunc = internal::replace<Element_t>> | |
void | set_values_at (const Coords_t &coords, Element_t value, Element_t coefficient_center, BinaryFunc op=BinaryFunc()) |
Modifies all stencil point elements and the center with halo check. More... | |
std::pair< iterator, iterator > | iterator_at (dim_t dim, RegionPos pos) |
Returns a pair of boundary iterators (first: begin, second: end) for a given dimension and RegionPos. More... | |
std::pair< iterator, iterator > | iterator_at (region_index_t index) |
template<typename BinaryFunc = std::plus<Element_t>> | |
Element_t | get_value_at (const Coords_t &coords, Element_t coefficient_center, BinaryFunc op=BinaryFunc()) const |
Returns the result of the given operation done on all stencil point elements and the center. More... | |
template<typename Op > | |
void | update (Element_t *begin_dst, Op operation) |
Updates all boundary elements using a user-defined stencil operation. More... | |
template<typename Op > | |
void | update (const iterator &begin, const iterator &end, Element_t *begin_out, Op operation) |
Updates all boundary elements within a user defined range using a userdefined stencil operation. More... | |
Proxy StencilOperator for boundary elements only.
Definition at line 393 of file StencilOperator.h.
|
inlinenoexcept |
Returns the begin iterator for all boundary elements.
Definition at line 418 of file StencilOperator.h.
|
inlinenoexcept |
Returns the begin const iterator for all boundary elements.
Definition at line 423 of file StencilOperator.h.
|
inline |
Returns the number of all boundary elements (no dublicates)
Definition at line 448 of file StencilOperator.h.
|
inlinenoexcept |
Returns the end iterator for all boundary elements.
Definition at line 428 of file StencilOperator.h.
|
inlinenoexcept |
Returns the end const iterator for all boundary elements.
Definition at line 433 of file StencilOperator.h.
|
inline |
Returns the result of the given operation done on all stencil point elements and the center.
The stencil points are multiplied with their coefficent (StencilPoint) and the center is multiplied with the given center coefficient. Test and use of halo elements. -> useful only for elements with stencil points pointing to halo elements. (boundary elements)
coords | center coordinate |
coefficient | for center |
op | operation to use (e.g. std::plus). default: std::plus |
Definition at line 547 of file StencilOperator.h.
|
inline |
Returns a pair of boundary iterators (first: begin, second: end) for a given dimension and RegionPos.
Iterators of higher dimensions will not iterate over elements which were already covered in lower dimensions. Using all iterators for all dimensions and RegionPos has the same effect as using bbegin and bend.
Definition at line 501 of file StencilOperator.h.
|
inline |
Modifies all stencil point elements and the center with halo check.
If a stencil point points to a halo element or a non existing element no operation is performed for this one. The stencil points are multiplied with their coefficent (StencilPoint) and the center is multiplied with the given center coefficient. The results then modifies the center/stencil point elements via the given operation.
coords | center coordinate |
value | base value for all points |
coefficient | for center |
op | operation to use (e.g. std::plus). default: replace |
Definition at line 467 of file StencilOperator.h.
|
inline |
Updates all boundary elements using a user-defined stencil operation.
begin_dst | Pointer to the beginning of the destination memory |
operation | User-definied operation for updating all boundary elements |
Definition at line 589 of file StencilOperator.h.
|
inline |
Updates all boundary elements within a user defined range using a userdefined stencil operation.
begin | Iterator of the beginnning boundary data element |
end | Iterator of the last boundary data element |
begin_dst | Pointer to the beginning of the destination memory |
operation | User-definied operation for updating all inner elements |
Definition at line 604 of file StencilOperator.h.
|
inline |
Returns all boundary views including all boundary elements (no dublicates) Unlike the view methods in StencilOperator and StencilOperatorInner this method returns a container with views.
Definition at line 441 of file StencilOperator.h.