OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::SuperGeometryFacesIndicator2D< T, HLBM > Class Template Referencefinal

functor counts to get the discrete surface for a material no. and SmoothIndicator in direction (1,0,0), (0,1,0), (0,0,1), (-1,0,0), (0,-1,0), (0,0,-1) and total surface, then it converts it into phys units More...

#include <superGeometryFaces2D.h>

+ Inheritance diagram for olb::SuperGeometryFacesIndicator2D< T, HLBM >:
+ Collaboration diagram for olb::SuperGeometryFacesIndicator2D< T, HLBM >:

Public Member Functions

 SuperGeometryFacesIndicator2D (SuperGeometry< T, 2 > &superGeometry, SmoothIndicatorF2D< T, T, HLBM > &indicator, const int material, T deltaX)
 
bool operator() (T output[], const int input[]) override
 has to be implemented for 'every' derived class
 
- Public Member Functions inherited from olb::GenericF< T, 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() (T output[])
 wrapper that call the pure virtual operator() (T output[], const S input[]) from above
 
bool operator() (T output[], int input0)
 
bool operator() (T output[], int input0, int input1)
 
bool operator() (T output[], int input0, int input1, int input2)
 
bool operator() (T output[], int input0, int input1, int input2, int input3)
 

Additional Inherited Members

- Public Types inherited from olb::GenericF< T, int >
using targetType
 
using sourceType
 
- Public Attributes inherited from olb::GenericF< T, int >
std::shared_ptr< GenericF< T, int > > _ptrCalcC
 memory management, frees resouces (calcClass)
 
- Protected Member Functions inherited from olb::GenericF< T, int >
 GenericF (int targetDim, int sourceDim)
 

Detailed Description

template<typename T, bool HLBM>
class olb::SuperGeometryFacesIndicator2D< T, HLBM >

functor counts to get the discrete surface for a material no. and SmoothIndicator in direction (1,0,0), (0,1,0), (0,0,1), (-1,0,0), (0,-1,0), (0,0,-1) and total surface, then it converts it into phys units

Definition at line 69 of file superGeometryFaces2D.h.

Constructor & Destructor Documentation

◆ SuperGeometryFacesIndicator2D()

template<typename T , bool HLBM>
olb::SuperGeometryFacesIndicator2D< T, HLBM >::SuperGeometryFacesIndicator2D ( SuperGeometry< T, 2 > & superGeometry,
SmoothIndicatorF2D< T, T, HLBM > & indicator,
const int material,
T deltaX )

Definition at line 78 of file superGeometryFaces2D.hh.

82 : GenericF<T,int>(5,0), _superGeometry(superGeometry), _indicator(indicator),
83 _material(material), _latticeL(deltaX)
84{
85 this->getName() = "superGeometryFacesInd";
86}
std::string & getName()
read and write access to name
Definition genericF.hh:51

References olb::GenericF< T, int >::getName().

+ Here is the call graph for this function:

Member Function Documentation

◆ operator()()

template<typename T , bool HLBM>
bool olb::SuperGeometryFacesIndicator2D< T, HLBM >::operator() ( T output[],
const int input[] )
overridevirtual

has to be implemented for 'every' derived class

Implements olb::GenericF< T, int >.

Definition at line 89 of file superGeometryFaces2D.hh.

90{
91 _superGeometry.communicate();
92 for (int iDim = 0; iDim < 5; ++iDim) {
93 output[iDim]=T();
94 }
95 for (int iC = 0; iC < _superGeometry.getLoadBalancer().size(); ++iC) {
96 BlockGeometryFacesIndicator2D<T,HLBM> f(_superGeometry.getBlockGeometry(iC),
97 _indicator, _material, _latticeL);
98 T outputTmp[f.getTargetDim()];
99 f(outputTmp,input);
100 for (int iDim = 0; iDim < 5; ++iDim) {
101 output[iDim] += outputTmp[iDim];
102 }
103 }
104#ifdef PARALLEL_MODE_MPI
105 for (int iDim = 0; iDim < 5; ++iDim) {
106 singleton::mpi().reduceAndBcast( output[iDim], MPI_SUM);
107 }
108#endif
109 return true;
110}
void communicate() override
BlockGeometry< T, D > & getBlockGeometry(int locIC)
Read and write access to a single block geometry.
LoadBalancer< T > & getLoadBalancer()
Read and write access to the load balancer.
void reduceAndBcast(T &reductVal, MPI_Op op, int root=0, MPI_Comm comm=MPI_COMM_WORLD)
Reduction operation, followed by a broadcast.
MpiManager & mpi()

References olb::GenericF< T, S >::getTargetDim(), olb::singleton::mpi(), and olb::singleton::MpiManager::reduceAndBcast().

+ Here is the call graph for this function:

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