43 template<
class BasePhaseModel>
47 const word& phaseName,
51 BasePhaseModel(
fluid, phaseName, index),
56 fluid.subDict(phaseName)
69 this->thermo_->readIfPresent(
"inertSpecie",
inertSpecie)
80 if (i !=
inertIndex_ && this->thermo_->composition().active(i))
92 template<
class BasePhaseModel>
99 template<
class BasePhaseModel>
118 if (i != inertIndex_)
124 if (inertIndex_ != -1)
126 Yi[inertIndex_] = scalar(1) -
Yt;
127 Yi[inertIndex_].clamp_min(0);
142 template<
class BasePhaseModel>
149 template<
class BasePhaseModel>
161 +
fvm::div(alphaRhoPhi, Yi,
"div(" + alphaRhoPhi.name() +
",Yi)")
178 template<
class BasePhaseModel>
182 return this->thermo_->composition().Y();
186 template<
class BasePhaseModel>
190 return this->thermo_->composition().Y(
name);
194 template<
class BasePhaseModel>
198 return this->thermo_->composition().Y();
202 template<
class BasePhaseModel>
210 template<
class BasePhaseModel>
virtual UPtrList< volScalarField > & YActiveRef()
Access the active species mass fractions.
label inertIndex_
Inert species index.
virtual tmp< fvScalarMatrix > YiEqn(volScalarField &Yi)
Return the species fraction equation.
const word inertSpecie(thermo.get< word >("inertSpecie"))
virtual ~MultiComponentPhaseModel()=default
Destructor.
tmp< volScalarField > trho
Calculate the matrix for the laplacian of the field.
const dimensionSet dimless
Dimensionless.
virtual const PtrList< volScalarField > & Y() const
Constant access the species mass fractions.
#define forAll(list, i)
Loop across all elements in list.
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
Calculate the first temporal derivative.
psiReactionThermo & thermo
MultiComponentPhaseModel(const multiphaseInterSystem &fluid, const word &phaseName)
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Class to represent a system of phases and model interfacial transfers between them.
A class for handling words, derived from Foam::string.
tmp< fvMatrix< Type > > ddt(const GeometricField< Type, fvPatchField, volMesh > &vf)
Calculate the matrix for the first temporal derivative.
virtual bool pure() const
Return whether the phase is pure (i.e., not multi-component)
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
Calculate the divergence of the given field.
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
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.
virtual void correctThermo()
Correct the thermodynamics.
virtual const UPtrList< volScalarField > & YActive() const
Return the active species mass fractions.
Calculate the matrix for the divergence of the given field and flux.
virtual PtrList< volScalarField > & YRef()
Access the species mass fractions.
#define R(A, B, C, D, E, F, K, M)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
A class for managing temporary objects.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
Defines the attributes of an object for which implicit objectRegistry management is supported...
UPtrList< volScalarField > YActive_
Pointer list to active species.
Calculate the finiteVolume matrix for implicit and explicit sources.
volScalarField Yt(0.0 *Y[0])