NonSphereDragForce< CloudType > Class Template Reference

Particle-drag model wherein drag forces (per unit carrier-fluid velocity) are dynamically computed based on empirical expressions using a four-parameter general drag correlation for non-spherical particles. More...

Inheritance diagram for NonSphereDragForce< CloudType >:
[legend]
Collaboration diagram for NonSphereDragForce< CloudType >:
[legend]

Public Member Functions

 TypeName ("nonSphereDrag")
 Runtime type information. More...
 
 NonSphereDragForce (CloudType &owner, const fvMesh &mesh, const dictionary &dict)
 Construct from mesh. More...
 
 NonSphereDragForce (const NonSphereDragForce< CloudType > &df)
 Construct copy. More...
 
virtual autoPtr< ParticleForce< CloudType > > clone () const
 Construct and return a clone. More...
 
void operator= (const NonSphereDragForce< CloudType > &)=delete
 No copy assignment. More...
 
virtual ~NonSphereDragForce ()=default
 Destructor. More...
 
virtual forceSuSp calcCoupled (const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar dt, const scalar mass, const scalar Re, const scalar muc) const
 Calculate the non-coupled force. More...
 
- Public Member Functions inherited from ParticleForce< CloudType >
 TypeName ("particleForce")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, ParticleForce, dictionary,(CloudType &owner, const fvMesh &mesh, const dictionary &dict),(owner, mesh, dict))
 Declare runtime constructor selection table. More...
 
 ParticleForce (CloudType &owner, const fvMesh &mesh, const dictionary &dict, const word &forceType, const bool readCoeffs)
 Construct from mesh. More...
 
 ParticleForce (const ParticleForce &pf)
 Construct copy. More...
 
virtual autoPtr< ParticleForce< CloudType > > clone () const
 Construct and return a clone. More...
 
virtual ~ParticleForce ()
 Destructor. More...
 
const CloudTypeowner () const
 Return const access to the cloud owner. More...
 
CloudTypeowner ()
 Return reference to the cloud owner. More...
 
const fvMeshmesh () const
 Return the mesh database. More...
 
const dictionarycoeffs () const
 Return the force coefficients dictionary. More...
 
virtual void cacheFields (const bool store)
 Cache fields. More...
 
virtual forceSuSp calcCoupled (const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar dt, const scalar mass, const scalar Re, const scalar muc) const
 Calculate the coupled force. More...
 
virtual forceSuSp calcNonCoupled (const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar dt, const scalar mass, const scalar Re, const scalar muc) const
 Calculate the non-coupled force. More...
 
virtual scalar massAdd (const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar mass) const
 Return the added mass. More...
 

Protected Member Functions

scalar CdRe (const scalar Re) const
 Drag coefficient multiplied by Reynolds number. More...
 

Protected Attributes

scalar phi_
 
scalar a_
 
scalar b_
 
scalar c_
 
scalar d_
 

Additional Inherited Members

- Public Types inherited from ParticleForce< CloudType >
typedef VectorSpace< Vector< vector >, vector, 2 > returnType
 Convenience typedef for return type. More...
 
- Static Public Member Functions inherited from ParticleForce< CloudType >
static autoPtr< ParticleForce< CloudType > > New (CloudType &owner, const fvMesh &mesh, const dictionary &dict, const word &forceType)
 Selector. More...
 

Detailed Description

template<class CloudType>
class Foam::NonSphereDragForce< CloudType >

Particle-drag model wherein drag forces (per unit carrier-fluid velocity) are dynamically computed based on empirical expressions using a four-parameter general drag correlation for non-spherical particles.

\[ \mathrm{F}_\mathrm{D} = \frac{3}{4} \frac{\mu_c\,\mathrm{C}_\mathrm{D}\,\mathrm{Re}_p}{\rho_p \, d_p^2} \]

with

\[ \mathrm{C}_\mathrm{D} = \frac{24}{\mathrm{Re}_p} \left( 1 + A \, \mathrm{Re}_p^B \right) + \frac{C \, \mathrm{Re}_p}{D + \mathrm{Re}_p} \]

where

\[ A = \exp(2.3288 - 6.4581\phi + 2.4486 \phi^2) \]

\[ B = 0.0964 + 0.5565\phi \]

\[ C = \exp(4.9050 - 13.8944\phi + 18.4222\phi^2 - 10.2599 \phi^3) \]

\[ D = \exp(1.4681 + 12.2584\phi - 20.7322\phi^2 + 15.8855\phi^3) \]

\[ \phi = \frac{A_p}{A_a} \]

\[ \mathrm{Re}_p = \frac{\rho_c \, | \mathbf{u}_\mathrm{rel} | \, d_p}{\mu_c} \]

where

\( \mathrm{F}_\mathrm{D} \) = Drag force per carrier-fluid velocity [kg/s]
\( \mathrm{C}_\mathrm{D} \) = Particle drag coefficient
\( \mathrm{Re}_p \) = Particle Reynolds number
\( \rho_p \) = Particle mass density
\( \mu_c \) = Dynamic viscosity of carrier at the cell occupying particle
\( d_p \) = Particle diameter
\( \rho_c \) = Density of carrier at the cell occupying particle
\( \mathbf{u}_\mathrm{rel} \) = Relative velocity between particle and carrier
\( A_p \) = Surface area of sphere with the same volume as the particle
\( A_a \) = Actual surface area of the particle
\( \phi \) = Ratio of surface areas

Constraints:

  • Applicable to particles with a spatially homogeneous distribution.
  • \( 1 \geq \phi > 0 \)

References:

        Standard model (tag:HL), (Eq. 4,10-11):
            Haider, A., & Levenspiel, O. (1989).
            Drag coefficient and terminal velocity of
            spherical and nonspherical particles.
            Powder technology, 58(1), 63-70.
            DOI:10.1016/0032-5910(89)80008-7
Usage
Minimal example by using constant/<CloudProperties>:
subModels
{
    particleForces
    {
        nonSphereDrag
        {
            phi    <phi>;
        }
    }
}

where the entries mean:

Property Description Type Reqd Deflt
type Type name: nonSphereDrag word yes -
phi

Ratio of surface area of sphere having same

volume as particle to actual surface area of

particle

scalar yes -
Note
  • The drag coefficient model in (HL:Eq. 11) is good to within 2 to 4 % of RMS values from the corresponding experiment.
  • (HL:Eq. 12) also give a simplified model with greater error compared to results from the experiment, but since phi is presumed constant, Eq. 12 offers little benefit.
  • \(\mathrm{F}_\mathrm{D}\) is weighted with the particle mass at the stage of a function return, so that it can later be normalised with the effective mass, if necessary (e.g. when using virtual-mass forces).
Source files

Definition at line 224 of file NonSphereDragForce.H.

Constructor & Destructor Documentation

◆ NonSphereDragForce() [1/2]

NonSphereDragForce ( CloudType owner,
const fvMesh mesh,
const dictionary dict 
)

Construct from mesh.

Definition at line 44 of file NonSphereDragForce.C.

References Foam::exit(), Foam::exp(), Foam::FatalError, FatalErrorInFunction, Foam::pow3(), and Foam::sqr().

Here is the call graph for this function:

◆ NonSphereDragForce() [2/2]

Construct copy.

Definition at line 69 of file NonSphereDragForce.C.

◆ ~NonSphereDragForce()

virtual ~NonSphereDragForce ( )
virtualdefault

Destructor.

Member Function Documentation

◆ CdRe()

Foam::scalar CdRe ( const scalar  Re) const
protected

Drag coefficient multiplied by Reynolds number.

Definition at line 34 of file NonSphereDragForce.C.

References Foam::pow(), and Foam::Re().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "nonSphereDrag"  )

Runtime type information.

◆ clone()

virtual autoPtr< ParticleForce< CloudType > > clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented from ParticleForce< CloudType >.

Definition at line 274 of file NonSphereDragForce.H.

◆ operator=()

void operator= ( const NonSphereDragForce< CloudType > &  )
delete

No copy assignment.

◆ calcCoupled()

Foam::forceSuSp calcCoupled ( const typename CloudType::parcelType p,
const typename CloudType::parcelType::trackingData td,
const scalar  dt,
const scalar  mass,
const scalar  Re,
const scalar  muc 
) const
virtual

Calculate the non-coupled force.

Reimplemented from ParticleForce< CloudType >.

Definition at line 86 of file NonSphereDragForce.C.

References p, Foam::Re(), Foam::sqr(), and Foam::Zero.

Here is the call graph for this function:

Member Data Documentation

◆ phi_

scalar phi_
protected

Ratio of surface of sphere having same volume as particle to actual surface area of particle (0 < phi <= 1)

Definition at line 234 of file NonSphereDragForce.H.

◆ a_

scalar a_
protected

Definition at line 239 of file NonSphereDragForce.H.

◆ b_

scalar b_
protected

Definition at line 241 of file NonSphereDragForce.H.

◆ c_

scalar c_
protected

Definition at line 243 of file NonSphereDragForce.H.

◆ d_

scalar d_
protected

Definition at line 245 of file NonSphereDragForce.H.


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