33 namespace interfaceCompositionModels
38 interfaceCompositionModel,
50 const dictionary& dict,
51 const phaseInterface& interface
54 interfaceCompositionModel(dict, interface),
59 IOobject::groupName(
"gamma1", this->interface().
name()),
70 IOobject::groupName(
"gamma2", this->interface().
name()),
83 <<
"nonRandomTwoLiquid model is suitable for two species only." 97 dict.subDict(species1Name_).lookup(
"alpha")
103 dict.subDict(species2Name_).lookup(
"alpha")
110 dict.subDict(species1Name_).lookup(
"beta")
116 dict.subDict(species2Name_).lookup(
"beta")
119 saturationModel12_.reset
123 dict.subDict(species1Name_).subDict(
"interaction"),
128 saturationModel21_.reset
132 dict.subDict(species2Name_).subDict(
"interaction"),
142 dict.subDict(species1Name_),
151 dict.subDict(species2Name_),
212 tau21*
sqr(G21)/
max(
sqr(X1 + X2*G21), small)
213 + tau12*G12/
max(
sqr(X2 + X1*G12), small)
221 tau12*
sqr(G12)/
max(
sqr(X2 + X1*G12), small)
222 + tau21*G21/
max(
sqr(X1 + X2*G21), small)
231 const word& speciesName,
235 if (speciesName == species1Name_)
239 *speciesModel1_->Yf(speciesName, Tf)
242 else if (speciesName == species2Name_)
246 *speciesModel2_->Yf(speciesName, Tf)
253 *(scalar(1) -
Yf(species1Name_, Tf) -
Yf(species2Name_, Tf));
261 const word& speciesName,
265 if (speciesName == species1Name_)
269 *speciesModel1_->YfPrime(speciesName, Tf)
272 else if (speciesName == species2Name_)
276 *speciesModel2_->YfPrime(speciesName, Tf)
const rhoReactionThermo & thermo() const
Return the thermo.
nonRandomTwoLiquid(const dictionary &dict, const phaseInterface &interface)
Construct from a dictionary and an interface.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
const hashedWordList & species() const
Return the transferring species names.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const basicSpecieMixture & otherComposition() const
Return the other composition.
const sidedPhaseInterface & interface() const
Return the interface.
const dimensionSet dimless
virtual tmp< volScalarField > Yf(const word &speciesName, const volScalarField &Tf) const
The interface species fraction.
Macros for easy insertion into run-time selection tables.
static autoPtr< saturationModel > New(const dictionary &dict, const phaseInterface &interface, const bool outer=true)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
dimensionedScalar exp(const dimensionedScalar &ds)
virtual tmp< volScalarField > Yf(const word &speciesName, const volScalarField &Tf) const =0
Interface mass fraction.
virtual tmp< volScalarField > YfPrime(const word &speciesName, const volScalarField &Tf) const
The interface species fraction derivative w.r.t. temperature.
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
defineTypeNameAndDebug(combustionModel, 0)
virtual void update(const volScalarField &Tf)
Update the composition.
const dimensionSet dimMass
word name(const complex &)
Return a string representation of a complex.
static autoPtr< interfaceCompositionModel > New(const dictionary &dict, const phaseInterface &interface, const bool outer=true)
virtual ~nonRandomTwoLiquid()
Destructor.
const basicSpecieMixture & composition() const
Return the composition.
const dimensionSet dimMoles
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const scalarList W(::W(thermo))
PtrList< volScalarField > & Y
virtual tmp< volScalarField > YfPrime(const word &speciesName, const volScalarField &Tf) const =0
The interface mass fraction derivative w.r.t. temperature.
A class for managing temporary objects.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
const dimensionSet dimTemperature
const speciesTable & species() const
Return the table of species.