thermophysicalModels: Added support for thermodynamic departure functions

This commit is contained in:
Henry Weller
2016-02-17 10:48:30 +00:00
parent 154fb5012f
commit e77938ac02
24 changed files with 223 additions and 15 deletions

View File

@ -173,6 +173,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -120,6 +120,20 @@ inline Foam::scalar Foam::Boussinesq<Specie>::rho
}
template<class Specie>
inline Foam::scalar Foam::Boussinesq<Specie>::h(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::Boussinesq<Specie>::cp(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::Boussinesq<Specie>::s
(

View File

@ -168,6 +168,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -116,6 +116,20 @@ inline Foam::scalar Foam::PengRobinsonGas<Specie>::rho
}
template<class Specie>
inline Foam::scalar Foam::PengRobinsonGas<Specie>::h(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::PengRobinsonGas<Specie>::cp(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::PengRobinsonGas<Specie>::s
(

View File

@ -167,6 +167,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -111,6 +111,28 @@ inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::rho
}
template<class Specie>
inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::h
(
scalar p,
scalar T
) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::cp
(
scalar p,
scalar T
) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::adiabaticPerfectFluid<Specie>::s
(

View File

@ -155,6 +155,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -110,6 +110,28 @@ inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::rho
}
template<class Specie, int PolySize>
inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::h
(
scalar p,
scalar T
) const
{
return 0;
}
template<class Specie, int PolySize>
inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::cp
(
scalar p,
scalar T
) const
{
return 0;
}
template<class Specie, int PolySize>
inline Foam::scalar Foam::icoPolynomial<Specie, PolySize>::s
(

View File

@ -158,6 +158,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -114,6 +114,28 @@ inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::rho
}
template<class Specie>
inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::h
(
scalar p,
scalar T
) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::cp
(
scalar p,
scalar T
) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::incompressiblePerfectGas<Specie>::s
(

View File

@ -156,6 +156,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -92,6 +92,20 @@ inline Foam::scalar Foam::linear<Specie>::rho(scalar p, scalar T) const
}
template<class Specie>
inline Foam::scalar Foam::linear<Specie>::h(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::linear<Specie>::cp(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::linear<Specie>::s(scalar p, scalar T) const
{

View File

@ -155,6 +155,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -100,6 +100,20 @@ inline Foam::scalar Foam::perfectFluid<Specie>::rho(scalar p, scalar T) const
}
template<class Specie>
inline Foam::scalar Foam::perfectFluid<Specie>::h(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::perfectFluid<Specie>::cp(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::perfectFluid<Specie>::s(scalar p, scalar T) const
{

View File

@ -139,6 +139,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -82,6 +82,20 @@ inline Foam::scalar Foam::perfectGas<Specie>::rho(scalar p, scalar T) const
}
template<class Specie>
inline Foam::scalar Foam::perfectGas<Specie>::h(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::perfectGas<Specie>::cp(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::perfectGas<Specie>::s(scalar p, scalar T) const
{

View File

@ -141,6 +141,12 @@ public:
//- Return density [kg/m^3]
inline scalar rho(scalar p, scalar T) const;
//- Return enthalpy departure [J/kmol]
inline scalar h(const scalar p, const scalar T) const;
//- Return cp departure [J/(kmol K]
inline scalar cp(scalar p, scalar T) const;
//- Return entropy [J/(kmol K)]
inline scalar s(const scalar p, const scalar T) const;

View File

@ -78,6 +78,20 @@ inline Foam::scalar Foam::rhoConst<Specie>::rho(scalar p, scalar T) const
}
template<class Specie>
inline Foam::scalar Foam::rhoConst<Specie>::h(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::rhoConst<Specie>::cp(scalar p, scalar T) const
{
return 0;
}
template<class Specie>
inline Foam::scalar Foam::rhoConst<Specie>::s(scalar p, scalar T) const
{

View File

@ -106,7 +106,7 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::cp
const scalar T
) const
{
return Cv_ + this->cpMcv(p, T);
return Cv_ + this->cpMcv(p, T) + EquationOfState::cp(p, T);
}
@ -117,7 +117,7 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::ha
const scalar T
) const
{
return cp(p, T)*T + Hf_;
return cp(p, T)*T + Hf_ + EquationOfState::h(p, T);
}
@ -128,7 +128,7 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::hs
const scalar T
) const
{
return cp(p, T)*T;
return cp(p, T)*T + EquationOfState::h(p, T);
}

View File

@ -106,7 +106,7 @@ inline Foam::scalar Foam::hConstThermo<EquationOfState>::cp
const scalar T
) const
{
return Cp_;
return Cp_ + EquationOfState::cp(p, T);
}
@ -116,7 +116,7 @@ inline Foam::scalar Foam::hConstThermo<EquationOfState>::ha
const scalar p, const scalar T
) const
{
return Cp_*T + Hf_;
return Cp_*T + Hf_ + EquationOfState::h(p, T);
}
@ -126,7 +126,7 @@ inline Foam::scalar Foam::hConstThermo<EquationOfState>::hs
const scalar p, const scalar T
) const
{
return Cp_*T;
return Cp_*T + EquationOfState::h(p, T);
}

View File

@ -98,7 +98,7 @@ inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::cp
const scalar p, const scalar T
) const
{
return CpCoeffs_.value(T);
return CpCoeffs_.value(T) + EquationOfState::cp(p, T);
}
@ -108,7 +108,7 @@ inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::ha
const scalar p, const scalar T
) const
{
return hCoeffs_.value(T);
return hCoeffs_.value(T) + EquationOfState::h(p, T);
}

View File

@ -130,7 +130,7 @@ inline Foam::scalar Foam::hPowerThermo<EquationOfState>::cp
const scalar p, const scalar T
) const
{
return c0_*pow(T/Tref_, n0_);
return c0_*pow(T/Tref_, n0_) + EquationOfState::cp(p, T);
}
@ -151,7 +151,8 @@ inline Foam::scalar Foam::hPowerThermo<EquationOfState>::hs
) const
{
return
c0_*(pow(T, n0_ + 1) - pow(Tstd, n0_ + 1))/(pow(Tref_, n0_)*(n0_ + 1));
c0_*(pow(T, n0_ + 1) - pow(Tstd, n0_ + 1))/(pow(Tref_, n0_)*(n0_ + 1))
+ EquationOfState::h(p, T);
}

View File

@ -112,7 +112,7 @@ inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::cp
const scalar T
) const
{
return Cp_;
return Cp_ + EquationOfState::cp(p, T);
}
@ -122,7 +122,7 @@ inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::ha
const scalar p, const scalar T
) const
{
return Cp_*(T-Tref_) + Href_ + Hf_;
return Cp_*(T-Tref_) + Href_ + Hf_ + EquationOfState::h(p, T);
}
@ -132,7 +132,7 @@ inline Foam::scalar Foam::hRefConstThermo<EquationOfState>::hs
const scalar p, const scalar T
) const
{
return Cp_*(T-Tref_) + Href_ ;
return Cp_*(T-Tref_) + Href_ + EquationOfState::h(p, T);
}

View File

@ -162,7 +162,9 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::cp
) const
{
const coeffArray& a = coeffs(T);
return RR*((((a[4]*T + a[3])*T + a[2])*T + a[1])*T + a[0]);
return
RR*((((a[4]*T + a[3])*T + a[2])*T + a[1])*T + a[0])
+ EquationOfState::cp(p, T);
}
@ -178,7 +180,8 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::ha
(
((((a[4]/5.0*T + a[3]/4.0)*T + a[2]/3.0)*T + a[1]/2.0)*T + a[0])*T
+ a[5]
);
)
+ EquationOfState::h(p, T);
}