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

functor to get pointwise phys force acting on a indicated boundary on local lattice More...

#include <superLatticeIntegralF3D.h>

+ Inheritance diagram for olb::SuperLatticePhysDrag3D< T, DESCRIPTOR >:
+ Collaboration diagram for olb::SuperLatticePhysDrag3D< T, DESCRIPTOR >:

Public Member Functions

 SuperLatticePhysDrag3D (SuperLattice< T, DESCRIPTOR > &sLattice, FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF, const UnitConverter< T, DESCRIPTOR > &converter)
 
 SuperLatticePhysDrag3D (SuperLattice< T, DESCRIPTOR > &sLattice, SuperGeometry< T, 3 > &superGeometry, const int material, const UnitConverter< T, DESCRIPTOR > &converter)
 
bool operator() (T output[], const int input[]) override
 
- Public Member Functions inherited from olb::SuperLatticePhysF3D< T, DESCRIPTOR >
UnitConverter< T, DESCRIPTOR > const & getConverter () const
 
- Public Member Functions inherited from olb::SuperLatticeF3D< T, DESCRIPTOR >
SuperLattice< T, DESCRIPTOR > & getSuperLattice ()
 
bool operator() (T output[], const int input[])
 
- Public Member Functions inherited from olb::SuperF3D< T, T >
SuperF3D< T, T > & operator- (SuperF3D< T, T > &rhs)
 
SuperF3D< T, T > & operator+ (SuperF3D< T, T > &rhs)
 
SuperF3D< T, T > & operator* (SuperF3D< T, T > &rhs)
 
SuperF3D< T, T > & operator/ (SuperF3D< T, T > &rhs)
 
SuperStructure< T, 3 > & getSuperStructure ()
 
int getBlockFSize () const
 
BlockF3D< T > & getBlockF (int iCloc)
 
bool operator() (T output[], const int input[])
 
- 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::SuperLatticeF3D< T, DESCRIPTOR >
using identity_functor_type = SuperLatticeIdentity3D<T,DESCRIPTOR>
 
- Public Types inherited from olb::SuperF3D< T, T >
using identity_functor_type
 
- 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)
 
- Static Public Attributes inherited from olb::SuperF3D< T, T >
static constexpr bool isSuper
 
static constexpr unsigned d
 
- Protected Member Functions inherited from olb::SuperLatticePhysF3D< T, DESCRIPTOR >
 SuperLatticePhysF3D (SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, int targetDim)
 
- Protected Member Functions inherited from olb::SuperLatticeF3D< T, DESCRIPTOR >
 SuperLatticeF3D (SuperLattice< T, DESCRIPTOR > &superLattice, int targetDim)
 
- Protected Member Functions inherited from olb::SuperF3D< T, T >
 SuperF3D (SuperStructure< T, 3 > &superStructure, int targetDim)
 
- Protected Member Functions inherited from olb::GenericF< T, S >
 GenericF (int targetDim, int sourceDim)
 
- Protected Attributes inherited from olb::SuperLatticePhysF3D< T, DESCRIPTOR >
const UnitConverter< T, DESCRIPTOR > & _converter
 
- Protected Attributes inherited from olb::SuperLatticeF3D< T, DESCRIPTOR >
SuperLattice< T, DESCRIPTOR > & _sLattice
 
- Protected Attributes inherited from olb::SuperF3D< T, T >
SuperStructure< T, 3 > & _superStructure
 
std::vector< std::unique_ptr< BlockF3D< T > > > _blockF
 Super functors may consist of several BlockF3D<W> derived functors.
 

Detailed Description

template<typename T, typename DESCRIPTOR>
class olb::SuperLatticePhysDrag3D< T, DESCRIPTOR >

functor to get pointwise phys force acting on a indicated boundary on local lattice

Definition at line 62 of file superLatticeIntegralF3D.h.

Constructor & Destructor Documentation

◆ SuperLatticePhysDrag3D() [1/2]

template<typename T , typename DESCRIPTOR >
olb::SuperLatticePhysDrag3D< T, DESCRIPTOR >::SuperLatticePhysDrag3D ( SuperLattice< T, DESCRIPTOR > & sLattice,
FunctorPtr< SuperIndicatorF3D< T > > && indicatorF,
const UnitConverter< T, DESCRIPTOR > & converter )

Definition at line 42 of file superLatticeIntegralF3D.hh.

46 : SuperLatticePhysF3D<T, DESCRIPTOR>(sLattice, converter, 3),
47 _indicatorF(std::move(indicatorF)),
48 _facesF(*_indicatorF, converter),
49 _pBoundForceF(sLattice, *_indicatorF, converter),
50 _sumF(_pBoundForceF, *_indicatorF),
51 _factor(2./( converter.getPhysDensity()*converter.getCharPhysVelocity()*converter.getCharPhysVelocity() ))
52{
53 this->getName() = "physDrag";
54
55 for (int iC = 0; iC < this->getSuperStructure().getLoadBalancer().size(); ++iC) {
56 this->_blockF.emplace_back(
57 new BlockLatticePhysDrag3D<T,DESCRIPTOR>(
58 sLattice.getBlock(iC),
59 indicatorF->getBlockIndicatorF(iC),
60 converter)
61 );
62 }
63}
std::string & getName()
read and write access to name
Definition genericF.hh:51
SuperStructure< T, 3 > & getSuperStructure()
std::vector< std::unique_ptr< BlockF3D< T > > > _blockF
Super functors may consist of several BlockF3D<W> derived functors.
LoadBalancer< T > & getLoadBalancer()
Read and write access to the load balancer.

References olb::SuperF3D< T, T >::_blockF, olb::SuperLattice< T, DESCRIPTOR >::getBlock(), olb::SuperStructure< T, D >::getLoadBalancer(), olb::GenericF< T, S >::getName(), and olb::SuperF3D< T, T >::getSuperStructure().

+ Here is the call graph for this function:

◆ SuperLatticePhysDrag3D() [2/2]

template<typename T , typename DESCRIPTOR >
olb::SuperLatticePhysDrag3D< T, DESCRIPTOR >::SuperLatticePhysDrag3D ( SuperLattice< T, DESCRIPTOR > & sLattice,
SuperGeometry< T, 3 > & superGeometry,
const int material,
const UnitConverter< T, DESCRIPTOR > & converter )

Definition at line 66 of file superLatticeIntegralF3D.hh.

70 : SuperLatticePhysDrag3D(sLattice,
71 superGeometry.getMaterialIndicator(material),
72 converter)
73{ }
std::unique_ptr< SuperIndicatorF< T, D > > getMaterialIndicator(std::vector< int > &&materials)
Returns a material indicator using the given vector of materials.
SuperLatticePhysDrag3D(SuperLattice< T, DESCRIPTOR > &sLattice, FunctorPtr< SuperIndicatorF3D< T > > &&indicatorF, const UnitConverter< T, DESCRIPTOR > &converter)

Member Function Documentation

◆ operator()()

template<typename T , typename DESCRIPTOR >
bool olb::SuperLatticePhysDrag3D< T, DESCRIPTOR >::operator() ( T output[],
const int input[] )
override

Definition at line 76 of file superLatticeIntegralF3D.hh.

77{
78 T faces[7] = { };
79 T sum[4] = { };
80 _sumF(sum, input);
81 _facesF(faces, input);
82
83 output[0] = _factor * sum[0] / faces[0];
84 output[1] = _factor * sum[1] / faces[1];
85 output[2] = _factor * sum[2] / faces[2];
86
87 return true;
88}

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