#include "SPACE.H"
#include <array>
#include <tuple>
#include <iostream>
#include "CH_Timer.H"
#include "Shift.H"
#include "RectMDArray.H"
#include "StencilImplem.H"
Go to the source code of this file.
Classes | |
class | Stencil< T > |
An object which contains a set of offsets and coefficients associated with the application of a stencil. More... | |
Functions | |
template<class T> | |
Stencil< T > | operator* (T a_coef, Shift a_shift) |
Defines the product of a coefficient of type T and a shift as a Stencil. | |
template<class T> | |
RectMDArray< T > & | operator|= (RectMDArray< T > &a_lofPhi, const std::tuple< const Stencil< T > *, const RectMDArray< T > *, const Box * > &a_token) |
Replacement operator used for Stencil application to a RectMDArray. | |
template<class T> | |
RectMDArray< T > & | operator+= (RectMDArray< T > &a_lofPhi, const std::tuple< const Stencil< T > *, const RectMDArray< T > *, const Box * > &a_token) |
Increment operator used for Stencil application to a RectMDArray. | |
template<class T, int SRCCOMP, int DSTCOMP> | |
void | componentApply (const Stencil< T > &a_stencil, const RectMDArray< T, SRCCOMP > &a_phi, RectMDArray< T, DSTCOMP > &a_lofPhi, const Box &a_bx, const int &a_srccomp, const int &a_dstcomp) |
Applies a Stencil to a given component of a source RectMDArray and stores it in a given component of another RectMDArray. |
Defines the product of a coefficient of type T and a shift as a Stencil.
This is a shortcut for creating Stencils simply using the syntax:
Stencil<double> S = 3.7*shift
RectMDArray<T>& operator|= | ( | RectMDArray< T > & | a_lofPhi, | |
const std::tuple< const Stencil< T > *, const RectMDArray< T > *, const Box * > & | a_token | |||
) | [inline] |
Replacement operator used for Stencil application to a RectMDArray.
This operator is used for replacing the data of a_lofPhi within a box B with the output of the Stencil operation. Data not within B is unchanged.
References Stencil< T >::apply().
RectMDArray<T>& operator+= | ( | RectMDArray< T > & | a_lofPhi, | |
const std::tuple< const Stencil< T > *, const RectMDArray< T > *, const Box * > & | a_token | |||
) | [inline] |
Increment operator used for Stencil application to a RectMDArray.
This operator is used for summing the data of a_lofPhi within a box B with the output of the Stencil operation. Data not within B is unchanged.
References Stencil< T >::apply().
void componentApply | ( | const Stencil< T > & | a_stencil, | |
const RectMDArray< T, SRCCOMP > & | a_phi, | |||
RectMDArray< T, DSTCOMP > & | a_lofPhi, | |||
const Box & | a_bx, | |||
const int & | a_srccomp, | |||
const int & | a_dstcomp | |||
) | [inline] |
Applies a Stencil to a given component of a source RectMDArray and stores it in a given component of another RectMDArray.
References CH_TIMERS, Stencil< T >::getCoefs(), Box::getLowCorner(), Stencil< T >::getOffsets(), Box::increment(), and Box::notDone().