28#ifndef LB_DRAG_MODELS_H
29#define LB_DRAG_MODELS_H
39template<
typename T,
template<
typename V>
class Particle>
43 virtual T
operator() (Particle<T>* p, T latticeVelF[], T latticeVelP[],
int globicFull[], T continuousPhaseFraction=1.)=0;
44 virtual std::string
name()=0;
47 std::shared_ptr<ParticleReynoldsNumber<T, Particle> >
_reP;
54template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
67template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
73 virtual T
operator() (Particle<T>* p, T latticeVelF[], T latticeVelP[],
int globicFull[], T continuousPhaseFraction=1.)
override;
74 std::string
name()
override {
return "StokesSimplifiedDragModel";}
80template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
86 virtual T
operator() (Particle<T>* p, T latticeVelF[], T latticeVelP[],
int globicFull[], T continuousPhaseFraction=1.)
override;
87 std::string
name()
override {
return "MorsiDragModel";}
93template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
98 std::string
name()
override {
return "PowerLawMorsiDragModel";}
104template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
110 virtual T
operator() (Particle<T>* p, T latticeVelF[], T latticeVelP[],
int globicFull[], T continuousPhaseFraction=1.)
override;
111 std::string
name()
override {
return "SchillerNaumannDragModel";}
117template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
122 std::string
name()
override {
return "PowerLawSchillerNaumannDragModel";}
128template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
134 virtual T
operator() (Particle<T>* p, T latticeVelF[], T latticeVelP[],
int globicFull[], T continuousPhaseFraction=1.)
override;
135 std::string
name()
override {
return "DewsburyDragModel";}
141template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
146 std::string
name()
override {
return "PowerLawDewsburyDragModel";}
152template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
158 virtual T
operator() (Particle<T>* p, T latticeVelF[], T latticeVelP[],
int globicFull[], T continuousPhaseFraction=1.)
override;
159 std::string
name()
override {
return "SunDragModel";}
165template<
typename T,
typename Lattice,
template<
typename V>
class Particle>
170 std::string
name()
override {
return "PowerLawSunDragModel";}
Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Dewsbury et al.
DewsburyDragModel(UnitConverter< T, Lattice > &converter)
Constructor.
std::string name() override
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, ......
Abstact class for all the drag models.
UnitConverter< T, Lattice > & _converter
Returns the scalar drag coefficient to overload.
DragModelBase(UnitConverter< T, Lattice > &converter)
Constructor.
Abstact base class for DragModelBase.
virtual std::string name()=0
std::shared_ptr< ParticleReynoldsNumber< T, Particle > > _reP
Functional to compute particle Reynolds number.
virtual T operator()(Particle< T > *p, T latticeVelF[], T latticeVelP[], int globicFull[], T continuousPhaseFraction=1.)=0
Returns the scalar drag coefficient to overload. globicFull = { globic, latticeRoundedP[0,...
Class to compute the standard drag coefficient as in Morsi and Alexander (1972).
MorsiDragModel(UnitConverter< T, Lattice > &converter)
Constructor.
std::string name() override
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, ......
Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Dewsbury et al.
std::string name() override
PowerLawDewsburyDragModel(UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice)
Constructor.
Class to compute the standard drag coefficient as in Morsi and Alexander (1972), in a power-law fluid...
PowerLawMorsiDragModel(UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice)
Constructor.
std::string name() override
Class to compute the standard drag coefficient as in Schiller and Naumann (1935), in a power-law flui...
std::string name() override
PowerLawSchillerNaumannDragModel(UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice)
Constructor.
Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Sun,...
PowerLawSunDragModel(UnitConverter< T, Lattice > &converter, SuperLattice< T, Lattice > &sLattice)
Constructor.
std::string name() override
Class to compute the standard drag coefficient as in Schiller and Naumann (1935).
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, ......
std::string name() override
Class to compute a drag coefficient Cd=1.83 for low-Re Stokes drag.
std::string name() override
StokesSimplifiedDragModel(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, ......
Class to compute the drag coefficient for gas bubbles in a liquid fluid phase as in Sun,...
std::string name() override
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, ......
SunDragModel(UnitConverter< T, Lattice > &converter)
Constructor.
Super class maintaining block lattices for a cuboid decomposition.
Conversion between physical and lattice units, as well as discretization.
Top level namespace for all of OpenLB.