OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::SunDragModel< T, Lattice, Particle > Class Template Reference

Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Sun, Guo, Wang et al. More...

#include <dragModels3D.h>

+ Inheritance diagram for olb::SunDragModel< T, Lattice, Particle >:
+ Collaboration diagram for olb::SunDragModel< T, Lattice, Particle >:

Public Member Functions

 SunDragModel (UnitConverter< T, Lattice > &converter)
 Constructor.
 
virtual T operator() (Particle< T > *p, T latticeVelF[], T latticeVelP[], int globicFull[], T continuousPhaseFraction=1.) override
 Returns the scalar drag coefficient. globicFull = { globic, latticeRoundedP[0, ..., 2] }.
 
std::string name () override
 
- Public Member Functions inherited from olb::DragModelBase< T, Lattice, Particle >
 DragModelBase (UnitConverter< T, Lattice > &converter)
 Constructor.
 

Additional Inherited Members

- Protected Attributes inherited from olb::DragModelBase< T, Lattice, Particle >
UnitConverter< T, Lattice > & _converter
 Returns the scalar drag coefficient to overload.
 
- Protected Attributes inherited from olb::DragModel< T, Particle >
std::shared_ptr< ParticleReynoldsNumber< T, Particle > > _reP
 Functional to compute particle Reynolds number.
 

Detailed Description

template<typename T, typename Lattice, template< typename V > class Particle>
class olb::SunDragModel< T, Lattice, Particle >

Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Sun, Guo, Wang et al.

(2015).

Definition at line 153 of file dragModels3D.h.

Constructor & Destructor Documentation

◆ SunDragModel()

template<typename T , typename Lattice , template< typename V > class Particle>
olb::SunDragModel< T, Lattice, Particle >::SunDragModel ( UnitConverter< T, Lattice > & converter)

Constructor.

Definition at line 211 of file dragModels3D.hh.

212 : DragModelBase<T,Lattice,Particle>(converter)
213{
214 this->_reP = std::make_shared<NewtonianParticleReynoldsNumber<T,Lattice,Particle> > (this->_converter);
215}
UnitConverter< T, Lattice > & _converter
Returns the scalar drag coefficient to overload.
std::shared_ptr< ParticleReynoldsNumber< T, Particle > > _reP
Functional to compute particle Reynolds number.

References olb::DragModelBase< T, Lattice, Particle >::_converter, and olb::DragModel< T, Particle >::_reP.

Member Function Documentation

◆ name()

template<typename T , typename Lattice , template< typename V > class Particle>
std::string olb::SunDragModel< T, Lattice, Particle >::name ( )
inlineoverridevirtual

Implements olb::DragModel< T, Particle >.

Definition at line 159 of file dragModels3D.h.

159{return "SunDragModel";}

◆ operator()()

template<typename T , typename Lattice , template< typename V > class Particle>
T olb::SunDragModel< T, Lattice, Particle >::operator() ( Particle< T > * p,
T latticeVelF[],
T latticeVelP[],
int globicFull[],
T continuousPhaseFraction = 1. )
overridevirtual

Returns the scalar drag coefficient. globicFull = { globic, latticeRoundedP[0, ..., 2] }.

Implements olb::DragModel< T, Particle >.

Definition at line 218 of file dragModels3D.hh.

220{
221 T physVelRelative = this->_converter.getPhysVelocity (
222 util::sqrt( util::pow(latticeVelF[0] - latticeVelP[0],2) +
223 util::pow(latticeVelF[1] - latticeVelP[1],2) +
224 util::pow(latticeVelF[2] - latticeVelP[2],2) ) );
225
226 T ReP = continuousPhaseFraction * this->_reP->operator() (p, physVelRelative, globicFull);
227
228 if (ReP <= 10.) {
229 return 1.2 * 24./ReP * ( 1. + 0.173*util::pow(ReP, 0.675) );
230 }
231 else if (ReP <= 100. ) {
232 return 0.813 * 24./ReP * ( 1. + 24.*util::pow(ReP, -1.125) );
233 }
234 else {
235 return 1.07 * 24./ReP * ( -1. + 0.037*util::pow(ReP, 0.825) );
236 }
237}
constexpr T getPhysVelocity(T latticeVelocity) const
conversion from lattice to physical velocity
cpu::simd::Pack< T > sqrt(cpu::simd::Pack< T > value)
Definition pack.h:100
cpu::simd::Pack< T > pow(cpu::simd::Pack< T > base, cpu::simd::Pack< T > exp)
Definition pack.h:112

References olb::util::pow(), and olb::util::sqrt().

+ Here is the call graph for this function:

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