35template<
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();
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)
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]);
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]);
240template<
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();
314template<
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();
391template<
class BasicPsiThermo,
class MixtureType>
398template<
class BasicPsiThermo,
class MixtureType>
404 this->psi_.oldTime();
423template<
class BasicPsiThermo,
class MixtureType>
437 heu[celli] = this->cellReactants(
cells[celli]).HE(
p[celli], Tu[celli]);
444template<
class BasicPsiThermo,
class MixtureType>
459 this->patchFaceReactants(patchi, facei).HE(
p[facei], Tu[facei]);
466template<
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]);
525template<
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]);
579template<
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]);
634template<
class BasicPsiThermo,
class MixtureType>
645 this->T_.time().timeName(),
663 muuCells[celli] = this->cellReactants(celli).mu
680 pMuu[facei] = this->patchFaceReactants(patchi, facei).mu
692template<
class BasicPsiThermo,
class MixtureType>
703 this->T_.time().timeName(),
722 mubCells[celli] = this->cellProducts(celli).mu
739 pMub[facei] = this->patchFaceProducts(patchi, facei).mu
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void size(const label n)
Older name for setAddressableSize.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
Mesh data needed to do the Finite Volume discretisation.
Enthalpy/Internal energy for a mixture.
virtual tmp< volScalarField > mub() const
Dynamic viscosity of burnt gas [kg/ms].
virtual void correct()
Update properties.
virtual tmp< volScalarField > muu() const
Dynamic viscosity of unburnt gas [kg/ms].
virtual volScalarField & heu()
Update properties based on T.
virtual tmp< volScalarField > Tb() const
Burnt gas temperature [K].
virtual tmp< volScalarField > psib() const
Burnt gas compressibility [s^2/m^2].
virtual tmp< volScalarField > psiu() const
Unburnt gas compressibility [s^2/m^2].
virtual ~heheuPsiThermo()
Destructor.
Foam::psiuReactionThermo.
ThermoType thermoType
The type of thermodynamics this mixture is instantiated for.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
const word dictName("faMeshDefinition")
#define DebugInfo
Report an information message using Foam::Info.
#define DebugInFunction
Report an information message using Foam::Info.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & endl(Ostream &os)
Add newline and flush stream.
fvPatchField< scalar > fvPatchScalarField
#define forAll(list, i)
Loop across all elements in list.