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

Class to compute the standard drag coefficient as in Schiller and Naumann (1935). More...

#include <dragModels3D.h>

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

Public Member Functions

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

Class to compute the standard drag coefficient as in Schiller and Naumann (1935).

Definition at line 105 of file dragModels3D.h.

Constructor & Destructor Documentation

◆ SchillerNaumannDragModel()

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

Constructor.

Definition at line 137 of file dragModels3D.hh.

138 : DragModelBase<T,Lattice,Particle>(converter)
139{
140 this->_reP = std::make_shared<NewtonianParticleReynoldsNumber<T,Lattice,Particle> > (this->_converter);
141}
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::SchillerNaumannDragModel< T, Lattice, Particle >::name ( )
inlineoverridevirtual

Implements olb::DragModel< T, Particle >.

Definition at line 111 of file dragModels3D.h.

111{return "SchillerNaumannDragModel";}

◆ operator()()

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

146{
147 T physVelRelative = this->_converter.getPhysVelocity (
148 util::sqrt( util::pow(latticeVelF[0] - latticeVelP[0],2) +
149 util::pow(latticeVelF[1] - latticeVelP[1],2) +
150 util::pow(latticeVelF[2] - latticeVelP[2],2) ) );
151
152 T ReP = continuousPhaseFraction * this->_reP->operator() (p, physVelRelative, globicFull);
153
154 return ReP > 1000.
155 ? 0.44
156 : ( 24. * (1. + 0.15 * util::pow(ReP, 0.687)) / ReP );
157}
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: