34template<
class BasePhaseModel>
36Foam::AnisothermalPhaseModel<BasePhaseModel>::filterPressureWork
38 const tmp<volScalarField>& pressureWork
43 const scalar pressureWorkAlphaLimit =
44 this->thermo_->getOrDefault(
"pressureWorkAlphaLimit", scalar(0));
46 if (pressureWorkAlphaLimit > 0)
50 max(
alpha - pressureWorkAlphaLimit, scalar(0))
51 /
max(
alpha - pressureWorkAlphaLimit, pressureWorkAlphaLimit)
61template<
class BasePhaseModel>
65 const word& phaseName,
69 BasePhaseModel(
fluid, phaseName, index)
75template<
class BasePhaseModel>
78 BasePhaseModel::correctThermo();
80 this->thermo_->correct();
84template<
class BasePhaseModel>
91template<
class BasePhaseModel>
136 if (he.
name() == this->thermo_->phasePropertyName(
"e"))
138 tEEqn.ref() += filterPressureWork
144 else if (this->thermo_->dpdt())
CGAL::Exact_predicates_exact_constructions_kernel K
virtual void correctThermo()
Correct the thermodynamics.
AnisothermalPhaseModel(const phaseSystem &fluid, const word &phaseName, const label index)
Construct from phase system and phase name.
virtual bool isothermal() const
Return whether the phase is isothermal.
virtual tmp< fvScalarMatrix > heEqn()
Return the enthalpy equation.
const word & name() const noexcept
Return the object name.
Class to represent a system of phases and model interfacial transfers between them.
A class for managing temporary objects.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
A class for handling words, derived from Foam::string.
volScalarField::Internal contErr((fvc::ddt(rho)+fvc::div(rhoPhi) -(fvOptions(alpha1, mixture.thermo1().rho())&rho1) -(fvOptions(alpha2, mixture.thermo2().rho())&rho2))())
volScalarField alphaEff("alphaEff", turbulence->nu()/Pr+alphat)
tmp< surfaceScalarField > talphaPhi
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.
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
tmp< surfaceScalarField > absolute(const tmp< surfaceScalarField > &tphi, const volVectorField &U)
Return the given relative flux in absolute form.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
tmp< fvMatrix< Type > > ddt(const GeometricField< Type, fvPatchField, volMesh > &vf)
zeroField Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
GeometricField< vector, fvPatchField, volMesh > volVectorField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
tmp< volScalarField > trho
psiReactionThermo & thermo
surfaceScalarField alphaPhi(phi.name()+alpha1.name(), fvc::flux(phi, alpha1, alphaScheme))