Go to the documentation of this file.
32 template<
class ThermoType>
43 new ThermoType(
thermoDict.subDict(species_[i]))
47 return speciesData_[0];
51 template<
class ThermoType>
57 for (label
n=1;
n<Y_.size();
n++)
62 if (
mag(
max(
Yt).value()) < ROOTVSMALL)
65 <<
"Sum of mass fractions is zero for species " << this->species()
78 template<
class ThermoType>
89 speciesData_(species_.size()),
90 mixture_(
"mixture", *thermoData[specieNames[0]]),
91 mixtureVol_(
"volMixture", *thermoData[specieNames[0]])
98 new ThermoType(*thermoData[species_[i]])
102 correctMassFractions();
106 template<
class ThermoType>
111 const word& phaseName
121 speciesData_(species_.size()),
122 mixture_(
"mixture", constructSpeciesData(
thermoDict)),
123 mixtureVol_(
"volMixture", speciesData_[0])
125 correctMassFractions();
131 template<
class ThermoType>
137 mixture_ = Y_[0][celli]*speciesData_[0];
139 for (label
n=1;
n<Y_.size();
n++)
141 mixture_ += Y_[
n][celli]*speciesData_[
n];
148 template<
class ThermoType>
155 mixture_ = Y_[0].boundaryField()[patchi][facei]*speciesData_[0];
157 for (label
n=1;
n<Y_.size();
n++)
159 mixture_ += Y_[
n].boundaryField()[patchi][facei]*speciesData_[
n];
166 template<
class ThermoType>
177 rhoInv += Y_[i][celli]/speciesData_[i].rho(
p,
T);
181 Y_[0][celli]/speciesData_[0].rho(
p,
T)/rhoInv*speciesData_[0];
183 for (label
n=1;
n<Y_.size();
n++)
186 Y_[
n][celli]/speciesData_[
n].rho(
p,
T)/rhoInv*speciesData_[
n];
193 template<
class ThermoType>
207 Y_[i].boundaryField()[patchi][facei]/speciesData_[i].rho(
p,
T);
211 Y_[0].boundaryField()[patchi][facei]/speciesData_[0].rho(
p,
T)/rhoInv
214 for (label
n=1;
n<Y_.size();
n++)
217 Y_[
n].boundaryField()[patchi][facei]/speciesData_[
n].rho(
p,
T)
218 / rhoInv*speciesData_[
n];
225 template<
class ThermoType>
233 speciesData_[i] = ThermoType(
thermoDict.subDict(species_[i]));
void read(const dictionary &)
Read dictionary.
A class for handling words, derived from Foam::string.
Specialization of basicMultiComponentMixture for a mixture consisting of a number for molecular speci...
const ThermoType & patchFaceVolMixture(const scalar p, const scalar T, const label patchi, const label facei) const
#define forAll(list, i)
Loop across all elements in list.
volScalarField Yt(0.0 *Y[0])
Foam::multiComponentMixture.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
const ThermoType & patchFaceMixture(const label patchi, const label facei) const
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
const ThermoType & cellMixture(const label celli) const
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const dictionary & thermoDict
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const ThermoType & cellVolMixture(const scalar p, const scalar T, const label celli) const