32 template<
class BasicPsiThermo,
class MixtureType>
40 scalarField& TuCells = this->Tu_.primitiveFieldRef();
41 scalarField& psiCells = this->psi_.primitiveFieldRef();
42 scalarField& muCells = this->mu_.primitiveFieldRef();
43 scalarField& alphaCells = this->alpha_.primitiveFieldRef();
47 const typename MixtureType::thermoType& mixture_ =
48 this->cellMixture(celli);
50 TCells[celli] = mixture_.THE
57 psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
59 muCells[celli] = mixture_.mu(pCells[celli], TCells[celli]);
60 alphaCells[celli] = mixture_.alphah(pCells[celli], TCells[celli]);
62 TuCells[celli] = this->cellReactants(celli).THE
70 volScalarField::Boundary& pBf =
71 this->p_.boundaryFieldRef();
73 volScalarField::Boundary& TBf =
74 this->T_.boundaryFieldRef();
76 volScalarField::Boundary& TuBf =
77 this->Tu_.boundaryFieldRef();
79 volScalarField::Boundary& psiBf =
80 this->psi_.boundaryFieldRef();
82 volScalarField::Boundary& heBf =
83 this->
he().boundaryFieldRef();
85 volScalarField::Boundary& heuBf =
86 this->heu().boundaryFieldRef();
88 volScalarField::Boundary& muBf =
89 this->mu_.boundaryFieldRef();
91 volScalarField::Boundary& alphaBf =
92 this->alpha_.boundaryFieldRef();
109 const typename MixtureType::thermoType& mixture_ =
110 this->patchFaceMixture(patchi, facei);
112 phe[facei] = mixture_.HE(pp[facei], pT[facei]);
114 ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
115 pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
116 palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
123 const typename MixtureType::thermoType& mixture_ =
124 this->patchFaceMixture(patchi, facei);
126 pT[facei] = mixture_.THE(phe[facei], pp[facei], pT[facei]);
128 ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
129 pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
130 palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
133 this->patchFaceReactants(patchi, facei)
134 .THE(pheu[facei], pp[facei], pTu[facei]);
143 template<
class BasicPsiThermo,
class MixtureType>
147 const word& phaseName
156 mesh.time().timeName(),
167 MixtureType::thermoType::heName() +
'u',
168 mesh.time().timeName(),
173 this->volScalarFieldProperty
175 MixtureType::thermoType::heName() +
'u',
177 &MixtureType::cellReactants,
178 &MixtureType::patchFaceReactants,
179 &MixtureType::thermoType::HE,
183 this->heuBoundaryTypes()
186 this->heuBoundaryCorrection(this->heu_);
190 this->psi_.oldTime();
196 template<
class BasicPsiThermo,
class MixtureType>
203 template<
class BasicPsiThermo,
class MixtureType>
212 this->psi_.oldTime();
223 template<
class BasicPsiThermo,
class MixtureType>
231 return this->cellSetProperty
233 &MixtureType::cellReactants,
234 &MixtureType::thermoType::HE,
242 template<
class BasicPsiThermo,
class MixtureType>
250 return this->patchFieldProperty
252 &MixtureType::patchFaceReactants,
253 &MixtureType::thermoType::HE,
255 this->
p().boundaryField()[patchi],
261 template<
class BasicPsiThermo,
class MixtureType>
265 return this->volScalarFieldProperty
269 &MixtureType::cellProducts,
270 &MixtureType::patchFaceProducts,
271 &MixtureType::thermoType::THE,
279 template<
class BasicPsiThermo,
class MixtureType>
283 return this->volScalarFieldProperty
286 this->psi_.dimensions(),
287 &MixtureType::cellReactants,
288 &MixtureType::patchFaceReactants,
296 template<
class BasicPsiThermo,
class MixtureType>
300 return this->volScalarFieldProperty
303 this->psi_.dimensions(),
304 &MixtureType::cellProducts,
305 &MixtureType::patchFaceProducts,
313 template<
class BasicPsiThermo,
class MixtureType>
317 return this->volScalarFieldProperty
321 &MixtureType::cellReactants,
322 &MixtureType::patchFaceReactants,
330 template<
class BasicPsiThermo,
class MixtureType>
334 return this->volScalarFieldProperty
338 &MixtureType::cellProducts,
339 &MixtureType::patchFaceProducts,
virtual tmp< volScalarField > mub() const
Dynamic viscosity of burnt gas [kg/m/s].
#define forAll(list, i)
Loop across all elements in list.
virtual tmp< volScalarField > psiu() const
Unburnt gas compressibility [s^2/m^2].
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
virtual tmp< volScalarField > Tb() const
Burnt gas temperature [K].
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual tmp< volScalarField > psib() const
Burnt gas compressibility [s^2/m^2].
const dimensionSet dimDynamicViscosity
virtual tmp< volScalarField > muu() const
Dynamic viscosity of unburnt gas [kg/m/s].
fvPatchField< scalar > fvPatchScalarField
A class for handling words, derived from string.
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
virtual void correct()
Update properties.
volScalarField scalarField(fieldObject, mesh)
virtual ~heheuPsiThermo()
Destructor.
const dimensionSet dimEnergy
const dimensionedScalar & mu
Atomic mass unit.
Enthalpy/Internal energy for a mixture.
Mesh data needed to do the Finite Volume discretisation.
const volScalarField & psi
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
A class for managing temporary objects.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
virtual volScalarField & heu()
Unburnt gas enthalpy [J/kg].
heheuPsiThermo(const fvMesh &, const word &phaseName)
Construct from mesh and phase name.
#define InfoInFunction
Report an information message using Foam::Info.