OpenLB 1.7
|
SuperAverage2D returns the average in each component of f on a indicated subset. More...
#include <superAverage2D.h>
Public Member Functions | |
SuperAverage2D (FunctorPtr< SuperF2D< T, W > > &&f, FunctorPtr< SuperIndicatorF2D< T > > &&indicatorF) | |
Constructor for determining the average of f on a indicated subset. | |
SuperAverage2D (FunctorPtr< SuperF2D< T, W > > &&f, SuperGeometry< T, 2 > &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. | |
Public Member Functions inherited from olb::SuperF2D< T, W > | |
SuperF2D< T, W > & | operator- (SuperF2D< T, W > &rhs) |
SuperF2D< T, W > & | operator+ (SuperF2D< T, W > &rhs) |
SuperF2D< T, W > & | operator* (SuperF2D< T, W > &rhs) |
SuperF2D< T, W > & | operator/ (SuperF2D< T, W > &rhs) |
SuperStructure< T, 2 > & | getSuperStructure () |
int | getBlockFSize () const |
BlockF2D< W > & | getBlockF (int iCloc) |
bool | operator() (W output[], const int input[]) override |
Public Member Functions inherited from olb::GenericF< T, S > | |
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 | |
virtual bool | operator() (T output[], const S input[])=0 |
has to be implemented for 'every' derived class | |
bool | operator() (T output[]) |
wrapper that call the pure virtual operator() (T output[], const S input[]) from above | |
bool | operator() (T output[], S input0) |
bool | operator() (T output[], S input0, S input1) |
bool | operator() (T output[], S input0, S input1, S input2) |
bool | operator() (T output[], S input0, S input1, S input2, S input3) |
Additional Inherited Members | |
Public Types inherited from olb::SuperF2D< T, W > | |
using | identity_functor_type = SuperIdentity2D<T,W> |
Public Types inherited from olb::GenericF< T, S > | |
using | targetType = T |
using | sourceType = S |
Public Attributes inherited from olb::GenericF< T, S > | |
std::shared_ptr< GenericF< T, S > > | _ptrCalcC |
memory management, frees resouces (calcClass) | |
Protected Member Functions inherited from olb::SuperF2D< T, W > | |
SuperF2D (SuperStructure< T, 2 > &superStructure, int targetDim) | |
Protected Member Functions inherited from olb::GenericF< T, S > | |
GenericF (int targetDim, int sourceDim) | |
Protected Attributes inherited from olb::SuperF2D< T, W > | |
SuperStructure< T, 2 > & | _superStructure |
std::vector< std::unique_ptr< BlockF2D< W > > > | _blockF |
Super functors may consist of several BlockF2D<W> derived functors. | |
SuperAverage2D returns the average in each component of f on a indicated subset.
Definition at line 37 of file superAverage2D.h.
olb::SuperAverage2D< T, W >::SuperAverage2D | ( | FunctorPtr< SuperF2D< T, W > > && | f, |
FunctorPtr< SuperIndicatorF2D< 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 superAverage2D.hh.
References olb::SuperF2D< T, W >::_blockF, olb::GenericF< T, S >::getName(), and olb::LoadBalancer< T >::size().
olb::SuperAverage2D< T, W >::SuperAverage2D | ( | FunctorPtr< SuperF2D< T, W > > && | f, |
SuperGeometry< T, 2 > & | 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 superAverage2D.hh.
|
override |
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 BlockAverage2D in this situation would unnecessarily complicate this as we would have to weight the aggregated averages according to their share in the global average.
Definition at line 65 of file superAverage2D.hh.
References olb::SuperStructure< T, D >::communicate(), olb::CuboidGeometry2D< T >::get(), olb::Cuboid2D< T >::getNx(), olb::Cuboid2D< T >::getNy(), olb::SuperF2D< T, W >::getSuperStructure(), olb::LoadBalancer< T >::glob(), olb::singleton::mpi(), olb::singleton::MpiManager::reduceAndBcast(), and olb::LoadBalancer< T >::size().