48Foam::dragModels::AttouFerschneider::KGasLiquid
50 const phaseModel& gas,
51 const phaseModel& liquid
54 const phaseModel& solid = gas.fluid().phases()[solidName_];
59 cbrt(
max(solid, solid.residualAlpha())/oneMinusGas)
64 E2_*gas.mu()*
sqr(oneMinusGas/solid.d())*
sqr(cbrtR)
65 /
max(gas, gas.residualAlpha())
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;
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())
101 /
max(liquid, liquid.residualAlpha())
102 + E2_*liquid.rho()*
mag(gas.U())*solid/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());
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.
An ordered pair of two objects of type <T> with first() and second() elements.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
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.
virtual tmp< volScalarField > K() const
The drag coefficient used in the momentum equation.
virtual tmp< volScalarField > CdRe() const
Drag coefficient.
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...
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)
dimensionedScalar cbrt(const dimensionedScalar &ds)
errorManipArg< error, int > exit(error &err, const int errNo=1)