30 template<
class ThermoType>
31 template<
class Method,
class ... Args>
44 psi += Y_[i]*(specieThermos_[i].*psiMethod)(
args ...);
51 template<
class ThermoType>
52 template<
class Method,
class ... Args>
65 rPsi += Y_[i]/(specieThermos_[i].*psiMethod)(
args ...);
72 template<
class ThermoType>
83 template<
class ThermoType>
84 template<
class Method,
class ... Args>
97 psi += X_[i]*(specieThermos_[i].*psiMethod)(
args ...);
106 template<
class ThermoType>
120 template<
class ThermoType>
128 template<
class ThermoType>
140 template<
class ThermoType>
149 scalar psiByRho2 = 0;
153 const scalar rhoi = specieThermos_[i].rho(
p,
T);
154 const scalar psii = specieThermos_[i].psi(
p,
T);
156 oneByRho += Y_[i]/rhoi;
160 psiByRho2 += Y_[i]*psii/
sqr(rhoi);
164 return psiByRho2/
sqr(oneByRho);
168 template<
class ThermoType>
172 return massWeighted(&ThermoType::hf);
176 #define thermoMixtureFunction(Func) \
178 template<class ThermoType> \
180 Foam::valueMulticomponentMixture<ThermoType>::thermoMixtureType::Func \
186 return massWeighted(&ThermoType::Func, p, T); \
198 template<class ThermoType>
214 &thermoMixtureType::Cpv,
220 template<
class ThermoType>
232 template<
class ThermoType>
244 template<
class ThermoType>
249 const scalarFieldListSlice&
Y
254 thermoMixture_.Y_[i] =
Y[i];
257 return thermoMixture_;
261 template<
class ThermoType>
266 const scalarFieldListSlice&
Y
273 transportMixture_.X_[i] =
Y[i]/this->specieThermos()[i].W();
274 sumX += transportMixture_.X_[i];
279 transportMixture_.X_[i] /= sumX;
282 return transportMixture_;
286 template<
class ThermoType>
291 const scalarFieldListSlice&
Y,
295 return transportMixture(
Y);
scalar hs(const scalar p, const scalar T) const
scalar Cp(const scalar p, const scalar T) const
scalar ha(const scalar p, const scalar T) const
scalar Cv(const scalar p, const scalar T) const
#define forAll(list, i)
Loop across all elements in list.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Foam::multicomponentMixture.
const PtrList< ThermoType > & specieThermos() const
Return the raw specie thermodynamic data.
Mixing type for thermodynamic properties.
scalar psi(scalar p, scalar T) const
Return compressibility [s^2/m^2].
scalar rho(scalar p, scalar T) const
Return density [kg/m^3].
scalar W() const
Molecular weight [kg/kmol].
Mixing type for transport properties.
scalar mu(const scalar p, const scalar T) const
Dynamic viscosity [kg/m/s].
scalar kappa(const scalar p, const scalar T) const
Thermal conductivity [W/m/K].
Thermophysical properties mixing class which applies mass-fraction weighted mixing to thermodynamic p...
valueMulticomponentMixture(const dictionary &)
Construct from a dictionary.
const thermoMixtureType & thermoMixture(const scalarFieldListSlice &) const
Return the mixture for thermodynamic properties.
const transportMixtureType & transportMixture(const scalarFieldListSlice &) const
Return the mixture for transport properties.
const volScalarField & psi
void limit(const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phi, surfaceScalarField &phiPsi, const SpType &Sp, const SuType &Su, const PsiMaxType &psiMax, const PsiMinType &psiMin, const bool returnCorr)
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
const dimensionedScalar mu
Atomic mass unit.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
const scalarList W(::W(thermo))
Foam::argList args(argc, argv)
PtrList< volScalarField > & Y
#define thermoMixtureFunction(Func)