Thermodynamics: Added support for thermodynamics packages based on sensible enthalpy.
This commit is contained in:
parent
0bae7febff
commit
d09ddb1acb
@ -143,7 +143,6 @@ void Foam::basicThermo::eBoundaryCorrection(volScalarField& e)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::basicThermo::basicThermo(const fvMesh& mesh)
|
Foam::basicThermo::basicThermo(const fvMesh& mesh)
|
||||||
@ -300,6 +299,50 @@ Foam::tmp<Foam::scalarField> Foam::basicThermo::h
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::volScalarField& Foam::basicThermo::hs()
|
||||||
|
{
|
||||||
|
notImplemented("basicThermo::hs()");
|
||||||
|
return const_cast<volScalarField&>(volScalarField::null());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const Foam::volScalarField& Foam::basicThermo::hs() const
|
||||||
|
{
|
||||||
|
notImplemented("basicThermo::hs() const");
|
||||||
|
return volScalarField::null();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::tmp<Foam::scalarField> Foam::basicThermo::hs
|
||||||
|
(
|
||||||
|
const scalarField& T,
|
||||||
|
const labelList& cells
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
notImplemented
|
||||||
|
(
|
||||||
|
"basicThermo::hs"
|
||||||
|
"(const scalarField& T, const labelList& cells) const"
|
||||||
|
);
|
||||||
|
return tmp<scalarField>(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::tmp<Foam::scalarField> Foam::basicThermo::hs
|
||||||
|
(
|
||||||
|
const scalarField& T,
|
||||||
|
const label patchi
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
notImplemented
|
||||||
|
(
|
||||||
|
"basicThermo::hs"
|
||||||
|
"(const scalarField& T, const label patchi) const"
|
||||||
|
);
|
||||||
|
return tmp<scalarField>(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::volScalarField& Foam::basicThermo::e()
|
Foam::volScalarField& Foam::basicThermo::e()
|
||||||
{
|
{
|
||||||
notImplemented("basicThermo::e()");
|
notImplemented("basicThermo::e()");
|
||||||
|
@ -141,7 +141,7 @@ public:
|
|||||||
//- Compressibility [s^2/m^2]
|
//- Compressibility [s^2/m^2]
|
||||||
virtual const volScalarField& psi() const;
|
virtual const volScalarField& psi() const;
|
||||||
|
|
||||||
//- Enthalpy [J/kg]
|
//- Total enthalpy [J/kg]
|
||||||
// Non-const access allowed for transport equations
|
// Non-const access allowed for transport equations
|
||||||
virtual volScalarField& h();
|
virtual volScalarField& h();
|
||||||
|
|
||||||
@ -162,6 +162,27 @@ public:
|
|||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
//- Sensible enthalpy [J/kg]
|
||||||
|
// Non-const access allowed for transport equations
|
||||||
|
virtual volScalarField& hs();
|
||||||
|
|
||||||
|
//- Enthalpy [J/kg]
|
||||||
|
virtual const volScalarField& hs() const;
|
||||||
|
|
||||||
|
//- Enthalpy for cell-set [J/kg]
|
||||||
|
virtual tmp<scalarField> hs
|
||||||
|
(
|
||||||
|
const scalarField& T,
|
||||||
|
const labelList& cells
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Enthalpy for patch [J/kg]
|
||||||
|
virtual tmp<scalarField> hs
|
||||||
|
(
|
||||||
|
const scalarField& T,
|
||||||
|
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();
|
||||||
|
@ -30,14 +30,9 @@ License
|
|||||||
#include "volFields.H"
|
#include "volFields.H"
|
||||||
#include "basicThermo.H"
|
#include "basicThermo.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
Foam::fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
@ -47,7 +42,7 @@ fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
Foam::fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fixedEnthalpyFvPatchScalarField& ptf,
|
const fixedEnthalpyFvPatchScalarField& ptf,
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
@ -59,7 +54,7 @@ fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
Foam::fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<scalar, volMesh>& iF,
|
const DimensionedField<scalar, volMesh>& iF,
|
||||||
@ -70,7 +65,7 @@ fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
Foam::fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fixedEnthalpyFvPatchScalarField& tppsf
|
const fixedEnthalpyFvPatchScalarField& tppsf
|
||||||
)
|
)
|
||||||
@ -79,7 +74,7 @@ fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
Foam::fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fixedEnthalpyFvPatchScalarField& tppsf,
|
const fixedEnthalpyFvPatchScalarField& tppsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
@ -91,7 +86,7 @@ fixedEnthalpyFvPatchScalarField::fixedEnthalpyFvPatchScalarField
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void fixedEnthalpyFvPatchScalarField::updateCoeffs()
|
void Foam::fixedEnthalpyFvPatchScalarField::updateCoeffs()
|
||||||
{
|
{
|
||||||
if (updated())
|
if (updated())
|
||||||
{
|
{
|
||||||
@ -109,7 +104,14 @@ void fixedEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi]);
|
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi]);
|
||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
|
|
||||||
operator==(thermo.h(Tw, patchi));
|
if (dimensionedInternalField().name() == "h")
|
||||||
|
{
|
||||||
|
operator==(thermo.h(Tw, patchi));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
operator==(thermo.hs(Tw, patchi));
|
||||||
|
}
|
||||||
|
|
||||||
fixedValueFvPatchScalarField::updateCoeffs();
|
fixedValueFvPatchScalarField::updateCoeffs();
|
||||||
}
|
}
|
||||||
@ -117,10 +119,14 @@ void fixedEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField(fvPatchScalarField, fixedEnthalpyFvPatchScalarField);
|
namespace Foam
|
||||||
|
{
|
||||||
|
makePatchTypeField
|
||||||
|
(
|
||||||
|
fvPatchScalarField,
|
||||||
|
fixedEnthalpyFvPatchScalarField
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
@ -44,7 +44,7 @@ namespace Foam
|
|||||||
{
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class fixedEnthalpyFvPatchScalarField Declaration
|
Class fixedEnthalpyFvPatchScalarField Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class fixedEnthalpyFvPatchScalarField
|
class fixedEnthalpyFvPatchScalarField
|
||||||
|
@ -30,14 +30,9 @@ License
|
|||||||
#include "volFields.H"
|
#include "volFields.H"
|
||||||
#include "basicThermo.H"
|
#include "basicThermo.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
Foam::gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
@ -47,7 +42,7 @@ gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
Foam::gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const gradientEnthalpyFvPatchScalarField& ptf,
|
const gradientEnthalpyFvPatchScalarField& ptf,
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
@ -59,7 +54,7 @@ gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
Foam::gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<scalar, volMesh>& iF,
|
const DimensionedField<scalar, volMesh>& iF,
|
||||||
@ -70,7 +65,7 @@ gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
Foam::gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const gradientEnthalpyFvPatchScalarField& tppsf
|
const gradientEnthalpyFvPatchScalarField& tppsf
|
||||||
)
|
)
|
||||||
@ -79,7 +74,7 @@ gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
Foam::gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const gradientEnthalpyFvPatchScalarField& tppsf,
|
const gradientEnthalpyFvPatchScalarField& tppsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
@ -91,7 +86,7 @@ gradientEnthalpyFvPatchScalarField::gradientEnthalpyFvPatchScalarField
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void gradientEnthalpyFvPatchScalarField::updateCoeffs()
|
void Foam::gradientEnthalpyFvPatchScalarField::updateCoeffs()
|
||||||
{
|
{
|
||||||
if (updated())
|
if (updated())
|
||||||
{
|
{
|
||||||
@ -110,12 +105,24 @@ void gradientEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
|
|
||||||
gradient() = thermo.Cp(Tw, patchi)*Tw.snGrad()
|
if (dimensionedInternalField().name() == "h")
|
||||||
+ patch().deltaCoeffs()*
|
{
|
||||||
|
gradient() = thermo.Cp(Tw, patchi)*Tw.snGrad()
|
||||||
|
+ patch().deltaCoeffs()*
|
||||||
(
|
(
|
||||||
thermo.h(Tw, patchi)
|
thermo.h(Tw, patchi)
|
||||||
- thermo.h(Tw, patch().faceCells())
|
- thermo.h(Tw, patch().faceCells())
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gradient() = thermo.Cp(Tw, patchi)*Tw.snGrad()
|
||||||
|
+ patch().deltaCoeffs()*
|
||||||
|
(
|
||||||
|
thermo.hs(Tw, patchi)
|
||||||
|
- thermo.hs(Tw, patch().faceCells())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
fixedGradientFvPatchScalarField::updateCoeffs();
|
fixedGradientFvPatchScalarField::updateCoeffs();
|
||||||
}
|
}
|
||||||
@ -123,10 +130,14 @@ void gradientEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField(fvPatchScalarField, gradientEnthalpyFvPatchScalarField);
|
namespace Foam
|
||||||
|
{
|
||||||
|
makePatchTypeField
|
||||||
|
(
|
||||||
|
fvPatchScalarField,
|
||||||
|
gradientEnthalpyFvPatchScalarField
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
@ -30,14 +30,9 @@ License
|
|||||||
#include "volFields.H"
|
#include "volFields.H"
|
||||||
#include "basicThermo.H"
|
#include "basicThermo.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
namespace Foam
|
|
||||||
{
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
Foam::mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
@ -51,7 +46,7 @@ mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
Foam::mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mixedEnthalpyFvPatchScalarField& ptf,
|
const mixedEnthalpyFvPatchScalarField& ptf,
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
@ -63,7 +58,7 @@ mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
Foam::mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const fvPatch& p,
|
const fvPatch& p,
|
||||||
const DimensionedField<scalar, volMesh>& iF,
|
const DimensionedField<scalar, volMesh>& iF,
|
||||||
@ -74,7 +69,7 @@ mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
Foam::mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mixedEnthalpyFvPatchScalarField& tppsf
|
const mixedEnthalpyFvPatchScalarField& tppsf
|
||||||
)
|
)
|
||||||
@ -83,7 +78,7 @@ mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
Foam::mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
||||||
(
|
(
|
||||||
const mixedEnthalpyFvPatchScalarField& tppsf,
|
const mixedEnthalpyFvPatchScalarField& tppsf,
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
@ -95,7 +90,7 @@ mixedEnthalpyFvPatchScalarField::mixedEnthalpyFvPatchScalarField
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void mixedEnthalpyFvPatchScalarField::updateCoeffs()
|
void Foam::mixedEnthalpyFvPatchScalarField::updateCoeffs()
|
||||||
{
|
{
|
||||||
if (updated())
|
if (updated())
|
||||||
{
|
{
|
||||||
@ -117,13 +112,27 @@ void mixedEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
|
|
||||||
valueFraction() = Tw.valueFraction();
|
valueFraction() = Tw.valueFraction();
|
||||||
refValue() = thermo.h(Tw.refValue(), patchi);
|
|
||||||
refGrad() = thermo.Cp(Tw, patchi)*Tw.refGrad()
|
if (dimensionedInternalField().name() == "h")
|
||||||
+ patch().deltaCoeffs()*
|
{
|
||||||
(
|
refValue() = thermo.h(Tw.refValue(), patchi);
|
||||||
|
refGrad() = thermo.Cp(Tw, patchi)*Tw.refGrad()
|
||||||
|
+ patch().deltaCoeffs()*
|
||||||
|
(
|
||||||
thermo.h(Tw, patchi)
|
thermo.h(Tw, patchi)
|
||||||
- thermo.h(Tw, patch().faceCells())
|
- thermo.h(Tw, patch().faceCells())
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
refValue() = thermo.hs(Tw.refValue(), patchi);
|
||||||
|
refGrad() = thermo.Cp(Tw, patchi)*Tw.refGrad()
|
||||||
|
+ patch().deltaCoeffs()*
|
||||||
|
(
|
||||||
|
thermo.hs(Tw, patchi)
|
||||||
|
- thermo.hs(Tw, patch().faceCells())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
mixedFvPatchScalarField::updateCoeffs();
|
mixedFvPatchScalarField::updateCoeffs();
|
||||||
}
|
}
|
||||||
@ -131,10 +140,14 @@ void mixedEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField(fvPatchScalarField, mixedEnthalpyFvPatchScalarField);
|
namespace Foam
|
||||||
|
{
|
||||||
|
makePatchTypeField
|
||||||
|
(
|
||||||
|
fvPatchScalarField,
|
||||||
|
mixedEnthalpyFvPatchScalarField
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
} // End namespace Foam
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
@ -156,4 +156,22 @@ Foam::tmp<Foam::fvScalarMatrix> Foam::radiation::radiationModel::Sh
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::tmp<Foam::fvScalarMatrix> Foam::radiation::radiationModel::Shs
|
||||||
|
(
|
||||||
|
basicThermo& thermo
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
volScalarField& hs = thermo.hs();
|
||||||
|
const volScalarField cp = thermo.Cp();
|
||||||
|
const volScalarField T3 = pow3(T_);
|
||||||
|
|
||||||
|
return
|
||||||
|
(
|
||||||
|
Ru()
|
||||||
|
- fvm::Sp(4.0*Rp()*T3/cp, hs)
|
||||||
|
- Rp()*T3*(T_ - 4.0*hs/cp)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
@ -163,7 +163,7 @@ public:
|
|||||||
virtual void calculate() = 0;
|
virtual void calculate() = 0;
|
||||||
|
|
||||||
//- Read radiationProperties dictionary
|
//- Read radiationProperties dictionary
|
||||||
virtual bool read();
|
virtual bool read() = 0;
|
||||||
|
|
||||||
|
|
||||||
// Access
|
// Access
|
||||||
@ -176,6 +176,9 @@ public:
|
|||||||
|
|
||||||
//- Enthalpy source term
|
//- Enthalpy source term
|
||||||
virtual tmp<fvScalarMatrix> Sh(basicThermo& thermo) const;
|
virtual tmp<fvScalarMatrix> Sh(basicThermo& thermo) const;
|
||||||
|
|
||||||
|
//- Sensible enthalpy source term
|
||||||
|
virtual tmp<fvScalarMatrix> Shs(basicThermo& thermo) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -189,4 +192,3 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
|
@ -128,9 +128,6 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual tmp<volScalarField> hs() const = 0;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
//- Chemical enthalpy [J/kg]
|
||||||
virtual tmp<volScalarField> hc() const = 0;
|
virtual tmp<volScalarField> hc() const = 0;
|
||||||
|
|
||||||
|
@ -155,53 +155,6 @@ void Foam::hPsiMixtureThermo<MixtureType>::correct()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class MixtureType>
|
|
||||||
Foam::tmp<Foam::volScalarField>
|
|
||||||
Foam::hPsiMixtureThermo<MixtureType>::hs() const
|
|
||||||
{
|
|
||||||
const fvMesh& mesh = T_.mesh();
|
|
||||||
|
|
||||||
tmp<volScalarField> ths
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"hs",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
h_.dimensions()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
volScalarField& hsf = ths();
|
|
||||||
scalarField& hsCells = hsf.internalField();
|
|
||||||
const scalarField& TCells = T_.internalField();
|
|
||||||
|
|
||||||
forAll(TCells, celli)
|
|
||||||
{
|
|
||||||
hsCells[celli] = this->cellMixture(celli).Hs(TCells[celli]);
|
|
||||||
}
|
|
||||||
|
|
||||||
forAll(T_.boundaryField(), patchi)
|
|
||||||
{
|
|
||||||
scalarField& hsp = hsf.boundaryField()[patchi];
|
|
||||||
const scalarField& Tp = T_.boundaryField()[patchi];
|
|
||||||
|
|
||||||
forAll(Tp, facei)
|
|
||||||
{
|
|
||||||
hsp[facei] = this->patchFaceMixture(patchi, facei).Hs(Tp[facei]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ths;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class MixtureType>
|
template<class MixtureType>
|
||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::hPsiMixtureThermo<MixtureType>::hc() const
|
Foam::hPsiMixtureThermo<MixtureType>::hc() const
|
||||||
|
@ -94,9 +94,6 @@ public:
|
|||||||
//- Update properties
|
//- Update properties
|
||||||
virtual void correct();
|
virtual void correct();
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual tmp<volScalarField> hs() const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
//- Chemical enthalpy [J/kg]
|
||||||
virtual tmp<volScalarField> hc() const;
|
virtual tmp<volScalarField> hc() const;
|
||||||
|
|
||||||
|
@ -174,54 +174,6 @@ void Foam::hhuMixtureThermo<MixtureType>::correct()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class MixtureType>
|
|
||||||
Foam::tmp<Foam::volScalarField>
|
|
||||||
Foam::hhuMixtureThermo<MixtureType>::hs() const
|
|
||||||
{
|
|
||||||
const fvMesh& mesh = T_.mesh();
|
|
||||||
|
|
||||||
tmp<volScalarField> ths
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"hs",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
h_.dimensions()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
volScalarField& hsf = ths();
|
|
||||||
|
|
||||||
scalarField& hsCells = hsf.internalField();
|
|
||||||
const scalarField& TCells = T_.internalField();
|
|
||||||
|
|
||||||
forAll(TCells, celli)
|
|
||||||
{
|
|
||||||
hsCells[celli] = this->cellMixture(celli).Hs(TCells[celli]);
|
|
||||||
}
|
|
||||||
|
|
||||||
forAll(T_.boundaryField(), patchi)
|
|
||||||
{
|
|
||||||
scalarField& hsp = hsf.boundaryField()[patchi];
|
|
||||||
const scalarField& Tp = T_.boundaryField()[patchi];
|
|
||||||
|
|
||||||
forAll(Tp, facei)
|
|
||||||
{
|
|
||||||
hsp[facei] = this->patchFaceMixture(patchi, facei).Hs(Tp[facei]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ths;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class MixtureType>
|
template<class MixtureType>
|
||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::hhuMixtureThermo<MixtureType>::hc() const
|
Foam::hhuMixtureThermo<MixtureType>::hc() const
|
||||||
|
@ -36,8 +36,6 @@ SourceFiles
|
|||||||
#ifndef hhuMixtureThermo_H
|
#ifndef hhuMixtureThermo_H
|
||||||
#define hhuMixtureThermo_H
|
#define hhuMixtureThermo_H
|
||||||
|
|
||||||
//#include "hPsiMixtureThermo.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
@ -94,9 +92,6 @@ public:
|
|||||||
//- Update properties
|
//- Update properties
|
||||||
virtual void correct();
|
virtual void correct();
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual tmp<volScalarField> hs() const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
//- Chemical enthalpy [J/kg]
|
||||||
virtual tmp<volScalarField> hc() const;
|
virtual tmp<volScalarField> hc() const;
|
||||||
|
|
||||||
|
@ -128,9 +128,6 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual tmp<volScalarField> hs() const = 0;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
//- Chemical enthalpy [J/kg]
|
||||||
virtual tmp<volScalarField> hc() const = 0;
|
virtual tmp<volScalarField> hc() const = 0;
|
||||||
|
|
||||||
|
@ -154,53 +154,6 @@ void Foam::hRhoMixtureThermo<MixtureType>::correct()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class MixtureType>
|
|
||||||
Foam::tmp<Foam::volScalarField>
|
|
||||||
Foam::hRhoMixtureThermo<MixtureType>::hs() const
|
|
||||||
{
|
|
||||||
const fvMesh& mesh = T_.mesh();
|
|
||||||
|
|
||||||
tmp<volScalarField> ths
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"hs",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
h_.dimensions()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
volScalarField& hsf = ths();
|
|
||||||
scalarField& hsCells = hsf.internalField();
|
|
||||||
const scalarField& TCells = T_.internalField();
|
|
||||||
|
|
||||||
forAll(TCells, celli)
|
|
||||||
{
|
|
||||||
hsCells[celli] = this->cellMixture(celli).Hs(TCells[celli]);
|
|
||||||
}
|
|
||||||
|
|
||||||
forAll(T_.boundaryField(), patchi)
|
|
||||||
{
|
|
||||||
scalarField& hsp = hsf.boundaryField()[patchi];
|
|
||||||
const scalarField& Tp = T_.boundaryField()[patchi];
|
|
||||||
|
|
||||||
forAll(Tp, facei)
|
|
||||||
{
|
|
||||||
hsp[facei] = this->patchFaceMixture(patchi, facei).Hs(Tp[facei]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ths;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class MixtureType>
|
template<class MixtureType>
|
||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::hRhoMixtureThermo<MixtureType>::hc() const
|
Foam::hRhoMixtureThermo<MixtureType>::hc() const
|
||||||
|
@ -94,9 +94,6 @@ public:
|
|||||||
//- Update properties
|
//- Update properties
|
||||||
virtual void correct();
|
virtual void correct();
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual tmp<volScalarField> hs() const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
//- Chemical enthalpy [J/kg]
|
||||||
virtual tmp<volScalarField> hc() const;
|
virtual tmp<volScalarField> hc() const;
|
||||||
|
|
||||||
|
@ -242,6 +242,9 @@ public:
|
|||||||
//- Temperature from Enthalpy given an initial temperature T0
|
//- Temperature from Enthalpy given an initial temperature T0
|
||||||
inline scalar TH(const scalar H, const scalar T0) const;
|
inline scalar TH(const scalar H, const scalar T0) const;
|
||||||
|
|
||||||
|
//- Temperature from sensible Enthalpy given an initial T0
|
||||||
|
inline scalar THs(const scalar Hs, const scalar T0) const;
|
||||||
|
|
||||||
//- Temperature from internal energy given an initial temperature T0
|
//- Temperature from internal energy given an initial temperature T0
|
||||||
inline scalar TE(const scalar E, const scalar T0) const;
|
inline scalar TE(const scalar E, const scalar T0) const;
|
||||||
|
|
||||||
|
@ -281,6 +281,17 @@ inline Foam::scalar Foam::specieThermo<thermo>::TH
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class thermo>
|
||||||
|
inline Foam::scalar Foam::specieThermo<thermo>::THs
|
||||||
|
(
|
||||||
|
const scalar hs,
|
||||||
|
const scalar T0
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return T(hs, T0, &specieThermo<thermo>::Hs, &specieThermo<thermo>::Cp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class thermo>
|
template<class thermo>
|
||||||
inline Foam::scalar Foam::specieThermo<thermo>::TE
|
inline Foam::scalar Foam::specieThermo<thermo>::TE
|
||||||
(
|
(
|
||||||
|
Loading…
Reference in New Issue
Block a user