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...
#include <NonSphereDragForce.H>


Public Member Functions | |
| TypeName ("nonSphereDrag") | |
| Runtime type information. | |
| NonSphereDragForce (CloudType &owner, const fvMesh &mesh, const dictionary &dict) | |
| Construct from mesh. | |
| NonSphereDragForce (const NonSphereDragForce< CloudType > &df) | |
| Construct copy. | |
| virtual autoPtr< ParticleForce< CloudType > > | clone () const |
| Construct and return a clone. | |
| void | operator= (const NonSphereDragForce< CloudType > &)=delete |
| No copy assignment. | |
| virtual | ~NonSphereDragForce ()=default |
| Destructor. | |
| 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. | |
| Public Member Functions inherited from ParticleForce< CloudType > | |
| TypeName ("particleForce") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, ParticleForce, dictionary,(CloudType &owner, const fvMesh &mesh, const dictionary &dict),(owner, mesh, dict)) | |
| Declare runtime constructor selection table. | |
| ParticleForce (CloudType &owner, const fvMesh &mesh, const dictionary &dict, const word &forceType, const bool readCoeffs) | |
| Construct from mesh. | |
| ParticleForce (const ParticleForce &pf) | |
| Construct copy. | |
| virtual | ~ParticleForce () |
| Destructor. | |
| const CloudType & | owner () const noexcept |
| Return const access to the cloud owner. | |
| CloudType & | owner () noexcept |
| Return reference to the cloud owner. | |
| const fvMesh & | mesh () const noexcept |
| Return the mesh database. | |
| const dictionary & | coeffs () const noexcept |
| Return the force coefficients dictionary. | |
| virtual void | cacheFields (const bool store) |
| Cache fields. | |
| 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. | |
| virtual scalar | massAdd (const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar mass) const |
| Return the added mass. | |
Protected Member Functions | |
| scalar | CdRe (const scalar Re) const |
| Drag coefficient multiplied by Reynolds number. | |
Protected Attributes | |
| scalar | phi_ |
| Ratio of surface of sphere having same volume as particle to actual surface area of particle (0 < phi <= 1). | |
| 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. | |
| 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. | |
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}
\]](form_593.png)
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}
\]](form_614.png)
where
![\[ A = \exp(2.3288 - 6.4581\phi + 2.4486 \phi^2)
\]](form_615.png)
![\[ B = 0.0964 + 0.5565\phi
\]](form_616.png)
![\[ C = \exp(4.9050 - 13.8944\phi + 18.4222\phi^2 - 10.2599 \phi^3)
\]](form_617.png)
![\[ D = \exp(1.4681 + 12.2584\phi - 20.7322\phi^2 + 15.8855\phi^3)
\]](form_618.png)
![\[ \phi = \frac{A_p}{A_a}
\]](form_619.png)
![\[ \mathrm{Re}_p =
\frac{\rho_c \, | \mathbf{u}_\mathrm{rel} | \, d_p}{\mu_c}
\]](form_576.png)
where
![]() | = | Drag force per carrier-fluid velocity [kg/s] |
![]() | = | Particle drag coefficient |
![]() | = | Particle Reynolds number |
![]() | = | Particle mass density |
![]() | = | Dynamic viscosity of carrier at the cell occupying particle |
![]() | = | Particle diameter |
![]() | = | Density of carrier at the cell occupying particle |
![]() | = | Relative velocity between particle and carrier |
![]() | = | Surface area of sphere with the same volume as the particle |
![]() | = | Actual surface area of the particle |
![]() | = | Ratio of surface areas |
Constraints:

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
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 | - |
phi is presumed constant, Eq. 12 offers little benefit.
Definition at line 220 of file NonSphereDragForce.H.
| NonSphereDragForce | ( | CloudType & | owner, |
| const fvMesh & | mesh, | ||
| const dictionary & | dict ) |
Construct from mesh.
Definition at line 37 of file NonSphereDragForce.C.
References a_, b_, c_, ParticleForce< CloudType >::coeffs(), d_, dict, Foam::exit(), Foam::exp(), Foam::FatalError, FatalErrorInFunction, Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, ParticleForce< CloudType >::mesh(), ParticleForce< CloudType >::owner(), ParticleForce< CloudType >::ParticleForce(), phi_, Foam::pow3(), and Foam::sqr().
Referenced by clone(), NonSphereDragForce(), operator=(), and TypeName().


Construct copy.
Definition at line 62 of file NonSphereDragForce.C.
References a_, b_, c_, d_, NonSphereDragForce(), ParticleForce< CloudType >::ParticleForce(), and phi_.

|
virtualdefault |
|
protected |
Drag coefficient multiplied by Reynolds number.
Definition at line 27 of file NonSphereDragForce.C.
References a_, b_, c_, d_, Foam::pow(), and Foam::Re().
Referenced by calcCoupled().


| TypeName | ( | "nonSphereDrag" | ) |
Runtime type information.
References dict, ParticleForce< CloudType >::mesh(), NonSphereDragForce(), and ParticleForce< CloudType >::owner().

|
inlinevirtual |
Construct and return a clone.
Reimplemented from ParticleForce< CloudType >.
Definition at line 282 of file NonSphereDragForce.H.
References NonSphereDragForce().

|
delete |
|
virtual |
Calculate the non-coupled force.
Reimplemented from ParticleForce< CloudType >.
Definition at line 79 of file NonSphereDragForce.C.
References CdRe(), p, Foam::Re(), Foam::sqr(), td(), and Foam::Zero.

|
protected |
Ratio of surface of sphere having same volume as particle to actual surface area of particle (0 < phi <= 1).
Definition at line 232 of file NonSphereDragForce.H.
Referenced by NonSphereDragForce(), and NonSphereDragForce().
|
protected |
Definition at line 237 of file NonSphereDragForce.H.
Referenced by CdRe(), NonSphereDragForce(), and NonSphereDragForce().
|
protected |
Definition at line 239 of file NonSphereDragForce.H.
Referenced by CdRe(), NonSphereDragForce(), and NonSphereDragForce().
|
protected |
Definition at line 241 of file NonSphereDragForce.H.
Referenced by CdRe(), NonSphereDragForce(), and NonSphereDragForce().
|
protected |
Definition at line 243 of file NonSphereDragForce.H.
Referenced by CdRe(), NonSphereDragForce(), and NonSphereDragForce().