45 Foam::dragModels::AttouFerschneider::KGasLiquid
47 const phaseModel& gas,
48 const phaseModel& liquid
51 const phaseModel& solid = gas.fluid().phases()[solidName_];
56 cbrt(
max(solid, solid.residualAlpha())/oneMinusGas)
61 E2_*gas.thermo().mu()*
sqr(oneMinusGas/solid.d())*
sqr(cbrtR)
62 /
max(gas, gas.residualAlpha())
63 + E2_*gas.rho()*magURel*(1 - gas)/solid.d()*cbrtR;
68 Foam::dragModels::AttouFerschneider::KGasSolid
70 const phaseModel& gas,
71 const phaseModel& solid
77 cbrt(
max(solid, solid.residualAlpha())/oneMinusGas)
81 E1_*gas.thermo().mu()*
sqr(oneMinusGas/solid.d())*
sqr(cbrtR)
82 /
max(gas, gas.residualAlpha())
83 + E2_*gas.rho()*
mag(gas.U())*(1 - gas)/solid.d()*cbrtR;
88 Foam::dragModels::AttouFerschneider::KLiquidSolid
90 const phaseModel& liquid,
91 const phaseModel& solid
94 const phaseModel& gas = liquid.fluid().phases()[gasName_];
97 E1_*liquid.thermo().mu()
98 *
sqr(
max(solid, solid.residualAlpha())/solid.d())
99 /
max(liquid, liquid.residualAlpha())
100 + E2_*liquid.rho()*
mag(gas.U())*solid/solid.d();
108 const dictionary&
dict,
109 const phaseInterface& interface,
110 const bool registerObject
113 dragModel(dict, interface, registerObject),
114 interface_(interface),
115 gasName_(dict.
lookup(
"gas")),
116 liquidName_(dict.
lookup(
"liquid")),
117 solidName_(dict.
lookup(
"solid")),
140 return KGasLiquid(gas, liquid);
144 return KGasSolid(gas, solid);
148 return KLiquidSolid(liquid, solid);
152 <<
"The interface " <<
interface_.
name() <<
" does not contain two " 153 <<
"out of the gas, liquid and solid phase models." 156 return tmp<volScalarField>(
nullptr);
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
virtual tmp< volScalarField > K() const
The drag coefficient used in the momentum equation.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
virtual word name() const
Name.
virtual tmp< surfaceScalarField > Kf() const
The drag coefficient used in the face-momentum equations.
virtual ~AttouFerschneider()
Destructor.
AttouFerschneider(const dictionary &dict, const phaseInterface &interface, const bool registerObject)
Construct from a dictionary and an interface.
const dimensionSet dimless
Macros for easy insertion into run-time selection tables.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const phaseModelList & phases() const
Return the phase models.
stressControl lookup("compactNormalStress") >> compactNormalStress
dimensionedScalar cbrt(const dimensionedScalar &ds)
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.
const phaseSystem & fluid() const
Return the phase system.
bool contains(const phaseModel &phase) const
Return true if this phaseInterface contains the given phase.
const dispersedPhaseInterface interface_
Interface.
dimensioned< scalar > mag(const dimensioned< Type > &)
virtual tmp< volScalarField > K() const
Return the drag coefficient K.
A class for managing temporary objects.