48Foam::dragModels::AttouFerschneider::KGasLiquid
64 E2_*gas.
mu()*
sqr(oneMinusGas/solid.
d())*
sqr(cbrtR)
66 + E2_*gas.
rho()*magURel*(1 - gas)/solid.
d()*cbrtR;
71Foam::dragModels::AttouFerschneider::KGasSolid
73 const phaseModel& gas,
74 const phaseModel& solid
80 cbrt(
max(solid, solid.residualAlpha())/oneMinusGas)
84 E1_*gas.mu()*
sqr(oneMinusGas/solid.d())*
sqr(cbrtR)
85 /
max(gas, gas.residualAlpha())
86 + E2_*gas.rho()*
mag(gas.U())*(1 - gas)/solid.d()*cbrtR;
90Foam::tmp<Foam::volScalarField>
91Foam::dragModels::AttouFerschneider::KLiquidSolid
93 const phaseModel& liquid,
94 const phaseModel& solid
97 const phaseModel& gas = liquid.fluid().phases()[gasName_];
100 E1_*liquid.mu()*
sqr(
max(solid, solid.residualAlpha())/solid.d())
112 const bool registerObject
130 <<
"Not implemented."
131 <<
"Drag coefficient is not defined for the AttouFerschneider model."
144 return KGasLiquid(pair_.phase1(), pair_.phase2());
146 return KGasLiquid(pair_.phase2(), pair_.phase1());
152 return KGasSolid(pair_.phase1(), pair_.phase2());
154 return KGasSolid(pair_.phase2(), pair_.phase1());
157 switch (Pair<word>::compare(pair_, phasePairKey(liquidName_, solidName_)))
160 return KLiquidSolid(pair_.phase1(), pair_.phase2());
162 return KLiquidSolid(pair_.phase2(), pair_.phase1());
166 <<
"The pair does not contain two of out of the gas, liquid and solid "
CGAL::Exact_predicates_exact_constructions_kernel K
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
bool registerObject() const noexcept
Should objects created with this IOobject be registered?
static int compare(const Pair< T > &a, const Pair< T > &b)
Compare Pairs.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
dragModel(const phasePair &pair, const bool registerObject)
const phasePair & pair_
Phase pair.
Attou and Ferschneider's Drag model for film flow through packed beds. The implementation follows the...
virtual tmp< surfaceScalarField > Kf() const
The drag coefficient used in the face-momentum equations.
AttouFerschneider(const dictionary &dict, const phasePair &pair, const bool registerObject)
Construct from a dictionary and a phase pair.
virtual tmp< volScalarField > K() const
The drag coefficient used in the momentum equation.
virtual tmp< volScalarField > CdRe() const
Drag coefficient.
Generic thermophysical properties class for a liquid in which the functions and coefficients for each...
scalar rho(scalar p, scalar T) const
Liquid density [kg/m^3].
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const volVectorField & U() const
const phaseSystem & fluid() const
Return the system to which this phase belongs.
const dimensionedScalar & residualAlpha() const
Return the residual phase-fraction for given phase.
const dimensionedScalar & rho() const
tmp< volScalarField > d() const
virtual tmp< volScalarField > mu() const =0
Return the laminar dynamic viscosity.
An ordered or unorder pair of phase names. Typically specified as follows.
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
const phaseModelList & phases() const
Return the phase models.
Lookup type of boundary radiation properties.
A class for managing temporary objects.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
const dimensionSet dimless
Dimensionless.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
dimensionedScalar cbrt(const dimensionedScalar &ds)
errorManipArg< error, int > exit(error &err, const int errNo=1)