46 Foam::dragModels::AttouFerschneider::KGasLiquid
48 const phaseModel& gas,
49 const phaseModel& liquid
52 const phaseModel& solid = gas.fluid().phases()[solidName_];
57 cbrt(
max(solid, solid.residualAlpha())/oneMinusGas)
62 E2_*gas.thermo().mu()*
sqr(oneMinusGas/solid.d())*
sqr(cbrtR)
63 /
max(gas, gas.residualAlpha())
64 + E2_*gas.rho()*magURel*(1 - gas)/solid.d()*cbrtR;
69 Foam::dragModels::AttouFerschneider::KGasSolid
71 const phaseModel& gas,
72 const phaseModel& solid
78 cbrt(
max(solid, solid.residualAlpha())/oneMinusGas)
82 E1_*gas.thermo().mu()*
sqr(oneMinusGas/solid.d())*
sqr(cbrtR)
83 /
max(gas, gas.residualAlpha())
84 + E2_*gas.rho()*
mag(gas.U())*(1 - gas)/solid.d()*cbrtR;
89 Foam::dragModels::AttouFerschneider::KLiquidSolid
91 const phaseModel& liquid,
92 const phaseModel& solid
95 const phaseModel& gas = liquid.fluid().phases()[gasName_];
98 E1_*liquid.thermo().mu()
99 *
sqr(
max(solid, solid.residualAlpha())/solid.d())
100 /
max(liquid, liquid.residualAlpha())
101 + E2_*liquid.rho()*
mag(gas.U())*solid/solid.d();
109 const dictionary&
dict,
110 const phasePair& pair,
111 const bool registerObject
114 dragModel(dict, pair, registerObject),
115 gasName_(dict.
lookup(
"gas")),
116 liquidName_(dict.
lookup(
"liquid")),
117 solidName_(dict.
lookup(
"solid")),
135 <<
"Not implemented." 136 <<
"Drag coefficient is not defined for the AttouFerschneider model." 139 return tmp<volScalarField>(
nullptr);
171 <<
"The pair does not contain two of out of the gas, liquid and solid " 175 return tmp<volScalarField>(
nullptr);
const phaseModel & phase2() const
Return phase 2.
virtual tmp< volScalarField > K() const
The drag coefficient used in the momentum equation.
errorManipArg< error, int > exit(error &err, const int errNo=1)
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const phaseModel & phase1() const
Return phase 1.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
static int compare(const Pair< word > &a, const Pair< word > &b)
Compare Pairs.
virtual tmp< surfaceScalarField > Kf() const
The drag coefficient used in the face-momentum equations.
virtual ~AttouFerschneider()
Destructor.
const dimensionSet dimless
Macros for easy insertion into run-time selection tables.
AttouFerschneider(const dictionary &dict, const phasePair &pair, const bool registerObject)
Construct from a dictionary and a phase pair.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
virtual tmp< volScalarField > K() const
Return the drag coefficient K.
stressControl lookup("compactNormalStress") >> compactNormalStress
dimensionedScalar cbrt(const dimensionedScalar &ds)
const phasePair & pair_
Phase pair.
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
defineTypeNameAndDebug(combustionModel, 0)
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.
dimensioned< scalar > mag(const dimensioned< Type > &)
A class for managing temporary objects.
virtual tmp< volScalarField > CdRe() const
Drag coefficient.