![]() |
OpenLB 1.8.1
|
SuperAverage3D returns the average in each component of f on a indicated subset. More...
#include <superAverage3D.h>
Public Member Functions | |
SuperAverage3D (FunctorPtr< SuperF3D< T, W > > &&f, FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF) | |
Constructor for determining the average of f on a indicated subset. | |
SuperAverage3D (FunctorPtr< SuperF3D< T, W > > &&f, SuperGeometry< T, 3 > &superGeometry, const int material) | |
Constructor for determining the average of f on a given material. | |
bool | operator() (W output[], const int input[]) override |
Global average operator. | |
![]() | |
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[]) |
has to be implemented for 'every' derived class | |
![]() | |
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) |
Additional Inherited Members | |
![]() | |
using | identity_functor_type |
![]() | |
using | targetType |
using | sourceType |
![]() | |
std::shared_ptr< GenericF< W, int > > | _ptrCalcC |
memory management, frees resouces (calcClass) | |
![]() | |
static constexpr bool | isSuper |
static constexpr unsigned | d |
![]() | |
SuperF3D (SuperStructure< T, 3 > &superStructure, int targetDim) | |
![]() | |
GenericF (int targetDim, int sourceDim) | |
![]() | |
SuperStructure< T, 3 > & | _superStructure |
std::vector< std::unique_ptr< BlockF3D< W > > > | _blockF |
Super functors may consist of several BlockF3D<W> derived functors. | |
SuperAverage3D returns the average in each component of f on a indicated subset.
Definition at line 37 of file superAverage3D.h.
olb::SuperAverage3D< T, W >::SuperAverage3D | ( | FunctorPtr< SuperF3D< T, W > > && | f, |
FunctorPtr< SuperIndicatorF3D< T > > && | indicatorF ) |
Constructor for determining the average of f on a indicated subset.
f | functor of which the average is to be determined |
indicatorF | indicator describing the subset on which to evaluate f |
Definition at line 34 of file superAverage3D.hh.
References olb::SuperF3D< T, T >::_blockF, olb::GenericF< W, int >::getName(), and olb::LoadBalancer< T >::size().
olb::SuperAverage3D< T, W >::SuperAverage3D | ( | FunctorPtr< SuperF3D< T, W > > && | f, |
SuperGeometry< T, 3 > & | superGeometry, | ||
const int | material ) |
Constructor for determining the average of f on a given material.
f | functor of which the average is to be determined |
superGeometry | super geometry for constructing material indicator |
material | number of the relevant material |
Definition at line 56 of file superAverage3D.hh.
|
overridevirtual |
Global average operator.
Note: While this functor exposes BlockAverage3D functors if possible, a call to this function will not use them but calculate the global average by summing all components and voxel counts. Calling BlockAverage3D in this situation would unnecessarily complicate this as we would have to weight the aggregated averages according to their share in the global average.
Implements olb::GenericF< W, int >.
Definition at line 65 of file superAverage3D.hh.
References olb::SuperStructure< T, D >::communicate(), olb::Cuboid< T, D >::getNx(), olb::Cuboid< T, D >::getNy(), olb::Cuboid< T, D >::getNz(), olb::SuperF3D< T, U >::getSuperStructure(), olb::LoadBalancer< T >::glob(), olb::singleton::mpi(), olb::singleton::MpiManager::reduceAndBcast(), and olb::LoadBalancer< T >::size().