ENH: basicThermo: add T from h calculation for cell-set or patch

This commit is contained in:
mattijs 2012-03-14 09:33:15 +00:00
parent 806bdec178
commit 2fb7b6cfcc
4 changed files with 110 additions and 2 deletions

View File

@ -350,6 +350,38 @@ Foam::tmp<Foam::volScalarField> Foam::basicThermo::hc() const
} }
Foam::tmp<Foam::scalarField> Foam::basicThermo::TH
(
const scalarField& h,
const scalarField& T0, // starting temperature
const labelList& cells
) const
{
notImplemented
(
"basicThermo::TH"
"(const scalarField&, const scalarField&, const labelList&) const"
);
return tmp<scalarField>(NULL);
}
Foam::tmp<Foam::scalarField> Foam::basicThermo::TH
(
const scalarField& h,
const scalarField& T0, // starting temperature
const label patchi
) const
{
notImplemented
(
"basicThermo::TH"
"(const scalarField&, const scalarField&, const label) const"
);
return tmp<scalarField>(NULL);
}
Foam::volScalarField& Foam::basicThermo::e() Foam::volScalarField& Foam::basicThermo::e()
{ {
notImplemented("basicThermo::e()"); notImplemented("basicThermo::e()");

View File

@ -198,6 +198,22 @@ public:
//- Chemical enthalpy [J/kg] //- Chemical enthalpy [J/kg]
virtual tmp<volScalarField> hc() const; virtual tmp<volScalarField> hc() const;
//- Temperature from enthalpy for cell-set
virtual tmp<scalarField> TH
(
const scalarField& h,
const scalarField& T0, // starting temperature
const labelList& cells
) const;
//- Temperature from enthalpy for patch
virtual tmp<scalarField> TH
(
const scalarField& h,
const scalarField& T0, // starting temperature
const label patchi
) const;
//- Internal energy [J/kg] //- Internal energy [J/kg]
// Non-const access allowed for transport equations // Non-const access allowed for transport equations
virtual volScalarField& e(); virtual volScalarField& e();

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -205,6 +205,50 @@ Foam::tmp<Foam::scalarField> Foam::hRhoThermo<MixtureType>::h
} }
template<class MixtureType>
Foam::tmp<Foam::scalarField> Foam::hRhoThermo<MixtureType>::TH
(
const scalarField& h,
const scalarField& T0,
const labelList& cells
) const
{
tmp<scalarField> tT(new scalarField(h.size()));
scalarField& T = tT();
forAll(h, celli)
{
T[celli] = this->cellMixture(cells[celli]).TH(h[celli], T0[celli]);
}
return tT;
}
template<class MixtureType>
Foam::tmp<Foam::scalarField> Foam::hRhoThermo<MixtureType>::TH
(
const scalarField& h,
const scalarField& T0,
const label patchi
) const
{
tmp<scalarField> tT(new scalarField(h.size()));
scalarField& T = tT();
forAll(h, facei)
{
T[facei] = this->patchFaceMixture
(
patchi,
facei
).TH(h[facei], T0[facei]);
}
return tT;
}
template<class MixtureType> template<class MixtureType>
Foam::tmp<Foam::scalarField> Foam::hRhoThermo<MixtureType>::Cp Foam::tmp<Foam::scalarField> Foam::hRhoThermo<MixtureType>::Cp
( (

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -134,6 +134,22 @@ public:
const label patchi const label patchi
) const; ) const;
//- Temperature from enthalpy for cell-set
virtual tmp<scalarField> TH
(
const scalarField& h,
const scalarField& T0, // starting temperature
const labelList& cells
) const;
//- Temperature from enthalpy for patch
virtual tmp<scalarField> TH
(
const scalarField& h,
const scalarField& T0, // starting temperature
const label patchi
) const;
//- Heat capacity at constant pressure for patch [J/kg/K] //- Heat capacity at constant pressure for patch [J/kg/K]
virtual tmp<scalarField> Cp virtual tmp<scalarField> Cp
( (