35 template<
class BasicPsiThermo,
class MixtureType>
43 scalarField& TuCells = this->Tu_.primitiveFieldRef();
44 scalarField& psiCells = this->psi_.primitiveFieldRef();
45 scalarField& muCells = this->mu_.primitiveFieldRef();
46 scalarField& alphaCells = this->alpha_.primitiveFieldRef();
50 const typename MixtureType::thermoType& mixture_ =
51 this->cellMixture(celli);
55 TCells[celli] = mixture_.THE
63 psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
65 muCells[celli] = mixture_.mu(pCells[celli], TCells[celli]);
66 alphaCells[celli] = mixture_.alphah(pCells[celli], TCells[celli]);
68 TuCells[celli] = this->cellReactants(celli).THE
76 volScalarField::Boundary& pBf =
77 this->p_.boundaryFieldRef();
79 volScalarField::Boundary& TBf =
80 this->T_.boundaryFieldRef();
82 volScalarField::Boundary& TuBf =
83 this->Tu_.boundaryFieldRef();
85 volScalarField::Boundary& psiBf =
86 this->psi_.boundaryFieldRef();
88 volScalarField::Boundary& heBf =
89 this->
he().boundaryFieldRef();
91 volScalarField::Boundary& heuBf =
92 this->heu().boundaryFieldRef();
94 volScalarField::Boundary& muBf =
95 this->mu_.boundaryFieldRef();
97 volScalarField::Boundary& alphaBf =
98 this->alpha_.boundaryFieldRef();
100 forAll(this->T_.boundaryField(), patchi)
115 const typename MixtureType::thermoType& mixture_ =
116 this->patchFaceMixture(patchi, facei);
118 phe[facei] = mixture_.HE(
pp[facei], pT[facei]);
120 ppsi[facei] = mixture_.psi(
pp[facei], pT[facei]);
121 pmu[facei] = mixture_.mu(
pp[facei], pT[facei]);
122 palpha[facei] = mixture_.alphah(
pp[facei], pT[facei]);
129 const typename MixtureType::thermoType& mixture_ =
130 this->patchFaceMixture(patchi, facei);
134 pT[facei] = mixture_.THE(phe[facei],
pp[facei], pT[facei]);
137 ppsi[facei] = mixture_.psi(
pp[facei], pT[facei]);
138 pmu[facei] = mixture_.mu(
pp[facei], pT[facei]);
139 palpha[facei] = mixture_.alphah(
pp[facei], pT[facei]);
142 this->patchFaceReactants(patchi, facei)
143 .THE(pheu[facei],
pp[facei], pTu[facei]);
240 template<
class BasicPsiThermo,
class MixtureType>
244 const word& phaseName
265 MixtureType::thermoType::heName() +
'u',
273 this->heuBoundaryTypes()
282 heuCells[celli] = this->cellReactants(celli).HE
299 pheu[facei] = this->patchFaceReactants(patchi, facei).HE
307 this->heuBoundaryCorrection(this->heu_);
310 this->psi_.oldTime();
314 template<
class BasicPsiThermo,
class MixtureType>
318 const word& phaseName,
340 MixtureType::thermoType::heName() +
'u',
348 this->heuBoundaryTypes()
357 heuCells[celli] = this->cellReactants(celli).HE
374 pheu[facei] = this->patchFaceReactants(patchi, facei).HE
382 this->heuBoundaryCorrection(this->heu_);
385 this->psi_.oldTime();
391 template<
class BasicPsiThermo,
class MixtureType>
398 template<
class BasicPsiThermo,
class MixtureType>
404 this->psi_.oldTime();
423 template<
class BasicPsiThermo,
class MixtureType>
437 heu[celli] = this->cellReactants(
cells[celli]).HE(
p[celli], Tu[celli]);
444 template<
class BasicPsiThermo,
class MixtureType>
459 this->patchFaceReactants(patchi, facei).HE(
p[facei], Tu[facei]);
466 template<
class BasicPsiThermo,
class MixtureType>
477 this->T_.time().timeName(),
495 TbCells[celli] = this->cellProducts(celli).THE
516 this->patchFaceProducts(patchi, facei)
517 .THE(ph[facei],
pp[facei], pT[facei]);
525 template<
class BasicPsiThermo,
class MixtureType>
536 this->psi_.time().timeName(),
543 this->psi_.dimensions()
555 this->cellReactants(celli).psi(pCells[celli], TuCells[celli]);
571 patchFaceReactants(patchi, facei).psi(
pp[facei], pTu[facei]);
579 template<
class BasicPsiThermo,
class MixtureType>
590 this->psi_.time().timeName(),
597 this->psi_.dimensions()
610 this->cellProducts(celli).psi(pCells[celli], TbCells[celli]);
625 this->patchFaceProducts
626 (patchi, facei).psi(
pp[facei], pTb[facei]);
634 template<
class BasicPsiThermo,
class MixtureType>
645 this->T_.time().timeName(),
663 muuCells[celli] = this->cellReactants(celli).mu
680 pMuu[facei] = this->patchFaceReactants(patchi, facei).mu
692 template<
class BasicPsiThermo,
class MixtureType>
703 this->T_.time().timeName(),
722 mubCells[celli] = this->cellProducts(celli).mu
739 pMub[facei] = this->patchFaceProducts(patchi, facei).mu
virtual tmp< volScalarField > mub() const
Dynamic viscosity of burnt gas [kg/ms].
void size(const label n)
Older name for setAddressableSize.
virtual tmp< volScalarField > psiu() const
Unburnt gas compressibility [s^2/m^2].
virtual tmp< volScalarField > Tb() const
Burnt gas temperature [K].
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
const word dictName("faMeshDefinition")
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual tmp< volScalarField > psib() const
Burnt gas compressibility [s^2/m^2].
GeometricBoundaryField< scalar, fvPatchField, volMesh > Boundary
Type of boundary fields.
Ignore writing from objectRegistry::writeObject()
virtual tmp< volScalarField > muu() const
Dynamic viscosity of unburnt gas [kg/ms].
#define forAll(list, i)
Loop across all elements in list.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
fvPatchField< scalar > fvPatchScalarField
A class for handling words, derived from Foam::string.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
#define DebugInFunction
Report an information message using Foam::Info.
#define DebugInfo
Report an information message using Foam::Info.
Foam::psiuReactionThermo.
virtual void correct()
Update properties.
virtual ~heheuPsiThermo()
Destructor.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field values.
Enthalpy/Internal energy for a mixture.
Mesh data needed to do the Finite Volume discretisation.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
Internal & ref(const bool updateAccessTime=true)
Same as internalFieldRef()
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
virtual volScalarField & heu()
Update properties based on T.
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
Do not request registration (bool: false)
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())