OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
olb::BlockIndicatorF3D< T > Class Template Referenceabstract

Base block indicator functor. More...

#include <blockIndicatorBaseF3D.h>

+ Inheritance diagram for olb::BlockIndicatorF3D< T >:
+ Collaboration diagram for olb::BlockIndicatorF3D< T >:

Public Member Functions

 BlockIndicatorF3D (BlockGeometry< T, 3 > &geometry)
 
BlockGeometry< T, 3 > & getBlockGeometry ()
 Get underlying block geometry structure.
 
bool operator() (const int input[])
 Block indicator specific function operator overload.
 
bool operator() (int iX, int iY, int iZ)
 
bool operator() (LatticeR< 3 > loc)
 
void setCache (const BlockData< 3, T, bool > &cache)
 Set bool-mask cache to be used by indicator operator overloads.
 
virtual bool isEmpty ()
 Returns true only if the indicated domain subset is empty.
 
virtual Vector< int, 3 > getMin ()=0
 Returns min lattice position of the indicated subset's bounding box.
 
virtual Vector< int, 3 > getMax ()=0
 Returns max lattice position of the indicated subset's bounding box.
 
- Public Member Functions inherited from olb::BlockF3D< bool >
 ~BlockF3D () override
 virtual destructor for defined behaviour
 
virtual BlockStructureD< 3 > & getBlockStructure () const
 
BlockF3D< bool > & operator- (BlockF3D< bool > &rhs)
 
BlockF3D< bool > & operator+ (BlockF3D< bool > &rhs)
 
BlockF3D< bool > & operator* (BlockF3D< bool > &rhs)
 
BlockF3D< bool > & operator/ (BlockF3D< bool > &rhs)
 
- 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)
 

Protected Attributes

BlockGeometry< T, 3 > & _block
 
const BlockData< 3, T, bool > * _cachedData
 
- Protected Attributes inherited from olb::BlockF3D< bool >
BlockStructureD< 3 > & _blockStructure
 

Additional Inherited Members

- 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::BlockF3D< bool >
 BlockF3D (BlockStructureD< 3 > &blockStructure, int targetDim)
 
- Protected Member Functions inherited from olb::GenericF< T, S >
 GenericF (int targetDim, int sourceDim)
 

Detailed Description

template<typename T>
class olb::BlockIndicatorF3D< T >

Base block indicator functor.

Derived functors implement a indicator function on the full domain given by BlockGeometry3D.

Definition at line 40 of file blockIndicatorBaseF3D.h.

Constructor & Destructor Documentation

◆ BlockIndicatorF3D()

template<typename T >
olb::BlockIndicatorF3D< T >::BlockIndicatorF3D ( BlockGeometry< T, 3 > & geometry)

Definition at line 33 of file blockIndicatorBaseF3D.hh.

34 : BlockF3D<bool>(geometry, 1),
35 _block(geometry),
36 _cachedData{nullptr}
37{ }
const BlockData< 3, T, bool > * _cachedData
BlockGeometry< T, 3 > & _block

Member Function Documentation

◆ getBlockGeometry()

template<typename T >
BlockGeometry< T, 3 > & olb::BlockIndicatorF3D< T >::getBlockGeometry ( )

Get underlying block geometry structure.

Returns
_block

Definition at line 40 of file blockIndicatorBaseF3D.hh.

41{
42 return _block;
43}
+ Here is the caller graph for this function:

◆ getMax()

template<typename T >
virtual Vector< int, 3 > olb::BlockIndicatorF3D< T >::getMax ( )
pure virtual

◆ getMin()

template<typename T >
virtual Vector< int, 3 > olb::BlockIndicatorF3D< T >::getMin ( )
pure virtual

◆ isEmpty()

template<typename T >
bool olb::BlockIndicatorF3D< T >::isEmpty ( )
virtual

Returns true only if the indicated domain subset is empty.

May return false even if the indicated domain subset is in fact empty. Primarily implemented to minimize block accesses if an empty domain can be inferred by e.g. BlockGeometryStatistics3D data.

i.e. only override this method if the domain can be checked for emptyness in an efficient fashion.

Reimplemented in olb::BlockIndicatorMaterial3D< T >.

Definition at line 78 of file blockIndicatorBaseF3D.hh.

79{
80 // There is no way to determine domain emptyness in a fashion that is both
81 // generic and efficient.
82 return false;
83}

◆ operator()() [1/3]

template<typename T >
bool olb::BlockIndicatorF3D< T >::operator() ( const int input[])

Block indicator specific function operator overload.

The boolean return value of operator()(T output[], S input[]) describes the call's success and by convention must not describe the indicated domain.

Returns
Domain indicator i.e. true iff the input lies within the described subset.

Definition at line 46 of file blockIndicatorBaseF3D.hh.

47{
48 bool output{};
49 if (_cachedData == nullptr) {
50 this->operator()(&output, input);
51 }
52 else {
53 _cachedData->get(input);
54 }
55 return output;
56}
U & get(std::size_t iCell, int iD=0)
Definition blockData.hh:94
bool operator()(const int input[])
Block indicator specific function operator overload.

◆ operator()() [2/3]

template<typename T >
bool olb::BlockIndicatorF3D< T >::operator() ( int iX,
int iY,
int iZ )

Definition at line 59 of file blockIndicatorBaseF3D.hh.

60{
61 int latticeR[3] { iX, iY, iZ };
62 return this->operator()(latticeR);
63}

◆ operator()() [3/3]

template<typename T >
bool olb::BlockIndicatorF3D< T >::operator() ( LatticeR< 3 > loc)

Definition at line 66 of file blockIndicatorBaseF3D.hh.

67{
68 return operator()(loc[0], loc[1], loc[2]);
69}

◆ setCache()

template<typename T >
void olb::BlockIndicatorF3D< T >::setCache ( const BlockData< 3, T, bool > & cache)

Set bool-mask cache to be used by indicator operator overloads.

Definition at line 72 of file blockIndicatorBaseF3D.hh.

73{
74 _cachedData = &cache;
75}

Member Data Documentation

◆ _block

template<typename T >
BlockGeometry<T,3>& olb::BlockIndicatorF3D< T >::_block
protected

Definition at line 42 of file blockIndicatorBaseF3D.h.

◆ _cachedData

template<typename T >
const BlockData<3,T,bool>* olb::BlockIndicatorF3D< T >::_cachedData
protected

Definition at line 43 of file blockIndicatorBaseF3D.h.


The documentation for this class was generated from the following files: