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::thermoMixtureType& thermoMixture =
48 this->cellThermoMixture(celli);
50 const typename MixtureType::transportMixtureType& transportMixture =
51 this->cellTransportMixture(celli, thermoMixture);
53 TCells[celli] = thermoMixture.THE
60 psiCells[celli] = thermoMixture.psi(pCells[celli], TCells[celli]);
62 muCells[celli] = transportMixture.mu(pCells[celli], TCells[celli]);
64 transportMixture.kappa(pCells[celli], TCells[celli])
65 /thermoMixture.Cp(pCells[celli], TCells[celli]);
67 TuCells[celli] = this->cellReactants(celli).THE
75 volScalarField::Boundary& pBf =
76 this->p_.boundaryFieldRef();
78 volScalarField::Boundary& TBf =
79 this->T_.boundaryFieldRef();
81 volScalarField::Boundary& TuBf =
82 this->Tu_.boundaryFieldRef();
84 volScalarField::Boundary& psiBf =
85 this->psi_.boundaryFieldRef();
87 volScalarField::Boundary& heBf =
88 this->
he().boundaryFieldRef();
90 volScalarField::Boundary& heuBf =
91 this->heu().boundaryFieldRef();
93 volScalarField::Boundary& muBf =
94 this->mu_.boundaryFieldRef();
96 volScalarField::Boundary& alphaBf =
97 this->alpha_.boundaryFieldRef();
114 const typename MixtureType::thermoMixtureType&
115 thermoMixture = this->patchFaceThermoMixture(patchi, facei);
117 const typename MixtureType::transportMixtureType&
119 this->patchFaceTransportMixture
120 (patchi, facei, thermoMixture);
122 phe[facei] = thermoMixture.HE(pp[facei], pT[facei]);
124 ppsi[facei] = thermoMixture.psi(pp[facei], pT[facei]);
125 pmu[facei] = transportMixture.mu(pp[facei], pT[facei]);
127 transportMixture.kappa(pp[facei], pT[facei])
128 /thermoMixture.Cp(pp[facei], pT[facei]);
135 const typename MixtureType::thermoMixtureType&
136 thermoMixture = this->patchFaceThermoMixture(patchi, facei);
138 const typename MixtureType::transportMixtureType&
140 this->patchFaceTransportMixture
141 (patchi, facei, thermoMixture);
143 pT[facei] = thermoMixture.THE(phe[facei], pp[facei], pT[facei]);
145 ppsi[facei] = thermoMixture.psi(pp[facei], pT[facei]);
146 pmu[facei] = transportMixture.mu(pp[facei], pT[facei]);
148 transportMixture.kappa(pp[facei], pT[facei])
149 /thermoMixture.Cp(pp[facei], pT[facei]);
152 this->patchFaceReactants(patchi, facei)
153 .THE(pheu[facei], pp[facei], pTu[facei]);
162 template<
class BasicPsiThermo,
class MixtureType>
166 const word& phaseName
175 mesh.time().timeName(),
186 MixtureType::thermoType::heName() +
'u',
187 mesh.time().timeName(),
192 this->volScalarFieldProperty
194 MixtureType::thermoType::heName() +
'u',
196 &MixtureType::cellReactants,
197 &MixtureType::patchFaceReactants,
198 &MixtureType::thermoMixtureType::HE,
202 this->heuBoundaryTypes()
205 this->heuBoundaryCorrection(this->heu_);
209 this->psi_.oldTime();
215 template<
class BasicPsiThermo,
class MixtureType>
222 template<
class BasicPsiThermo,
class MixtureType>
231 this->psi_.oldTime();
242 template<
class BasicPsiThermo,
class MixtureType>
250 return this->cellSetProperty
252 &MixtureType::cellReactants,
253 &MixtureType::thermoMixtureType::HE,
261 template<
class BasicPsiThermo,
class MixtureType>
269 return this->patchFieldProperty
271 &MixtureType::patchFaceReactants,
272 &MixtureType::thermoMixtureType::HE,
274 this->p_.boundaryField()[
patchi],
280 template<
class BasicPsiThermo,
class MixtureType>
284 return this->volScalarFieldProperty
288 &MixtureType::cellProducts,
289 &MixtureType::patchFaceProducts,
290 &MixtureType::thermoMixtureType::THE,
298 template<
class BasicPsiThermo,
class MixtureType>
302 return this->volScalarFieldProperty
305 this->psi_.dimensions(),
306 &MixtureType::cellReactants,
307 &MixtureType::patchFaceReactants,
315 template<
class BasicPsiThermo,
class MixtureType>
321 return this->volScalarFieldProperty
324 this->psi_.dimensions(),
325 &MixtureType::cellProducts,
326 &MixtureType::patchFaceProducts,
334 template<
class BasicPsiThermo,
class MixtureType>
338 return this->volScalarFieldProperty
342 &MixtureType::cellReactants,
343 &MixtureType::patchFaceReactants,
351 template<
class BasicPsiThermo,
class MixtureType>
357 return this->volScalarFieldProperty
361 &MixtureType::cellProducts,
362 &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].
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 dimDynamicViscosity
virtual void correct()
Update properties.
volScalarField scalarField(fieldObject, mesh)
virtual ~heheuPsiThermo()
Destructor.
const dimensionedScalar mu
Atomic mass unit.
const dimensionSet dimEnergy
const dimensionSet dimMass
Mesh data needed to do the Finite Volume discretisation.
const volScalarField & psi
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.
const dimensionSet dimTemperature
#define InfoInFunction
Report an information message using Foam::Info.