30 template<
class ThermoType>
44 thermoMixture_(this->specieThermos()),
45 transportMixture_(this->specieThermos())
51 template<
class ThermoType>
62 template<
class ThermoType>
63 template<
class Method,
class ... Args>
75 psi += Y_[i]*(specieThermos_[i].*psiMethod)(args ...);
82 template<
class ThermoType>
83 template<
class Method,
class ... Args>
96 rPsi += Y_[i]/(specieThermos_[i].*psiMethod)(args ...);
103 template<
class ThermoType>
104 template<
class Method,
class ... Args>
116 psi += X_[i]*(specieThermos_[i].*psiMethod)(args ...);
123 template<
class ThermoType>
131 template<
class ThermoType>
142 template<
class ThermoType>
150 scalar psiByRho2 = 0;
154 const scalar rhoi = specieThermos_[i].rho(p, T);
155 const scalar psii = specieThermos_[i].psi(p, T);
161 psiByRho2 += Y_[i]*psii/
sqr(rhoi);
165 return sqr(rho)*psiByRho2;
169 template<
class ThermoType>
173 return massWeighted(&ThermoType::Hf);
177 #define thermoMixtureFunction(Func) \ 178 template<class ThermoType> \ 180 Foam::valueMultiComponentMixture<ThermoType>::thermoMixture::Func \ 186 return massWeighted(&ThermoType::Func, p, T); \ 198 template<class ThermoType>
214 &thermoMixture::limit
219 template<
class ThermoType>
231 template<
class ThermoType>
243 template<
class ThermoType>
255 Y[i] = this->
Y()[i][celli];
258 return thermoMixture_;
262 template<
class ThermoType>
275 Y[i] = this->
Y()[i].boundaryField()[
patchi][facei];
278 return thermoMixture_;
282 template<
class ThermoType>
305 return transportMixture_;
309 template<
class ThermoType>
325 this->
Y()[i].boundaryField()[
patchi][facei]
335 return transportMixture_;
#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...
const thermoMixtureType & patchFaceThermoMixture(const label patchi, const label facei) const
dimensionedSymmTensor sqr(const dimensionedVector &dv)
scalar Hs(const scalar p, const scalar T) const
scalar kappa(const scalar p, const scalar T) const
Thermal conductivity [W/m/K].
scalar Cpv(const scalar p, const scalar T) const
Heat capacity at constant pressure/volume [J/kg/K].
scalar mu(const scalar p, const scalar T) const
Dynamic viscosity [kg/m/s].
scalar rho(scalar p, scalar T) const
Return density [kg/m^3].
scalar gamma(const scalar p, const scalar T) const
Gamma = Cp/Cv [].
scalar psi(scalar p, scalar T) const
Return compressibility [s^2/m^2].
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
const PtrList< ThermoType > & specieThermos() const
Return the raw specie thermodynamic data.
scalar HE(const scalar p, const scalar T) const
Enthalpy/Internal energy [J/kg].
scalar W() const
Molecular weight [kg/kmol].
A class for handling words, derived from string.
Thermophysical properties mixing class which applies mass-fraction weighted mixing to thermodynamic p...
const transportMixtureType & cellTransportMixture(const label celli) const
Foam::multiComponentMixture.
scalar Ha(const scalar p, const scalar T) const
const dimensionedScalar mu
Atomic mass unit.
scalar THE(const scalar he, const scalar p, const scalar T0) const
Temperature from enthalpy or internal energy.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
#define thermoMixtureFunction(Func)
const scalarList W(::W(thermo))
Mesh data needed to do the Finite Volume discretisation.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
valueMultiComponentMixture(const dictionary &, const fvMesh &, const word &)
Construct from dictionary, mesh and phase name.
scalar Cv(const scalar p, const scalar T) const
const transportMixtureType & patchFaceTransportMixture(const label patchi, const label facei) const
const thermoMixtureType & cellThermoMixture(const label celli) const
scalar Cp(const scalar p, const scalar T) const