OpenLB 1.7
|
Arithmetic operations for SuperF3D functors. More...
#include <superCalcF3D.h>
Public Member Functions | |
SuperCalcF3D (FunctorPtr< SuperF3D< T, W > > &&f, FunctorPtr< SuperF3D< T, W > > &&g) | |
SuperCalcF3D (W scalar, FunctorPtr< SuperF3D< T, W > > &&g) | |
SuperCalcF3D (FunctorPtr< SuperF3D< T, W > > &&f, W scalar) | |
bool | operator() (W output[], const int input[]) override |
has to be implemented for 'every' derived class | |
Public Member Functions inherited from olb::SuperF3D< T, W > | |
SuperF3D< T, W > & | operator- (SuperF3D< T, W > &rhs) |
SuperF3D< T, W > & | operator+ (SuperF3D< T, W > &rhs) |
SuperF3D< T, W > & | operator* (SuperF3D< T, W > &rhs) |
SuperF3D< T, W > & | operator/ (SuperF3D< T, W > &rhs) |
SuperStructure< T, 3 > & | getSuperStructure () |
int | getBlockFSize () const |
BlockF3D< W > & | getBlockF (int iCloc) |
bool | operator() (W output[], const int input[]) |
Public Member Functions inherited from olb::GenericF< W, int > | |
virtual | ~GenericF ()=default |
int | getSourceDim () const |
read only access to member variable _m | |
int | getTargetDim () const |
read only access to member variable _n | |
std::string & | getName () |
read and write access to name | |
std::string const & | getName () const |
read only access to name | |
bool | operator() (W output[]) |
wrapper that call the pure virtual operator() (T output[], const S input[]) from above | |
bool | operator() (W output[], int input0) |
bool | operator() (W output[], int input0, int input1) |
bool | operator() (W output[], int input0, int input1, int input2) |
bool | operator() (W output[], int input0, int input1, int input2, int input3) |
Protected Attributes | |
FunctorPtr< SuperF3D< T, W > > | _f |
FunctorPtr< SuperF3D< T, W > > | _g |
Protected Attributes inherited from olb::SuperF3D< T, W > | |
SuperStructure< T, 3 > & | _superStructure |
std::vector< std::unique_ptr< BlockF3D< W > > > | _blockF |
Super functors may consist of several BlockF3D<W> derived functors. | |
Additional Inherited Members | |
Public Types inherited from olb::SuperF3D< T, W > | |
using | identity_functor_type |
Public Types inherited from olb::GenericF< W, int > | |
using | targetType |
using | sourceType |
Public Attributes inherited from olb::GenericF< W, int > | |
std::shared_ptr< GenericF< W, int > > | _ptrCalcC |
memory management, frees resouces (calcClass) | |
Static Public Attributes inherited from olb::SuperF3D< T, W > | |
static constexpr bool | isSuper |
static constexpr unsigned | d |
Protected Member Functions inherited from olb::SuperF3D< T, W > | |
SuperF3D (SuperStructure< T, 3 > &superStructure, int targetDim) | |
Protected Member Functions inherited from olb::GenericF< W, int > | |
GenericF (int targetDim, int sourceDim) | |
Arithmetic operations for SuperF3D functors.
F | Function object defining the arithmetic operation to be perfomed e.g. std::minus for substraction |
Block level functors are instantiated for operations if at least one input functor exposes block level functors. See BlockCalcF3D.
All operations are performed componentwise if functor target dimensions are equal. If at least one of the target dimensions is equal to 1 it is applied to the other functor as a scalar (i.e. scalar multiplication, addition...).
Warning: Allocation error possible in functors that have multiple functor evaluation like SuperSum3D
Definition at line 58 of file superCalcF3D.h.
olb::SuperCalcF3D< T, W, F >::SuperCalcF3D | ( | FunctorPtr< SuperF3D< T, W > > && | f, |
FunctorPtr< SuperF3D< T, W > > && | g ) |
Definition at line 37 of file superCalcF3D.hh.
References olb::SuperF3D< T, W >::_blockF, olb::SuperCalcF3D< T, W, F >::_f, olb::SuperCalcF3D< T, W, F >::_g, olb::GenericF< W, int >::getName(), olb::LoadBalancer< T >::glob(), OLB_ASSERT, and olb::LoadBalancer< T >::size().
olb::SuperCalcF3D< T, W, F >::SuperCalcF3D | ( | W | scalar, |
FunctorPtr< SuperF3D< T, W > > && | g ) |
Definition at line 83 of file superCalcF3D.hh.
olb::SuperCalcF3D< T, W, F >::SuperCalcF3D | ( | FunctorPtr< SuperF3D< T, W > > && | f, |
W | scalar ) |
Definition at line 90 of file superCalcF3D.hh.
|
overridevirtual |
has to be implemented for 'every' derived class
Implements olb::GenericF< W, int >.
Definition at line 97 of file superCalcF3D.hh.
|
protected |
Definition at line 60 of file superCalcF3D.h.
|
protected |
Definition at line 61 of file superCalcF3D.h.