35 template<
class BasicThermo,
class MixtureType>
39 volScalarField::Boundary& hBf =
h.boundaryFieldRef();
43 if (isA<gradientEnergyFvPatchScalarField>(hBf[patchi]))
45 refCast<gradientEnergyFvPatchScalarField>(hBf[patchi]).gradient()
46 = hBf[patchi].fvPatchField::snGrad();
48 else if (isA<mixedEnergyFvPatchScalarField>(hBf[patchi]))
50 refCast<mixedEnergyFvPatchScalarField>(hBf[patchi]).refGrad()
51 = hBf[patchi].fvPatchField::snGrad();
57 template<
class BasicThermo,
class MixtureType>
72 this->cellMixture(celli).HE(pCells[celli], TCells[celli]);
75 volScalarField::Boundary& heBf =
he.boundaryFieldRef();
79 heBf[patchi] == this->
he
82 T.boundaryField()[patchi],
87 this->heBoundaryCorrection(
he);
90 if (
p.nOldTimes() > 0)
92 init(
p.oldTime(),
T.oldTime(),
he.oldTime());
99 template<
class BasicThermo,
class MixtureType>
103 const word& phaseName
106 BasicThermo(
mesh, phaseName),
107 MixtureType(*
this,
mesh, phaseName),
113 BasicThermo::phasePropertyName
115 MixtureType::thermoType::heName()
117 mesh.time().timeName(),
124 this->heBoundaryTypes(),
125 this->heBoundaryBaseTypes()
128 init(this->p_, this->T_, he_);
132 template<
class BasicThermo,
class MixtureType>
137 const word& phaseName
141 MixtureType(*
this,
mesh, phaseName),
147 BasicThermo::phasePropertyName
149 MixtureType::thermoType::heName()
151 mesh.time().timeName(),
158 this->heBoundaryTypes(),
159 this->heBoundaryBaseTypes()
162 init(this->p_, this->T_, he_);
166 template<
class BasicThermo,
class MixtureType>
170 const word& phaseName,
171 const word& dictionaryName
174 BasicThermo(
mesh, phaseName, dictionaryName),
175 MixtureType(*
this,
mesh, phaseName),
181 BasicThermo::phasePropertyName
183 MixtureType::thermoType::heName()
185 mesh.time().timeName(),
192 this->heBoundaryTypes(),
193 this->heBoundaryBaseTypes()
196 init(this->p_, this->T_, he_);
203 template<
class BasicThermo,
class MixtureType>
210 template<
class BasicThermo,
class MixtureType>
226 mesh.time().timeName(),
245 this->cellMixture(celli).HE(pCells[celli], TCells[celli]);
248 volScalarField::Boundary& heBf =
he.boundaryFieldRef();
259 this->patchFaceMixture(patchi, facei).HE(pp[facei], Tp[facei]);
267 template<
class BasicThermo,
class MixtureType>
280 he[celli] = this->cellMixture(
cells[celli]).HE(
p[celli],
T[celli]);
287 template<
class BasicThermo,
class MixtureType>
301 this->patchFaceMixture(patchi, facei).HE(
p[facei],
T[facei]);
308 template<
class BasicThermo,
class MixtureType>
321 mesh.time().timeName(),
337 hcCells[celli] = this->cellMixture(celli).Hc();
348 hcp[facei] = this->patchFaceMixture(patchi, facei).Hc();
356 template<
class BasicThermo,
class MixtureType>
370 this->patchFaceMixture(patchi, facei).Cp(
p[facei],
T[facei]);
377 template<
class BasicThermo,
class MixtureType>
390 mesh.time().timeName(),
406 this->cellMixture(celli).Cp(this->p_[celli], this->T_[celli]);
409 volScalarField::Boundary& cpBf =
cp.boundaryFieldRef();
420 this->patchFaceMixture(patchi, facei).Cp(pp[facei], pT[facei]);
428 template<
class BasicThermo,
class MixtureType>
443 this->patchFaceMixture(patchi, facei).Cv(
p[facei],
T[facei]);
450 template<
class BasicThermo,
class MixtureType>
463 mesh.time().timeName(),
479 this->cellMixture(celli).Cv(this->p_[celli], this->T_[celli]);
482 volScalarField::Boundary& cvBf = cv.boundaryFieldRef();
488 this->p_.boundaryField()[patchi],
489 this->T_.boundaryField()[patchi],
498 template<
class BasicThermo,
class MixtureType>
512 this->patchFaceMixture(patchi, facei).gamma(
p[facei],
T[facei]);
519 template<
class BasicThermo,
class MixtureType>
532 mesh.time().timeName(),
548 this->cellMixture(celli).gamma(this->p_[celli], this->T_[celli]);
551 volScalarField::Boundary& gammaBf =
gamma.boundaryFieldRef();
561 pgamma[facei] = this->patchFaceMixture(patchi, facei).gamma
573 template<
class BasicThermo,
class MixtureType>
587 this->patchFaceMixture(patchi, facei).Cpv(
p[facei],
T[facei]);
594 template<
class BasicThermo,
class MixtureType>
607 mesh.time().timeName(),
623 this->cellMixture(celli).Cpv(this->p_[celli], this->T_[celli]);
626 volScalarField::Boundary& CpvBf = Cpv.boundaryFieldRef();
637 this->patchFaceMixture(patchi, facei).Cpv(pp[facei], pT[facei]);
645 template<
class BasicThermo,
class MixtureType>
659 this->patchFaceMixture(patchi, facei).CpByCpv(
p[facei],
T[facei]);
666 template<
class BasicThermo,
class MixtureType>
679 mesh.time().timeName(),
694 CpByCpv[celli] = this->cellMixture(celli).CpByCpv
701 volScalarField::Boundary& CpByCpvBf =
702 CpByCpv.boundaryFieldRef();
712 pCpByCpv[facei] = this->patchFaceMixture(patchi, facei).CpByCpv
724 template<
class BasicThermo,
class MixtureType>
739 this->cellMixture(
cells[celli]).THE(
h[celli],
p[celli],
T0[celli]);
746 template<
class BasicThermo,
class MixtureType>
760 T[facei] = this->patchFaceMixture
764 ).THE(
h[facei],
p[facei],
T0[facei]);
771 template<
class BasicThermo,
class MixtureType>
785 mesh.time().timeName(),
801 WCells[celli] = this->cellMixture(celli).W();
804 volScalarField::Boundary& WBf = W.boundaryFieldRef();
811 Wp[facei] = this->patchFaceMixture(patchi, facei).W();
819 template<
class BasicThermo,
class MixtureType>
824 kappa.ref().rename(
"kappa");
829 template<
class BasicThermo,
class MixtureType>
838 this->p_.boundaryField()[patchi],
839 this->T_.boundaryField()[patchi],
841 )*this->alpha_.boundaryField()[patchi];
845 template<
class BasicThermo,
class MixtureType>
855 template<
class BasicThermo,
class MixtureType>
862 this->p_.boundaryField()[patchi],
863 this->T_.boundaryField()[patchi],
866 *this->alpha_.boundaryField()[patchi];
870 template<
class BasicThermo,
class MixtureType>
883 template<
class BasicThermo,
class MixtureType>
894 this->p_.boundaryField()[patchi],
895 this->T_.boundaryField()[patchi],
899 this->alpha_.boundaryField()[patchi]
905 template<
class BasicThermo,
class MixtureType>
918 template<
class BasicThermo,
class MixtureType>
929 this->p_.boundaryField()[patchi],
930 this->T_.boundaryField()[patchi],
934 this->alpha_.boundaryField()[patchi]
940 template<
class BasicThermo,
class MixtureType>