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>
176 return harmonicMassWeighted(&ThermoType::alphav,
p,
T);
180 template<
class ThermoType>
184 return massWeighted(&ThermoType::hf);
188 #define thermoMixtureFunction(Func) \
190 template<class ThermoType> \
192 Foam::valueMulticomponentMixture<ThermoType>::thermoMixtureType::Func \
198 return massWeighted(&ThermoType::Func, p, T); \
211 template<class ThermoType>
226 &thermoMixtureType::he,
227 &thermoMixtureType::Cpv,
233 template<
class ThermoType>
255 template<
class ThermoType>
267 template<
class ThermoType>
279 template<
class ThermoType>
284 const scalarFieldListSlice&
Y
289 thermoMixture_.Y_[i] =
Y[i];
292 return thermoMixture_;
296 template<
class ThermoType>
301 const scalarFieldListSlice&
Y
308 transportMixture_.X_[i] =
Y[i]/this->specieThermos()[i].W();
309 sumX += transportMixture_.X_[i];
314 transportMixture_.X_[i] /= sumX;
317 return transportMixture_;
321 template<
class ThermoType>
326 const scalarFieldListSlice&
Y,
330 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 es(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 keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
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 alphav(const scalar p, const scalar T) const
Return volumetric coefficient of thermal expansion [1/T].
scalar Tes(const scalar he, const scalar p, const scalar T0) const
Temperature from sensible internal energy.
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 control &controls, const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phi, surfaceScalarField &psiPhi, 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.
tmp< DimensionedField< typename outerProduct< Type, Type >::type, GeoMesh, Field >> sqr(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
void T(GeometricField< Type, GeoMesh, PrimitiveField1 > &gf, const GeometricField< Type, GeoMesh, PrimitiveField2 > &gf1)
Foam::argList args(argc, argv)
PtrList< volScalarField > & Y
const scalarList W(::W(thermo))
#define thermoMixtureFunction(Func)