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(),
168 MixtureType::thermoType::heName() +
'u',
169 mesh.time().timeName(),
176 this->heuBoundaryTypes()
179 scalarField& heuCells = this->heu_.primitiveFieldRef();
185 heuCells[celli] = this->cellReactants(celli).HE
192 volScalarField::Boundary& heuBf = heu_.boundaryFieldRef();
202 pheu[facei] = this->patchFaceReactants(patchi, facei).HE
210 this->heuBoundaryCorrection(this->heu_);
213 this->psi_.oldTime();
219 template<
class BasicPsiThermo,
class MixtureType>
226 template<
class BasicPsiThermo,
class MixtureType>
235 this->psi_.oldTime();
246 template<
class BasicPsiThermo,
class MixtureType>
260 heu[celli] = this->cellReactants(cells[celli]).HE(p[celli], Tu[celli]);
267 template<
class BasicPsiThermo,
class MixtureType>
282 this->patchFaceReactants(patchi, facei).HE(p[facei], Tu[facei]);
289 template<
class BasicPsiThermo,
class MixtureType>
300 this->T_.time().timeName(),
318 TbCells[celli] = this->cellProducts(celli).THE
326 volScalarField::Boundary& TbBf = Tb_.boundaryFieldRef();
339 this->patchFaceProducts(patchi, facei)
340 .THE(ph[facei], pp[facei], pT[facei]);
348 template<
class BasicPsiThermo,
class MixtureType>
359 this->psi_.time().timeName(),
366 this->psi_.dimensions()
378 this->cellReactants(celli).psi(pCells[celli], TuCells[celli]);
394 patchFaceReactants(patchi, facei).psi(pp[facei], pTu[facei]);
402 template<
class BasicPsiThermo,
class MixtureType>
413 this->psi_.time().timeName(),
420 this->psi_.dimensions()
433 this->cellReactants(celli).psi(pCells[celli], TbCells[celli]);
448 this->patchFaceReactants
449 (patchi, facei).psi(pp[facei], pTb[facei]);
457 template<
class BasicPsiThermo,
class MixtureType>
468 this->T_.time().timeName(),
486 muuCells[celli] = this->cellReactants(celli).mu
503 pMuu[facei] = this->patchFaceReactants(patchi, facei).mu
515 template<
class BasicPsiThermo,
class MixtureType>
526 this->T_.time().timeName(),
545 mubCells[celli] = this->cellProducts(celli).mu
562 pMub[facei] = this->patchFaceProducts(patchi, facei).mu
virtual tmp< volScalarField > mub() const
Dynamic viscosity of burnt gas [kg/ms].
#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].
const Boundary & boundaryField() const
Return const-reference to the boundary field.
T & ref() const
Return non-const reference or generate a fatal error.
void size(const label)
Override size to be inconsistent with allocated storage.
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual tmp< volScalarField > psib() const
Burnt gas compressibility [s^2/m^2].
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual tmp< volScalarField > muu() const
Dynamic viscosity of unburnt gas [kg/ms].
Dimension set for the base types.
fvPatchField< scalar > fvPatchScalarField
A class for handling words, derived from string.
virtual void correct()
Update properties.
volScalarField scalarField(fieldObject, mesh)
virtual ~heheuPsiThermo()
Destructor.
Internal::FieldType & primitiveFieldRef()
Return a reference to the internal field.
Internal & ref()
Return a reference to the dimensioned internal field.
Boundary & boundaryFieldRef()
Return a reference to the boundary field.
Enthalpy/Internal energy for a mixture.
Mesh data needed to do the Finite Volume discretisation.
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].
#define InfoInFunction
Report an information message using Foam::Info.