![]() |
StencilStream v3.0.0
SYCL-based Stencil Simulation Framework Targeting FPGAs
|
A technical definition of a stencil transition function. More...
#include <Concepts.hpp>
A technical definition of a stencil transition function.
This concept lists all required type definitions, constants, and methods that a StencilUpdate needs from a transition function. This includes multiple definitions for advanced features. Most users are adviced to extend the stencil::BaseTransitionFunction class. It provides default definitions that disable those features.
The required type definitions are:
Cell
: The cell type the transition function operates on. It must be semiregular, i.e. copyable bit by bit.TimeDependentValue
: The type of the time-dependent value computed by the get_time_dependent_value
method. It must also be semiregular.The required constants are:
uindex_t stencil_radius
: The radius of the stencil. It must be greater than or equal to 1.uindex_t n_subiterations
: The number of sub-iterations of the transition function. It must be greater than or equal to 1.The required methods are:
Cell operator()(Stencil<Cell, stencil_radius> const&stencil) const
: Compute the next iteration of the stencil's central cell. This method must be pure, i.e. it must not modify either the stencil's or the transition function's state.TimeDependentValue get_time_dependent_value(uindex_t i_iteration) const
: Compute the time-dependent value for the given iteration. This method must be pure, i.e. it must not modify the transition function's state.