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

Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Dewsbury et al. More...

#include <dragModels3D.h>

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

Public Member Functions

 DewsburyDragModel (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::DewsburyDragModel< T, Lattice, Particle >

Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Dewsbury et al.

(1999).

Definition at line 129 of file dragModels3D.h.

Constructor & Destructor Documentation

◆ DewsburyDragModel()

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

Constructor.

Definition at line 174 of file dragModels3D.hh.

175 : DragModelBase<T,Lattice,Particle>(converter)
176{
177 this->_reP = std::make_shared<NewtonianParticleReynoldsNumber<T,Lattice,Particle> > (this->_converter);
178}
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::DewsburyDragModel< T, Lattice, Particle >::name ( )
inlineoverridevirtual

Implements olb::DragModel< T, Particle >.

Reimplemented in olb::PowerLawDewsburyDragModel< T, Lattice, Particle >.

Definition at line 135 of file dragModels3D.h.

135{return "DewsburyDragModel";}

◆ operator()()

template<typename T , typename Lattice , template< typename V > class Particle>
T olb::DewsburyDragModel< 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 181 of file dragModels3D.hh.

183{
184 T physVelRelative = this->_converter.getPhysVelocity (
185 util::sqrt( util::pow(latticeVelF[0] - latticeVelP[0],2) +
186 util::pow(latticeVelF[1] - latticeVelP[1],2) +
187 util::pow(latticeVelF[2] - latticeVelP[2],2) ) );
188
189 T ReP = continuousPhaseFraction * this->_reP->operator() (p, physVelRelative, globicFull);
190
191 return ReP > 195.
192 ? 0.95
193 : ( 16./ReP * (1. + 0.173*util::pow(ReP, 0.657)) + 0.413 / (1. + 16300*util::pow(ReP, -1.09)) );
194}
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: