30 template<
class ThermoType>
45 mixture_(
"mixture", this->specieThermos()[0]),
46 transportMixture_(this->specieThermos())
50 template<
class ThermoType>
57 specieThermos_(specieThermos),
58 M_(specieThermos.size()),
59 A_(specieThermos.size()),
60 B_(specieThermos.size()),
61 X_(specieThermos.size()),
62 mu_(specieThermos.size()),
63 w_(specieThermos.size()),
77 A_(i, j) = ((4/
sqrt(2.0))*
sqrt(1 + M_[i]/M_[j]));
78 B_(i, j) =
sqrt(M_[j]/M_[i]);
87 template<
class ThermoType>
97 mu_[i] = specieThermos_[i].mu(
p,
T);
109 sqr(1 +
sqrt((mu_[i]/mu_[j])*B_(i, j)))/A_(i, j);
111 sumXphi += X_[j]*phiij;
119 w_[i] = X_[i]/sumXphi;
124 template<
class ThermoType>
145 template<
class ThermoType>
162 kappa += w_[i]*specieThermos_[i].kappa(
p,
T);
169 template<
class ThermoType>
179 for (
label i=1; i<this->
Y().size(); i++)
188 template<
class ThermoType>
198 this->
Y()[0].boundaryField()[
patchi][facei]
201 for (
label i=1; i<this->
Y().size(); i++)
204 this->
Y()[i].boundaryField()[
patchi][facei]
212 template<
class ThermoType>
220 transportMixture_.muCached_ =
false;
237 return transportMixture_;
241 template<
class ThermoType>
251 transportMixture_.muCached_ =
false;
260 this->
Y()[i].boundaryField()[
patchi][facei]
270 return transportMixture_;
273 template<
class ThermoType>
284 transportMixture_.muCached_ =
true;
285 return transportMixture_;
289 template<
class ThermoType>
301 transportMixture_.muCached_ =
true;
302 return transportMixture_;
#define forAll(list, i)
Loop across all elements in list.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
virtual scalar mu(const label speciei, const scalar p, const scalar T) const =0
Dynamic viscosity [kg/m/s].
virtual scalar kappa(const label speciei, const scalar p, const scalar T) const =0
Thermal conductivity [W/m/K].
transportMixture(const PtrList< ThermoType > &specieThermos)
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 the thermodynam...
const transportMixtureType & cellTransportMixture(const label celli) const
coefficientWilkeMulticomponentMixture(const dictionary &, const fvMesh &, const word &)
Construct from dictionary, mesh and phase name.
const thermoMixtureType & cellThermoMixture(const label celli) const
const thermoMixtureType & patchFaceThermoMixture(const label patchi, const label facei) const
const transportMixtureType & patchFaceTransportMixture(const label patchi, const label facei) const
ThermoType::thermoType thermoMixtureType
Mixing type for thermodynamic properties.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Mesh data needed to do the Finite Volume discretisation.
Foam::multicomponentMixture.
const PtrList< ThermoType > & specieThermos() const
Return the raw specie thermodynamic data.
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar sqrt(const dimensionedScalar &ds)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)