thermophysicalModels: Renamed he*Thermo classes

The he*Thermo classes have been renamed to match their corresponding
basic thermo classes. E.g., rhoThermo now corresponds to RhoThermo,
rather than heRhoThermo.
This commit is contained in:
Will Bainbridge
2023-06-13 10:00:19 +01:00
parent 3c542d664b
commit 65f3050b35
52 changed files with 512 additions and 496 deletions

View File

@ -19,7 +19,7 @@ type
heRhoThermo heRhoThermo
); );
typeBase typeRenamed
( (
hePsiThermo psiMulticomponentThermo hePsiThermo psiMulticomponentThermo
heRhoThermo rhoMulticomponentThermo heRhoThermo rhoMulticomponentThermo

View File

@ -37,15 +37,12 @@ License
#include "${transport}Transport.H" #include "${transport}Transport.H"
// psi/rho // psi/rho
#include "${typeBase}.H"
#include "${type}.H" #include "${type}.H"
// Mixture // Mixture
#include "${mixture}.H" #include "${mixture}.H"
#include "thermo.H" #include "thermo.H"
#include "heMulticomponentThermo.H"
#include "heFluidMulticomponentThermo.H"
#include "typedefThermo.H" #include "typedefThermo.H"
#include "makeThermo.H" #include "makeThermo.H"
@ -88,7 +85,7 @@ namespace Foam
defineThermo defineThermo
( (
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );
@ -96,15 +93,15 @@ namespace Foam
addThermo addThermo
( (
fluidMulticomponentThermo, fluidMulticomponentThermo,
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );
addThermo addThermo
( (
${typeBase}, ${type},
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );

View File

@ -19,7 +19,7 @@ type
heRhoThermo heRhoThermo
); );
typeBase typeRenamed
( (
hePsiThermo psiThermo hePsiThermo psiThermo
heRhoThermo rhoThermo heRhoThermo rhoThermo

View File

@ -37,7 +37,6 @@ License
#include "${transport}Transport.H" #include "${transport}Transport.H"
// psi/rho // psi/rho
#include "${typeBase}.H"
#include "${type}.H" #include "${type}.H"
// Mixture // Mixture
@ -86,7 +85,7 @@ namespace Foam
defineThermo defineThermo
( (
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );
@ -94,15 +93,15 @@ namespace Foam
addThermo addThermo
( (
fluidThermo, fluidThermo,
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );
addThermo addThermo
( (
${typeBase}, ${type},
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );

View File

@ -18,7 +18,7 @@ type
hePsiThermo hePsiThermo
); );
typeBase typeRenamed
( (
hePsiThermo psiThermo hePsiThermo psiThermo
); );

View File

@ -18,7 +18,7 @@ type
heheuPsiThermo heheuPsiThermo
); );
typeBase typeRenamed
( (
heheuPsiThermo psiuMulticomponentThermo heheuPsiThermo psiuMulticomponentThermo
); );

View File

@ -37,7 +37,6 @@ License
#include "${transport}Transport.H" #include "${transport}Transport.H"
// psi/rho // psi/rho
#include "${typeBase}.H"
#include "${type}.H" #include "${type}.H"
// Mixture // Mixture
@ -86,15 +85,15 @@ namespace Foam
defineThermo defineThermo
( (
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );
addThermo addThermo
( (
${typeBase}, ${type},
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );

View File

@ -18,7 +18,7 @@ type
heSolidThermo heSolidThermo
); );
typeBase typeRenamed
( (
heSolidThermo solidThermo heSolidThermo solidThermo
); );

View File

@ -37,7 +37,6 @@ License
#include "${transport}Transport.H" #include "${transport}Transport.H"
// psi/rho // psi/rho
#include "${typeBase}.H"
#include "${type}.H" #include "${type}.H"
// Mixture // Mixture
@ -86,15 +85,15 @@ namespace Foam
defineThermo defineThermo
( (
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );
addThermo addThermo
( (
${typeBase}, ${type},
${typeBase}, ${type},
${mixture}, ${mixture},
${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie}
); );

View File

@ -99,13 +99,6 @@ void Foam::compileTemplate::setFilterVariable
} }
dynCode.setFilterVariable(name, type); dynCode.setFilterVariable(name, type);
const word typeBase(name + "Base");
if (context.dict().found(typeBase))
{
const HashTable<word> typeToBaseMap(context.dict().lookup(typeBase));
dynCode.setFilterVariable(typeBase, typeToBaseMap[type]);
}
} }

View File

@ -1,4 +1,5 @@
basicThermo/basicThermo.C basicThermo/basicThermo.C
basicThermo/BasicThermoName.C
pureThermo/pureThermo.C pureThermo/pureThermo.C
@ -21,6 +22,4 @@ derivedFvPatchFields/gradientEnergy/gradientEnergyCalculatedTemperatureFvPatchSc
derivedFvPatchFields/mixedEnergy/mixedEnergyFvPatchScalarField.C derivedFvPatchFields/mixedEnergy/mixedEnergyFvPatchScalarField.C
derivedFvPatchFields/mixedEnergy/mixedEnergyCalculatedTemperatureFvPatchScalarField.C derivedFvPatchFields/mixedEnergy/mixedEnergyCalculatedTemperatureFvPatchScalarField.C
heThermo/heThermoName.C
LIB = $(FOAM_LIBBIN)/libfluidThermophysicalModels LIB = $(FOAM_LIBBIN)/libfluidThermophysicalModels

View File

@ -23,7 +23,7 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heThermo.H" #include "BasicThermo.H"
#include "gradientEnergyFvPatchScalarField.H" #include "gradientEnergyFvPatchScalarField.H"
#include "mixedEnergyFvPatchScalarField.H" #include "mixedEnergyFvPatchScalarField.H"
@ -32,7 +32,7 @@ License
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
template<class Mixture, class Method, class ... Args> template<class Mixture, class Method, class ... Args>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heThermo<MixtureType, BasicThermoType>::volScalarFieldProperty Foam::BasicThermo<MixtureType, BasicThermoType>::volScalarFieldProperty
( (
const word& psiName, const word& psiName,
const dimensionSet& psiDim, const dimensionSet& psiDim,
@ -84,7 +84,7 @@ Foam::heThermo<MixtureType, BasicThermoType>::volScalarFieldProperty
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
template<class Mixture, class Method, class ... Args> template<class Mixture, class Method, class ... Args>
Foam::tmp<Foam::scalarField> Foam::tmp<Foam::scalarField>
Foam::heThermo<MixtureType, BasicThermoType>::cellSetProperty Foam::BasicThermo<MixtureType, BasicThermoType>::cellSetProperty
( (
Mixture mixture, Mixture mixture,
Method psiMethod, Method psiMethod,
@ -113,7 +113,7 @@ Foam::heThermo<MixtureType, BasicThermoType>::cellSetProperty
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
template<class Mixture, class Method, class ... Args> template<class Mixture, class Method, class ... Args>
Foam::tmp<Foam::scalarField> Foam::tmp<Foam::scalarField>
Foam::heThermo<MixtureType, BasicThermoType>::patchFieldProperty Foam::BasicThermo<MixtureType, BasicThermoType>::patchFieldProperty
( (
Mixture mixture, Mixture mixture,
Method psiMethod, Method psiMethod,
@ -141,7 +141,7 @@ Foam::heThermo<MixtureType, BasicThermoType>::patchFieldProperty
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::UIndirectList<Foam::scalar> Foam::UIndirectList<Foam::scalar>
Foam::heThermo<MixtureType, BasicThermoType>::cellSetScalarList Foam::BasicThermo<MixtureType, BasicThermoType>::cellSetScalarList
( (
const volScalarField& psi, const volScalarField& psi,
const labelList& cells const labelList& cells
@ -153,7 +153,7 @@ Foam::heThermo<MixtureType, BasicThermoType>::cellSetScalarList
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::UniformField<Foam::scalar> Foam::UniformField<Foam::scalar>
Foam::heThermo<MixtureType, BasicThermoType>::cellSetScalarList Foam::BasicThermo<MixtureType, BasicThermoType>::cellSetScalarList
( (
const uniformGeometricScalarField& psi, const uniformGeometricScalarField& psi,
const labelList& const labelList&
@ -164,7 +164,7 @@ Foam::heThermo<MixtureType, BasicThermoType>::cellSetScalarList
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
void Foam::heThermo<MixtureType, BasicThermoType>:: void Foam::BasicThermo<MixtureType, BasicThermoType>::
heBoundaryCorrection(volScalarField& h) heBoundaryCorrection(volScalarField& h)
{ {
volScalarField::Boundary& hBf = h.boundaryFieldRef(); volScalarField::Boundary& hBf = h.boundaryFieldRef();
@ -188,7 +188,7 @@ heBoundaryCorrection(volScalarField& h)
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::heThermo<MixtureType, BasicThermoType>::heThermo Foam::BasicThermo<MixtureType, BasicThermoType>::BasicThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
@ -256,12 +256,7 @@ Foam::heThermo<MixtureType, BasicThermoType>::heThermo
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::heThermo<MixtureType, BasicThermoType>::~heThermo() Foam::BasicThermo<MixtureType, BasicThermoType>::~BasicThermo()
{}
template<class HeThermo>
Foam::namedHeThermo<HeThermo>::~namedHeThermo()
{} {}
@ -269,7 +264,7 @@ Foam::namedHeThermo<HeThermo>::~namedHeThermo()
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
const Foam::volScalarField& const Foam::volScalarField&
Foam::heThermo<MixtureType, BasicThermoType>::Cpv() const Foam::BasicThermo<MixtureType, BasicThermoType>::Cpv() const
{ {
if (MixtureType::thermoType::enthalpy()) if (MixtureType::thermoType::enthalpy())
{ {
@ -283,7 +278,8 @@ Foam::heThermo<MixtureType, BasicThermoType>::Cpv() const
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::heThermo<MixtureType, BasicThermoType>::he Foam::tmp<Foam::volScalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::he
( (
const volScalarField& p, const volScalarField& p,
const volScalarField& T const volScalarField& T
@ -302,7 +298,8 @@ Foam::tmp<Foam::volScalarField> Foam::heThermo<MixtureType, BasicThermoType>::he
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::he Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::he
( (
const scalarField& T, const scalarField& T,
const labelList& cells const labelList& cells
@ -320,7 +317,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::he
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::he Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::he
( (
const scalarField& T, const scalarField& T,
const label patchi const label patchi
@ -339,7 +337,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::he
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heThermo<MixtureType, BasicThermoType>::hs() const Foam::BasicThermo<MixtureType, BasicThermoType>::hs() const
{ {
return volScalarFieldProperty return volScalarFieldProperty
( (
@ -354,7 +352,8 @@ Foam::heThermo<MixtureType, BasicThermoType>::hs() const
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::heThermo<MixtureType, BasicThermoType>::hs Foam::tmp<Foam::volScalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::hs
( (
const volScalarField& p, const volScalarField& p,
const volScalarField& T const volScalarField& T
@ -373,7 +372,8 @@ Foam::tmp<Foam::volScalarField> Foam::heThermo<MixtureType, BasicThermoType>::hs
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::hs Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::hs
( (
const scalarField& T, const scalarField& T,
const labelList& cells const labelList& cells
@ -391,7 +391,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::hs
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::hs Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::hs
( (
const scalarField& T, const scalarField& T,
const label patchi const label patchi
@ -410,7 +411,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::hs
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heThermo<MixtureType, BasicThermoType>::ha() const Foam::BasicThermo<MixtureType, BasicThermoType>::ha() const
{ {
return volScalarFieldProperty return volScalarFieldProperty
( (
@ -425,7 +426,8 @@ Foam::heThermo<MixtureType, BasicThermoType>::ha() const
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::heThermo<MixtureType, BasicThermoType>::ha Foam::tmp<Foam::volScalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::ha
( (
const volScalarField& p, const volScalarField& p,
const volScalarField& T const volScalarField& T
@ -444,7 +446,8 @@ Foam::tmp<Foam::volScalarField> Foam::heThermo<MixtureType, BasicThermoType>::ha
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::ha Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::ha
( (
const scalarField& T, const scalarField& T,
const labelList& cells const labelList& cells
@ -462,7 +465,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::ha
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::ha Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::ha
( (
const scalarField& T, const scalarField& T,
const label patchi const label patchi
@ -481,7 +485,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::ha
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heThermo<MixtureType, BasicThermoType>::hc() const Foam::BasicThermo<MixtureType, BasicThermoType>::hc() const
{ {
return volScalarFieldProperty return volScalarFieldProperty
( (
@ -494,7 +498,8 @@ Foam::heThermo<MixtureType, BasicThermoType>::hc() const
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::Cp Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::Cp
( (
const scalarField& T, const scalarField& T,
const label patchi const label patchi
@ -512,7 +517,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::Cp
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::Cv Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::Cv
( (
const scalarField& T, const scalarField& T,
const label patchi const label patchi
@ -530,7 +536,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::Cv
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::gamma Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::gamma
( (
const scalarField& T, const scalarField& T,
const label patchi const label patchi
@ -549,14 +556,15 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::gamma
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heThermo<MixtureType, BasicThermoType>::gamma() const Foam::BasicThermo<MixtureType, BasicThermoType>::gamma() const
{ {
return volScalarField::New("gamma", Cp_/Cv_); return volScalarField::New("gamma", Cp_/Cv_);
} }
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::Cpv Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::Cpv
( (
const scalarField& T, const scalarField& T,
const label patchi const label patchi
@ -575,7 +583,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::Cpv
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heThermo<MixtureType, BasicThermoType>::THE Foam::BasicThermo<MixtureType, BasicThermoType>::THE
( (
const volScalarField& h, const volScalarField& h,
const volScalarField& p, const volScalarField& p,
@ -596,7 +604,8 @@ Foam::heThermo<MixtureType, BasicThermoType>::THE
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::THE Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::THE
( (
const scalarField& h, const scalarField& h,
const scalarField& T0, const scalarField& T0,
@ -616,7 +625,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::THE
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::THE Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::THE
( (
const scalarField& h, const scalarField& h,
const scalarField& T0, const scalarField& T0,
@ -637,7 +647,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::THE
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heThermo<MixtureType, BasicThermoType>::W() const Foam::BasicThermo<MixtureType, BasicThermoType>::W() const
{ {
return volScalarFieldProperty return volScalarFieldProperty
( (
@ -650,7 +660,8 @@ Foam::heThermo<MixtureType, BasicThermoType>::W() const
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::W Foam::tmp<Foam::scalarField>
Foam::BasicThermo<MixtureType, BasicThermoType>::W
( (
const label patchi const label patchi
) const ) const
@ -665,7 +676,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<MixtureType, BasicThermoType>::W
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
bool Foam::heThermo<MixtureType, BasicThermoType>::read() bool Foam::BasicThermo<MixtureType, BasicThermoType>::read()
{ {
if (physicalProperties::read()) if (physicalProperties::read())
{ {

View File

@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::heThermo Foam::BasicThermo
Description Description
Thermo implementation and storage of energy and heat capacities. Provides Thermo implementation and storage of energy and heat capacities. Provides
@ -30,12 +30,12 @@ Description
the primitive thermo model. the primitive thermo model.
SourceFiles SourceFiles
heThermo.C BasicThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef heThermo_H #ifndef BasicThermo_H
#define heThermo_H #define BasicThermo_H
#include "volFields.H" #include "volFields.H"
#include "physicalProperties.H" #include "physicalProperties.H"
@ -47,20 +47,20 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heThermoName Declaration Class BasicThermoName Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
TemplateName(heThermo); TemplateName(BasicThermo);
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heThermo Declaration Class BasicThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class MixtureType, class BasicThermoType> template<class MixtureType, class BasicThermoType>
class heThermo class BasicThermo
: :
public heThermoName, public BasicThermoName,
public physicalProperties, public physicalProperties,
public MixtureType, public MixtureType,
public BasicThermoType public BasicThermoType
@ -142,20 +142,20 @@ public:
//- Disambiguate debug switch used by derivations //- Disambiguate debug switch used by derivations
using heThermoName::debug; using BasicThermoName::debug;
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
heThermo(const fvMesh&, const word& phaseName); BasicThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
heThermo(const heThermo<MixtureType, BasicThermoType>&) = delete; BasicThermo(const BasicThermo<MixtureType, BasicThermoType>&) = delete;
//- Destructor //- Destructor
virtual ~heThermo(); virtual ~BasicThermo();
// Member Functions // Member Functions
@ -374,32 +374,6 @@ public:
}; };
/*---------------------------------------------------------------------------*\
Class namedHeThermo Declaration
\*---------------------------------------------------------------------------*/
template<class HeThermo>
class namedHeThermo
:
public HeThermo
{
public:
//- Runtime type information
TypeName("heThermo");
// Constructors
//- Inherit constructors
using HeThermo::HeThermo;
//- Destructor
virtual ~namedHeThermo();
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam } // End namespace Foam
@ -407,7 +381,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository #ifdef NoRepository
#include "heThermo.C" #include "BasicThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,13 +23,13 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heThermo.H" #include "BasicThermo.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(heThermoName, 0); defineTypeNameAndDebug(BasicThermoName, 0);
} }

View File

@ -0,0 +1,77 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::NamedThermo
Description
Final wrapper around a derived thermo. Adds type info.
\*---------------------------------------------------------------------------*/
#ifndef NamedThermo_H
#define NamedThermo_H
#include "typeInfo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class NamedThermo Declaration
\*---------------------------------------------------------------------------*/
template<class BaseThermo>
class NamedThermo
:
public BaseThermo
{
public:
//- Runtime type information
TypeName("NamedThermo");
// Constructors
//- Inherit constructors
using BaseThermo::BaseThermo;
//- Destructor
virtual ~NamedThermo()
{}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -49,7 +49,7 @@ Description
obtaining a single copy of all the implementation classes it needs to form obtaining a single copy of all the implementation classes it needs to form
a complete implementation. The use of virtual inheritance does not result a complete implementation. The use of virtual inheritance does not result
in additional constructor calls propagating further down the hierarchy in additional constructor calls propagating further down the hierarchy
(into heThermo and similar) because all virtually inherited interface (into BasicThermo and similar) because all virtually inherited interface
classes are default constructable. classes are default constructable.
SourceFiles SourceFiles

View File

@ -23,40 +23,40 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heLiquidThermo.H" #include "LiquidThermo.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heLiquidThermo<HeThermo>::heLiquidThermo Foam::LiquidThermo<BaseThermo>::LiquidThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
) )
: :
HeThermo(mesh, phaseName) BaseThermo(mesh, phaseName)
{} {}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heLiquidThermo<HeThermo>::~heLiquidThermo() Foam::LiquidThermo<BaseThermo>::~LiquidThermo()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heLiquidThermo<HeThermo>::sigma() const Foam::LiquidThermo<BaseThermo>::sigma() const
{ {
return this->volScalarFieldProperty return this->volScalarFieldProperty
( (
"sigma", "sigma",
dimForce/dimLength, dimForce/dimLength,
&HeThermo::mixtureType::thermoMixture, &BaseThermo::mixtureType::thermoMixture,
&HeThermo::mixtureType::thermoMixtureType::sigma, &BaseThermo::mixtureType::thermoMixtureType::sigma,
this->p_, this->p_,
this->T_ this->T_
); );

View File

@ -22,21 +22,20 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::heLiquidThermo Foam::LiquidThermo
Description Description
Liquid thermo implementation Liquid thermo implementation
SourceFiles SourceFiles
heLiquidThermo.C LiquidThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef heLiquidThermo_H #ifndef LiquidThermo_H
#define heLiquidThermo_H #define LiquidThermo_H
#include "liquidThermo.H" #include "BasicThermo.H"
#include "heThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -44,27 +43,27 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heLiquidThermo Declaration Class LiquidThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class HeThermo> template<class BaseThermo>
class heLiquidThermo class LiquidThermo
: :
public HeThermo public BaseThermo
{ {
public: public:
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
heLiquidThermo(const fvMesh&, const word& phaseName); LiquidThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
heLiquidThermo(const heLiquidThermo<HeThermo>&) = delete; LiquidThermo(const LiquidThermo<BaseThermo>&) = delete;
//- Destructor //- Destructor
virtual ~heLiquidThermo(); virtual ~LiquidThermo();
// Member Functions // Member Functions
@ -76,7 +75,7 @@ public:
// Member Operators // Member Operators
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const heLiquidThermo<HeThermo>&) = delete; void operator=(const LiquidThermo<BaseThermo>&) = delete;
}; };
@ -87,7 +86,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository #ifdef NoRepository
#include "heLiquidThermo.C" #include "LiquidThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -38,6 +38,7 @@ SourceFiles
#ifndef liquidThermo_H #ifndef liquidThermo_H
#define liquidThermo_H #define liquidThermo_H
#include "LiquidThermo.H"
#include "rhoThermo.H" #include "rhoThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -45,10 +46,6 @@ SourceFiles
namespace Foam namespace Foam
{ {
template<class, class> class heThermo;
template<class> class heRhoThermo;
template<class> class heLiquidThermo;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class liquidThermo Declaration Class liquidThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -69,8 +66,8 @@ public:
//- The derived type //- The derived type
template<class MixtureType> template<class MixtureType>
using heThermoType = using DerivedThermoType =
heLiquidThermo<heRhoThermo<heThermo<MixtureType, composite>>>; LiquidThermo<RhoThermo<BasicThermo<MixtureType, composite>>>;
//- Runtime type information //- Runtime type information

View File

@ -23,18 +23,15 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "liquidPropertiesSelector.H" #include "liquidThermo.H"
#include "sensibleInternalEnergy.H"
#include "sensibleEnthalpy.H"
#include "pureMixture.H" #include "pureMixture.H"
#include "liquidPropertiesSelector.H"
#include "sensibleInternalEnergy.H"
#include "sensibleEnthalpy.H"
#include "thermo.H" #include "thermo.H"
#include "liquidThermo.H"
#include "heRhoThermo.H"
#include "heLiquidThermo.H"
#include "makeThermo.H" #include "makeThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,12 +23,12 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "hePsiThermo.H" #include "PsiThermo.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::hePsiThermo<HeThermo>::calculate() void Foam::PsiThermo<BaseThermo>::calculate()
{ {
const scalarField& hCells = this->he_; const scalarField& hCells = this->he_;
const scalarField& pCells = this->p_; const scalarField& pCells = this->p_;
@ -44,10 +44,10 @@ void Foam::hePsiThermo<HeThermo>::calculate()
{ {
auto composition = this->cellComposition(celli); auto composition = this->cellComposition(celli);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -108,10 +108,10 @@ void Foam::hePsiThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -131,10 +131,10 @@ void Foam::hePsiThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -154,14 +154,14 @@ void Foam::hePsiThermo<HeThermo>::calculate()
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::hePsiThermo<HeThermo>::hePsiThermo Foam::PsiThermo<BaseThermo>::PsiThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
) )
: :
HeThermo(mesh, phaseName) BaseThermo(mesh, phaseName)
{ {
calculate(); calculate();
@ -172,17 +172,17 @@ Foam::hePsiThermo<HeThermo>::hePsiThermo
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::hePsiThermo<HeThermo>::~hePsiThermo() Foam::PsiThermo<BaseThermo>::~PsiThermo()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::hePsiThermo<HeThermo>::correct() void Foam::PsiThermo<BaseThermo>::correct()
{ {
if (HeThermo::debug) if (BaseThermo::debug)
{ {
InfoInFunction << endl; InfoInFunction << endl;
} }
@ -192,7 +192,7 @@ void Foam::hePsiThermo<HeThermo>::correct()
calculate(); calculate();
if (HeThermo::debug) if (BaseThermo::debug)
{ {
Info<< " Finished" << endl; Info<< " Finished" << endl;
} }

View File

@ -22,21 +22,20 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::hePsiThermo Foam::PsiThermo
Description Description
Thermo implementation based on compressibility Thermo implementation based on compressibility
SourceFiles SourceFiles
hePsiThermo.C PsiThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef hePsiThermo_H #ifndef PsiThermo_H
#define hePsiThermo_H #define PsiThermo_H
#include "psiThermo.H" #include "BasicThermo.H"
#include "heThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -44,13 +43,13 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class hePsiThermo Declaration Class PsiThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class HeThermo> template<class Thermo>
class hePsiThermo class PsiThermo
: :
public HeThermo public Thermo
{ {
// Private Member Functions // Private Member Functions
@ -62,14 +61,14 @@ public:
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
hePsiThermo(const fvMesh&, const word& phaseName); PsiThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
hePsiThermo(const hePsiThermo<HeThermo>&) = delete; PsiThermo(const PsiThermo<Thermo>&) = delete;
//- Destructor //- Destructor
virtual ~hePsiThermo(); virtual ~PsiThermo();
// Member Functions // Member Functions
@ -81,7 +80,7 @@ public:
// Member Operators // Member Operators
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const hePsiThermo<HeThermo>&) = delete; void operator=(const PsiThermo<Thermo>&) = delete;
}; };
@ -92,7 +91,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository #ifdef NoRepository
#include "hePsiThermo.C" #include "PsiThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -33,7 +33,7 @@ namespace Foam
defineRunTimeSelectionTable(psiThermo, fvMesh); defineRunTimeSelectionTable(psiThermo, fvMesh);
} }
const Foam::word Foam::psiThermo::heThermoName("hePsiThermo"); const Foam::word Foam::psiThermo::derivedThermoName("hePsiThermo");
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

View File

@ -38,6 +38,7 @@ SourceFiles
#ifndef psiThermo_H #ifndef psiThermo_H
#define psiThermo_H #define psiThermo_H
#include "PsiThermo.H"
#include "fluidThermo.H" #include "fluidThermo.H"
#include "pureThermo.H" #include "pureThermo.H"
@ -46,9 +47,6 @@ SourceFiles
namespace Foam namespace Foam
{ {
template<class, class> class heThermo;
template<class> class hePsiThermo;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class psiThermo Declaration Class psiThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -72,10 +70,11 @@ public:
//- The derived type //- The derived type
template<class MixtureType> template<class MixtureType>
using heThermoType = hePsiThermo<heThermo<MixtureType, composite>>; using DerivedThermoType =
PsiThermo<BasicThermo<MixtureType, composite>>;
//- The derived name //- The derived name
static const word heThermoName; static const word derivedThermoName;
//- Runtime type information //- Runtime type information

View File

@ -24,10 +24,11 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "psiThermo.H" #include "psiThermo.H"
#include "hePsiThermo.H"
#include "pureMixture.H" #include "pureMixture.H"
#include "forGases.H" #include "forGases.H"
#include "makeFluidThermo.H" #include "makeFluidThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,12 +23,12 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heRhoThermo.H" #include "RhoThermo.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::heRhoThermo<HeThermo>::calculate() void Foam::RhoThermo<BaseThermo>::calculate()
{ {
const scalarField& hCells = this->he(); const scalarField& hCells = this->he();
const scalarField& pCells = this->p_; const scalarField& pCells = this->p_;
@ -45,10 +45,10 @@ void Foam::heRhoThermo<HeThermo>::calculate()
{ {
auto composition = this->cellComposition(celli); auto composition = this->cellComposition(celli);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -114,10 +114,10 @@ void Foam::heRhoThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -138,10 +138,10 @@ void Foam::heRhoThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -162,14 +162,14 @@ void Foam::heRhoThermo<HeThermo>::calculate()
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heRhoThermo<HeThermo>::heRhoThermo Foam::RhoThermo<BaseThermo>::RhoThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
) )
: :
HeThermo(mesh, phaseName) BaseThermo(mesh, phaseName)
{ {
calculate(); calculate();
} }
@ -177,24 +177,24 @@ Foam::heRhoThermo<HeThermo>::heRhoThermo
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heRhoThermo<HeThermo>::~heRhoThermo() Foam::RhoThermo<BaseThermo>::~RhoThermo()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::heRhoThermo<HeThermo>::correct() void Foam::RhoThermo<BaseThermo>::correct()
{ {
if (HeThermo::debug) if (BaseThermo::debug)
{ {
InfoInFunction << endl; InfoInFunction << endl;
} }
calculate(); calculate();
if (HeThermo::debug) if (BaseThermo::debug)
{ {
Info<< " Finished" << endl; Info<< " Finished" << endl;
} }

View File

@ -22,21 +22,20 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::heRhoThermo Foam::RhoThermo
Description Description
Thermo implementation based on density Thermo implementation based on density
SourceFiles SourceFiles
heRhoThermo.C RhoThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef heRhoThermo_H #ifndef RhoThermo_H
#define heRhoThermo_H #define RhoThermo_H
#include "rhoThermo.H" #include "BasicThermo.H"
#include "heThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -44,13 +43,13 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heRhoThermo Declaration Class RhoThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class HeThermo> template<class BaseThermo>
class heRhoThermo class RhoThermo
: :
public HeThermo public BaseThermo
{ {
// Private Member Functions // Private Member Functions
@ -63,14 +62,14 @@ public:
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
heRhoThermo(const fvMesh&, const word& phaseName); RhoThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
heRhoThermo(const heRhoThermo<HeThermo>&) = delete; RhoThermo(const RhoThermo<BaseThermo>&) = delete;
//- Destructor //- Destructor
virtual ~heRhoThermo(); virtual ~RhoThermo();
// Member Functions // Member Functions
@ -82,7 +81,7 @@ public:
// Member Operators // Member Operators
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const heRhoThermo<HeThermo>&) = delete; void operator=(const RhoThermo<BaseThermo>&) = delete;
}; };
@ -93,7 +92,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository #ifdef NoRepository
#include "heRhoThermo.C" #include "RhoThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -33,7 +33,7 @@ namespace Foam
defineRunTimeSelectionTable(rhoThermo, fvMesh); defineRunTimeSelectionTable(rhoThermo, fvMesh);
} }
const Foam::word Foam::rhoThermo::heThermoName("heRhoThermo"); const Foam::word Foam::rhoThermo::derivedThermoName("heRhoThermo");
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

View File

@ -38,6 +38,7 @@ SourceFiles
#ifndef rhoThermo_H #ifndef rhoThermo_H
#define rhoThermo_H #define rhoThermo_H
#include "RhoThermo.H"
#include "fluidThermo.H" #include "fluidThermo.H"
#include "pureThermo.H" #include "pureThermo.H"
@ -46,9 +47,6 @@ SourceFiles
namespace Foam namespace Foam
{ {
template<class, class> class heThermo;
template<class> class heRhoThermo;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class rhoThermo Declaration Class rhoThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -72,10 +70,11 @@ public:
//- The derived type //- The derived type
template<class MixtureType> template<class MixtureType>
using heThermoType = heRhoThermo<heThermo<MixtureType, composite>>; using DerivedThermoType =
RhoThermo<BasicThermo<MixtureType, composite>>;
//- The derived name //- The derived name
static const word heThermoName; static const word derivedThermoName;
//- Runtime type information //- Runtime type information

View File

@ -24,12 +24,13 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "rhoThermo.H" #include "rhoThermo.H"
#include "heRhoThermo.H"
#include "pureMixture.H" #include "pureMixture.H"
#include "forGases.H" #include "forGases.H"
#include "forLiquids.H" #include "forLiquids.H"
#include "forTabulated.H" #include "forTabulated.H"
#include "makeFluidThermo.H" #include "makeFluidThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,33 +23,33 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heFluidMulticomponentThermo.H" #include "FluidMulticomponentThermo.H"
#include "fvMesh.H" #include "fvMesh.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heFluidMulticomponentThermo<HeThermo>::heFluidMulticomponentThermo Foam::FluidMulticomponentThermo<BaseThermo>::FluidMulticomponentThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
) )
: :
HeThermo(mesh, phaseName) BaseThermo(mesh, phaseName)
{} {}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heFluidMulticomponentThermo<HeThermo>::~heFluidMulticomponentThermo() Foam::FluidMulticomponentThermo<BaseThermo>::~FluidMulticomponentThermo()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heFluidMulticomponentThermo<HeThermo>::mui Foam::scalar Foam::FluidMulticomponentThermo<BaseThermo>::mui
( (
const label speciei, const label speciei,
const scalar p, const scalar p,
@ -60,9 +60,9 @@ Foam::scalar Foam::heFluidMulticomponentThermo<HeThermo>::mui
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heFluidMulticomponentThermo<HeThermo>::mui Foam::FluidMulticomponentThermo<BaseThermo>::mui
( (
const label speciei, const label speciei,
const volScalarField& p, const volScalarField& p,
@ -73,7 +73,7 @@ Foam::heFluidMulticomponentThermo<HeThermo>::mui
( (
"mu", "mu",
dimMass/dimLength/dimTime, dimMass/dimLength/dimTime,
&HeThermo::mixtureType::thermoType::mu, &BaseThermo::mixtureType::thermoType::mu,
speciei, speciei,
p, p,
T T

View File

@ -22,20 +22,20 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::heFluidMulticomponentThermo Foam::FluidMulticomponentThermo
Description Description
Fluid multi-component thermo implementation Fluid multi-component thermo implementation
SourceFiles SourceFiles
heFluidMulticomponentThermo.C FluidMulticomponentThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef heFluidMulticomponentThermo_H #ifndef FluidMulticomponentThermo_H
#define heFluidMulticomponentThermo_H #define FluidMulticomponentThermo_H
#include "heThermo.H" #include "BasicThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -43,30 +43,30 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heFluidMulticomponentThermo Declaration Class FluidMulticomponentThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class HeThermo> template<class BaseThermo>
class heFluidMulticomponentThermo class FluidMulticomponentThermo
: :
public HeThermo public BaseThermo
{ {
public: public:
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
heFluidMulticomponentThermo(const fvMesh&, const word& phaseName); FluidMulticomponentThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
heFluidMulticomponentThermo FluidMulticomponentThermo
( (
const heFluidMulticomponentThermo<HeThermo>& const FluidMulticomponentThermo<BaseThermo>&
) = delete; ) = delete;
//- Destructor //- Destructor
virtual ~heFluidMulticomponentThermo(); virtual ~FluidMulticomponentThermo();
// Member Functions // Member Functions
@ -93,7 +93,7 @@ public:
// Member Operators // Member Operators
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const heFluidMulticomponentThermo<HeThermo>&) = delete; void operator=(const FluidMulticomponentThermo<BaseThermo>&) = delete;
}; };
@ -104,7 +104,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
#ifdef NoRepository #ifdef NoRepository
#include "heFluidMulticomponentThermo.C" #include "FluidMulticomponentThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -40,6 +40,7 @@ SourceFiles
#include "fluidThermo.H" #include "fluidThermo.H"
#include "multicomponentThermo.H" #include "multicomponentThermo.H"
#include "FluidMulticomponentThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,15 +23,15 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heMulticomponentThermo.H" #include "MulticomponentThermo.H"
#include "fvMesh.H" #include "fvMesh.H"
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
template<class Method, class ... Args> template<class Method, class ... Args>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heMulticomponentThermo<HeThermo>::volScalarFieldPropertyi Foam::MulticomponentThermo<BaseThermo>::volScalarFieldPropertyi
( (
const word& psiName, const word& psiName,
const dimensionSet& psiDim, const dimensionSet& psiDim,
@ -40,7 +40,7 @@ Foam::heMulticomponentThermo<HeThermo>::volScalarFieldPropertyi
const Args& ... args const Args& ... args
) const ) const
{ {
const typename HeThermo::mixtureType::thermoType& thermo = const typename BaseThermo::mixtureType::thermoType& thermo =
this->specieThermo(speciei); this->specieThermo(speciei);
tmp<volScalarField> tPsi tmp<volScalarField> tPsi
@ -78,10 +78,10 @@ Foam::heMulticomponentThermo<HeThermo>::volScalarFieldPropertyi
} }
template<class HeThermo> template<class BaseThermo>
template<class Method, class Arg, class ... Args> template<class Method, class Arg, class ... Args>
Foam::tmp<Foam::scalarField> Foam::tmp<Foam::scalarField>
Foam::heMulticomponentThermo<HeThermo>::scalarFieldPropertyi Foam::MulticomponentThermo<BaseThermo>::scalarFieldPropertyi
( (
Method psiMethod, Method psiMethod,
const label speciei, const label speciei,
@ -89,7 +89,7 @@ Foam::heMulticomponentThermo<HeThermo>::scalarFieldPropertyi
const Args& ... args const Args& ... args
) const ) const
{ {
const typename HeThermo::mixtureType::thermoType& thermo = const typename BaseThermo::mixtureType::thermoType& thermo =
this->specieThermo(speciei); this->specieThermo(speciei);
tmp<scalarField> tPsi(new scalarField(arg.size())); tmp<scalarField> tPsi(new scalarField(arg.size()));
@ -107,28 +107,28 @@ Foam::heMulticomponentThermo<HeThermo>::scalarFieldPropertyi
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heMulticomponentThermo<HeThermo>::heMulticomponentThermo Foam::MulticomponentThermo<BaseThermo>::MulticomponentThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
) )
: :
HeThermo(mesh, phaseName) BaseThermo(mesh, phaseName)
{} {}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heMulticomponentThermo<HeThermo>::~heMulticomponentThermo() Foam::MulticomponentThermo<BaseThermo>::~MulticomponentThermo()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::Wi Foam::scalar Foam::MulticomponentThermo<BaseThermo>::Wi
( (
const label speciei const label speciei
) const ) const
@ -137,8 +137,8 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::Wi
} }
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hfi Foam::scalar Foam::MulticomponentThermo<BaseThermo>::hfi
( (
const label speciei const label speciei
) const ) const
@ -147,8 +147,8 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hfi
} }
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::rhoi Foam::scalar Foam::MulticomponentThermo<BaseThermo>::rhoi
( (
const label speciei, const label speciei,
const scalar p, const scalar p,
@ -159,9 +159,9 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::rhoi
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heMulticomponentThermo<HeThermo>::rhoi Foam::MulticomponentThermo<BaseThermo>::rhoi
( (
const label speciei, const label speciei,
const volScalarField& p, const volScalarField& p,
@ -172,7 +172,7 @@ Foam::heMulticomponentThermo<HeThermo>::rhoi
( (
"rho", "rho",
dimDensity, dimDensity,
&HeThermo::mixtureType::thermoType::rho, &BaseThermo::mixtureType::thermoType::rho,
speciei, speciei,
p, p,
T T
@ -180,8 +180,8 @@ Foam::heMulticomponentThermo<HeThermo>::rhoi
} }
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::Cpi Foam::scalar Foam::MulticomponentThermo<BaseThermo>::Cpi
( (
const label speciei, const label speciei,
const scalar p, const scalar p,
@ -192,9 +192,9 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::Cpi
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heMulticomponentThermo<HeThermo>::Cpi Foam::MulticomponentThermo<BaseThermo>::Cpi
( (
const label speciei, const label speciei,
const volScalarField& p, const volScalarField& p,
@ -205,7 +205,7 @@ Foam::heMulticomponentThermo<HeThermo>::Cpi
( (
"Cp", "Cp",
dimEnergy/dimMass/dimTemperature, dimEnergy/dimMass/dimTemperature,
&HeThermo::mixtureType::thermoType::Cp, &BaseThermo::mixtureType::thermoType::Cp,
speciei, speciei,
p, p,
T T
@ -213,8 +213,8 @@ Foam::heMulticomponentThermo<HeThermo>::Cpi
} }
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hei Foam::scalar Foam::MulticomponentThermo<BaseThermo>::hei
( (
const label speciei, const label speciei,
const scalar p, const scalar p,
@ -225,8 +225,8 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hei
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hei Foam::tmp<Foam::scalarField> Foam::MulticomponentThermo<BaseThermo>::hei
( (
const label speciei, const label speciei,
const scalarField& p, const scalarField& p,
@ -235,7 +235,7 @@ Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hei
{ {
return scalarFieldPropertyi return scalarFieldPropertyi
( (
&HeThermo::mixtureType::thermoType::HE, &BaseThermo::mixtureType::thermoType::HE,
speciei, speciei,
p, p,
T T
@ -243,9 +243,9 @@ Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hei
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heMulticomponentThermo<HeThermo>::hei Foam::MulticomponentThermo<BaseThermo>::hei
( (
const label speciei, const label speciei,
const volScalarField& p, const volScalarField& p,
@ -256,7 +256,7 @@ Foam::heMulticomponentThermo<HeThermo>::hei
( (
"he", "he",
dimEnergy/dimMass, dimEnergy/dimMass,
&HeThermo::mixtureType::thermoType::HE, &BaseThermo::mixtureType::thermoType::HE,
speciei, speciei,
p, p,
T T
@ -264,8 +264,8 @@ Foam::heMulticomponentThermo<HeThermo>::hei
} }
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hsi Foam::scalar Foam::MulticomponentThermo<BaseThermo>::hsi
( (
const label speciei, const label speciei,
const scalar p, const scalar p,
@ -276,8 +276,8 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hsi
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hsi Foam::tmp<Foam::scalarField> Foam::MulticomponentThermo<BaseThermo>::hsi
( (
const label speciei, const label speciei,
const scalarField& p, const scalarField& p,
@ -286,7 +286,7 @@ Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hsi
{ {
return scalarFieldPropertyi return scalarFieldPropertyi
( (
&HeThermo::mixtureType::thermoType::Hs, &BaseThermo::mixtureType::thermoType::Hs,
speciei, speciei,
p, p,
T T
@ -294,9 +294,9 @@ Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hsi
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heMulticomponentThermo<HeThermo>::hsi Foam::MulticomponentThermo<BaseThermo>::hsi
( (
const label speciei, const label speciei,
const volScalarField& p, const volScalarField& p,
@ -307,7 +307,7 @@ Foam::heMulticomponentThermo<HeThermo>::hsi
( (
"hs", "hs",
dimEnergy/dimMass, dimEnergy/dimMass,
&HeThermo::mixtureType::thermoType::Hs, &BaseThermo::mixtureType::thermoType::Hs,
speciei, speciei,
p, p,
T T
@ -315,8 +315,8 @@ Foam::heMulticomponentThermo<HeThermo>::hsi
} }
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hai Foam::scalar Foam::MulticomponentThermo<BaseThermo>::hai
( (
const label speciei, const label speciei,
const scalar p, const scalar p,
@ -327,8 +327,8 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::hai
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hai Foam::tmp<Foam::scalarField> Foam::MulticomponentThermo<BaseThermo>::hai
( (
const label speciei, const label speciei,
const scalarField& p, const scalarField& p,
@ -337,7 +337,7 @@ Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hai
{ {
return scalarFieldPropertyi return scalarFieldPropertyi
( (
&HeThermo::mixtureType::thermoType::Ha, &BaseThermo::mixtureType::thermoType::Ha,
speciei, speciei,
p, p,
T T
@ -345,9 +345,9 @@ Foam::tmp<Foam::scalarField> Foam::heMulticomponentThermo<HeThermo>::hai
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heMulticomponentThermo<HeThermo>::hai Foam::MulticomponentThermo<BaseThermo>::hai
( (
const label speciei, const label speciei,
const volScalarField& p, const volScalarField& p,
@ -358,7 +358,7 @@ Foam::heMulticomponentThermo<HeThermo>::hai
( (
"ha", "ha",
dimEnergy/dimMass, dimEnergy/dimMass,
&HeThermo::mixtureType::thermoType::Ha, &BaseThermo::mixtureType::thermoType::Ha,
speciei, speciei,
p, p,
T T
@ -366,8 +366,8 @@ Foam::heMulticomponentThermo<HeThermo>::hai
} }
template<class HeThermo> template<class BaseThermo>
Foam::scalar Foam::heMulticomponentThermo<HeThermo>::kappai Foam::scalar Foam::MulticomponentThermo<BaseThermo>::kappai
( (
const label speciei, const label speciei,
const scalar p, const scalar p,
@ -378,9 +378,9 @@ Foam::scalar Foam::heMulticomponentThermo<HeThermo>::kappai
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heMulticomponentThermo<HeThermo>::kappai Foam::MulticomponentThermo<BaseThermo>::kappai
( (
const label speciei, const label speciei,
const volScalarField& p, const volScalarField& p,
@ -391,7 +391,7 @@ Foam::heMulticomponentThermo<HeThermo>::kappai
( (
"kappa", "kappa",
dimPower/dimLength/dimTemperature, dimPower/dimLength/dimTemperature,
&HeThermo::mixtureType::thermoType::kappa, &BaseThermo::mixtureType::thermoType::kappa,
speciei, speciei,
p, p,
T T

View File

@ -22,20 +22,20 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::heMulticomponentThermo Foam::MulticomponentThermo
Description Description
Multi-component thermo implementation Multi-component thermo implementation
SourceFiles SourceFiles
heMulticomponentThermo.C MulticomponentThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef heMulticomponentThermo_H #ifndef MulticomponentThermo_H
#define heMulticomponentThermo_H #define MulticomponentThermo_H
#include "heThermo.H" #include "BasicThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -43,13 +43,13 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heMulticomponentThermo Declaration Class MulticomponentThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class HeThermo> template<class BaseThermo>
class heMulticomponentThermo class MulticomponentThermo
: :
public HeThermo public BaseThermo
{ {
protected: protected:
@ -82,17 +82,14 @@ public:
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
heMulticomponentThermo(const fvMesh&, const word& phaseName); MulticomponentThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
heMulticomponentThermo MulticomponentThermo(const MulticomponentThermo<BaseThermo>&) = delete;
(
const heMulticomponentThermo<HeThermo>&
) = delete;
//- Destructor //- Destructor
virtual ~heMulticomponentThermo(); virtual ~MulticomponentThermo();
// Member Functions // Member Functions
@ -240,7 +237,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
#ifdef NoRepository #ifdef NoRepository
#include "heMulticomponentThermo.C" #include "MulticomponentThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -39,6 +39,7 @@ SourceFiles
#define multicomponentThermo_H #define multicomponentThermo_H
#include "basicThermo.H" #include "basicThermo.H"
#include "MulticomponentThermo.H"
#include "speciesTable.H" #include "speciesTable.H"
#include "GeometricFieldListSlicer.H" #include "GeometricFieldListSlicer.H"

View File

@ -47,11 +47,6 @@ SourceFiles
namespace Foam namespace Foam
{ {
template<class, class> class heThermo;
template<class> class hePsiThermo;
template<class> class heMulticomponentThermo;
template<class> class heFluidMulticomponentThermo;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class psiMulticomponentThermo Declaration Class psiMulticomponentThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -73,14 +68,14 @@ public:
//- The derived type //- The derived type
template<class MixtureType> template<class MixtureType>
using heThermoType = using DerivedThermoType =
heFluidMulticomponentThermo FluidMulticomponentThermo
< <
heMulticomponentThermo MulticomponentThermo
< <
hePsiThermo PsiThermo
< <
heThermo<MixtureType, composite> BasicThermo<MixtureType, composite>
> >
> >
>; >;

View File

@ -23,17 +23,14 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "psiMulticomponentThermo.H"
#include "coefficientMulticomponentMixture.H" #include "coefficientMulticomponentMixture.H"
#include "coefficientWilkeMulticomponentMixture.H" #include "coefficientWilkeMulticomponentMixture.H"
#include "singleComponentMixture.H" #include "singleComponentMixture.H"
#include "psiThermo.H"
#include "psiMulticomponentThermo.H"
#include "hePsiThermo.H"
#include "heMulticomponentThermo.H"
#include "heFluidMulticomponentThermo.H"
#include "forGases.H" #include "forGases.H"
#include "makeFluidMulticomponentThermo.H" #include "makeFluidMulticomponentThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,14 +23,14 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heheuPsiThermo.H" #include "PsiuMulticomponentThermo.H"
#include "fvMesh.H" #include "fvMesh.H"
#include "fixedValueFvPatchFields.H" #include "fixedValueFvPatchFields.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::heheuPsiThermo<HeThermo>::calculate() void Foam::PsiuMulticomponentThermo<BaseThermo>::calculate()
{ {
const scalarField& hCells = this->he_; const scalarField& hCells = this->he_;
const scalarField& heuCells = this->heu_; const scalarField& heuCells = this->heu_;
@ -48,10 +48,10 @@ void Foam::heheuPsiThermo<HeThermo>::calculate()
{ {
auto composition = this->cellComposition(celli); auto composition = this->cellComposition(celli);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -127,10 +127,10 @@ void Foam::heheuPsiThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -149,10 +149,10 @@ void Foam::heheuPsiThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -175,14 +175,14 @@ void Foam::heheuPsiThermo<HeThermo>::calculate()
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heheuPsiThermo<HeThermo>::heheuPsiThermo Foam::PsiuMulticomponentThermo<BaseThermo>::PsiuMulticomponentThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
) )
: :
HeThermo(mesh, phaseName), BaseThermo(mesh, phaseName),
Tu_ Tu_
( (
IOobject IOobject
@ -199,7 +199,7 @@ Foam::heheuPsiThermo<HeThermo>::heheuPsiThermo
( (
IOobject IOobject
( (
HeThermo::mixtureType::thermoType::heName() + 'u', BaseThermo::mixtureType::thermoType::heName() + 'u',
mesh.time().name(), mesh.time().name(),
mesh, mesh,
IOobject::NO_READ, IOobject::NO_READ,
@ -207,10 +207,10 @@ Foam::heheuPsiThermo<HeThermo>::heheuPsiThermo
), ),
this->volScalarFieldProperty this->volScalarFieldProperty
( (
HeThermo::mixtureType::thermoType::heName() + 'u', BaseThermo::mixtureType::thermoType::heName() + 'u',
dimEnergy/dimMass, dimEnergy/dimMass,
&HeThermo::mixtureType::reactants, &BaseThermo::mixtureType::reactants,
&HeThermo::mixtureType::thermoMixtureType::HE, &BaseThermo::mixtureType::thermoMixtureType::HE,
this->p_, this->p_,
this->Tu_ this->Tu_
), ),
@ -227,17 +227,17 @@ Foam::heheuPsiThermo<HeThermo>::heheuPsiThermo
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heheuPsiThermo<HeThermo>::~heheuPsiThermo() Foam::PsiuMulticomponentThermo<BaseThermo>::~PsiuMulticomponentThermo()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::heheuPsiThermo<HeThermo>::correct() void Foam::PsiuMulticomponentThermo<BaseThermo>::correct()
{ {
if (HeThermo::debug) if (BaseThermo::debug)
{ {
InfoInFunction << endl; InfoInFunction << endl;
} }
@ -247,16 +247,16 @@ void Foam::heheuPsiThermo<HeThermo>::correct()
calculate(); calculate();
if (HeThermo::debug) if (BaseThermo::debug)
{ {
Info<< " Finished" << endl; Info<< " Finished" << endl;
} }
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::scalarField> Foam::tmp<Foam::scalarField>
Foam::heheuPsiThermo<HeThermo>::heu Foam::PsiuMulticomponentThermo<BaseThermo>::heu
( (
const scalarField& Tu, const scalarField& Tu,
const labelList& cells const labelList& cells
@ -264,8 +264,8 @@ Foam::heheuPsiThermo<HeThermo>::heu
{ {
return this->cellSetProperty return this->cellSetProperty
( (
&HeThermo::mixtureType::reactants, &BaseThermo::mixtureType::reactants,
&HeThermo::mixtureType::thermoMixtureType::HE, &BaseThermo::mixtureType::thermoMixtureType::HE,
cells, cells,
UIndirectList<scalar>(this->p_, cells), UIndirectList<scalar>(this->p_, cells),
Tu Tu
@ -273,9 +273,9 @@ Foam::heheuPsiThermo<HeThermo>::heu
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::scalarField> Foam::tmp<Foam::scalarField>
Foam::heheuPsiThermo<HeThermo>::heu Foam::PsiuMulticomponentThermo<BaseThermo>::heu
( (
const scalarField& Tu, const scalarField& Tu,
const label patchi const label patchi
@ -283,8 +283,8 @@ Foam::heheuPsiThermo<HeThermo>::heu
{ {
return this->patchFieldProperty return this->patchFieldProperty
( (
&HeThermo::mixtureType::reactants, &BaseThermo::mixtureType::reactants,
&HeThermo::mixtureType::thermoMixtureType::HE, &BaseThermo::mixtureType::thermoMixtureType::HE,
patchi, patchi,
this->p_.boundaryField()[patchi], this->p_.boundaryField()[patchi],
Tu Tu
@ -292,16 +292,16 @@ Foam::heheuPsiThermo<HeThermo>::heu
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heheuPsiThermo<HeThermo>::Tb() const Foam::PsiuMulticomponentThermo<BaseThermo>::Tb() const
{ {
return this->volScalarFieldProperty return this->volScalarFieldProperty
( (
"Tb", "Tb",
dimTemperature, dimTemperature,
&HeThermo::mixtureType::products, &BaseThermo::mixtureType::products,
&HeThermo::mixtureType::thermoMixtureType::THE, &BaseThermo::mixtureType::thermoMixtureType::THE,
this->he_, this->he_,
this->p_, this->p_,
this->T_ this->T_
@ -309,25 +309,25 @@ Foam::heheuPsiThermo<HeThermo>::Tb() const
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heheuPsiThermo<HeThermo>::psiu() const Foam::PsiuMulticomponentThermo<BaseThermo>::psiu() const
{ {
return this->volScalarFieldProperty return this->volScalarFieldProperty
( (
"psiu", "psiu",
this->psi_.dimensions(), this->psi_.dimensions(),
&HeThermo::mixtureType::reactants, &BaseThermo::mixtureType::reactants,
&HeThermo::mixtureType::thermoMixtureType::psi, &BaseThermo::mixtureType::thermoMixtureType::psi,
this->p_, this->p_,
this->Tu_ this->Tu_
); );
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heheuPsiThermo<HeThermo>::psib() const Foam::PsiuMulticomponentThermo<BaseThermo>::psib() const
{ {
const volScalarField Tb(this->Tb()); const volScalarField Tb(this->Tb());
@ -335,33 +335,33 @@ Foam::heheuPsiThermo<HeThermo>::psib() const
( (
"psib", "psib",
this->psi_.dimensions(), this->psi_.dimensions(),
&HeThermo::mixtureType::products, &BaseThermo::mixtureType::products,
&HeThermo::mixtureType::thermoMixtureType::psi, &BaseThermo::mixtureType::thermoMixtureType::psi,
this->p_, this->p_,
Tb Tb
); );
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heheuPsiThermo<HeThermo>::muu() const Foam::PsiuMulticomponentThermo<BaseThermo>::muu() const
{ {
return this->volScalarFieldProperty return this->volScalarFieldProperty
( (
"muu", "muu",
dimDynamicViscosity, dimDynamicViscosity,
&HeThermo::mixtureType::reactants, &BaseThermo::mixtureType::reactants,
&HeThermo::mixtureType::transportMixtureType::mu, &BaseThermo::mixtureType::transportMixtureType::mu,
this->p_, this->p_,
this->Tu_ this->Tu_
); );
} }
template<class HeThermo> template<class BaseThermo>
Foam::tmp<Foam::volScalarField> Foam::tmp<Foam::volScalarField>
Foam::heheuPsiThermo<HeThermo>::mub() const Foam::PsiuMulticomponentThermo<BaseThermo>::mub() const
{ {
const volScalarField Tb(this->Tb()); const volScalarField Tb(this->Tb());
@ -369,8 +369,8 @@ Foam::heheuPsiThermo<HeThermo>::mub() const
( (
"mub", "mub",
dimDynamicViscosity, dimDynamicViscosity,
&HeThermo::mixtureType::products, &BaseThermo::mixtureType::products,
&HeThermo::mixtureType::transportMixtureType::mu, &BaseThermo::mixtureType::transportMixtureType::mu,
this->p_, this->p_,
Tb Tb
); );

View File

@ -22,21 +22,21 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::heheuPsiThermo Foam::PsiuMulticomponentThermo
Description Description
Thermo implementation based on compressibility with additional unburnt Thermo implementation based on compressibility with additional unburnt
thermodynamic state thermodynamic state
SourceFiles SourceFiles
heheuPsiThermo.C PsiuMulticomponentThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef heheuPsiThermo_H #ifndef PsiuMulticomponentThermo_H
#define heheuPsiThermo_H #define PsiuMulticomponentThermo_H
#include "heThermo.H" #include "BasicThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -44,13 +44,13 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heheuPsiThermo Declaration Class PsiuMulticomponentThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class HeThermo> template<class BaseThermo>
class heheuPsiThermo class PsiuMulticomponentThermo
: :
public HeThermo public BaseThermo
{ {
// Private Data // Private Data
@ -72,14 +72,17 @@ public:
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
heheuPsiThermo(const fvMesh&, const word& phaseName); PsiuMulticomponentThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
heheuPsiThermo(const heheuPsiThermo<HeThermo>&) = delete; PsiuMulticomponentThermo
(
const PsiuMulticomponentThermo<BaseThermo>&
) = delete;
//- Destructor //- Destructor
virtual ~heheuPsiThermo(); virtual ~PsiuMulticomponentThermo();
// Member Functions // Member Functions
@ -149,7 +152,7 @@ public:
// Member Operators // Member Operators
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const heheuPsiThermo<HeThermo>&) = delete; void operator=(const PsiuMulticomponentThermo<BaseThermo>&) = delete;
}; };
@ -160,7 +163,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
#ifdef NoRepository #ifdef NoRepository
#include "heheuPsiThermo.C" #include "PsiuMulticomponentThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -37,7 +37,10 @@ namespace Foam
defineRunTimeSelectionTable(psiuMulticomponentThermo, fvMesh); defineRunTimeSelectionTable(psiuMulticomponentThermo, fvMesh);
} }
const Foam::word Foam::psiuMulticomponentThermo::heThermoName("heheuPsiThermo"); const Foam::word Foam::psiuMulticomponentThermo::derivedThermoName
(
"heheuPsiThermo"
);
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //

View File

@ -40,6 +40,7 @@ SourceFiles
#define psiuMulticomponentThermo_H #define psiuMulticomponentThermo_H
#include "psiThermo.H" #include "psiThermo.H"
#include "PsiuMulticomponentThermo.H"
#include "speciesTable.H" #include "speciesTable.H"
#include "GeometricFieldListSlicer.H" #include "GeometricFieldListSlicer.H"
@ -48,9 +49,6 @@ SourceFiles
namespace Foam namespace Foam
{ {
template<class, class> class heThermo;
template<class> class heheuPsiThermo;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class psiuMulticomponentThermo Declaration Class psiuMulticomponentThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -86,10 +84,11 @@ public:
//- The derived type //- The derived type
template<class MixtureType> template<class MixtureType>
using heThermoType = heheuPsiThermo<heThermo<MixtureType, composite>>; using DerivedThermoType =
PsiuMulticomponentThermo<BasicThermo<MixtureType, composite>>;
//- The derived name //- The derived name
static const word heThermoName; static const word derivedThermoName;
//- Runtime type information //- Runtime type information

View File

@ -23,8 +23,8 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "FieldListSlice.H"
#include "psiuMulticomponentThermo.H" #include "psiuMulticomponentThermo.H"
#include "FieldListSlice.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

View File

@ -23,16 +23,15 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "psiuMulticomponentThermo.H"
#include "egrMixture.H" #include "egrMixture.H"
#include "homogeneousMixture.H" #include "homogeneousMixture.H"
#include "inhomogeneousMixture.H" #include "inhomogeneousMixture.H"
#include "veryInhomogeneousMixture.H" #include "veryInhomogeneousMixture.H"
#include "psiThermo.H"
#include "psiuMulticomponentThermo.H"
#include "heheuPsiThermo.H"
#include "forAbsoluteGases.H" #include "forAbsoluteGases.H"
#include "makeThermo.H" #include "makeThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -47,11 +47,6 @@ SourceFiles
namespace Foam namespace Foam
{ {
template<class, class> class heThermo;
template<class> class heRhoThermo;
template<class> class heMulticomponentThermo;
template<class> class heFluidMulticomponentThermo;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class rhoMulticomponentThermo Declaration Class rhoMulticomponentThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -73,14 +68,14 @@ public:
//- The derived type //- The derived type
template<class MixtureType> template<class MixtureType>
using heThermoType = using DerivedThermoType =
heFluidMulticomponentThermo FluidMulticomponentThermo
< <
heMulticomponentThermo MulticomponentThermo
< <
heRhoThermo RhoThermo
< <
heThermo<MixtureType, composite> BasicThermo<MixtureType, composite>
> >
> >
>; >;

View File

@ -23,20 +23,17 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "rhoMulticomponentThermo.H"
#include "coefficientMulticomponentMixture.H" #include "coefficientMulticomponentMixture.H"
#include "coefficientWilkeMulticomponentMixture.H" #include "coefficientWilkeMulticomponentMixture.H"
#include "valueMulticomponentMixture.H" #include "valueMulticomponentMixture.H"
#include "singleComponentMixture.H" #include "singleComponentMixture.H"
#include "rhoThermo.H"
#include "rhoMulticomponentThermo.H"
#include "heRhoThermo.H"
#include "heMulticomponentThermo.H"
#include "heFluidMulticomponentThermo.H"
#include "forGases.H" #include "forGases.H"
#include "forLiquids.H" #include "forLiquids.H"
#include "forTabulated.H" #include "forTabulated.H"
#include "makeFluidMulticomponentThermo.H" #include "makeFluidMulticomponentThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -23,12 +23,12 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "heSolidThermo.H" #include "SolidThermo.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::heSolidThermo<HeThermo>::calculate() void Foam::SolidThermo<BaseThermo>::calculate()
{ {
const bool isotropic = this->isotropic(); const bool isotropic = this->isotropic();
@ -46,10 +46,10 @@ void Foam::heSolidThermo<HeThermo>::calculate()
{ {
auto composition = this->cellComposition(celli); auto composition = this->cellComposition(celli);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -117,10 +117,10 @@ void Foam::heSolidThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -148,10 +148,10 @@ void Foam::heSolidThermo<HeThermo>::calculate()
{ {
auto composition = this->patchFaceComposition(patchi, facei); auto composition = this->patchFaceComposition(patchi, facei);
const typename HeThermo::mixtureType::thermoMixtureType& const typename BaseThermo::mixtureType::thermoMixtureType&
thermoMixture = this->thermoMixture(composition); thermoMixture = this->thermoMixture(composition);
const typename HeThermo::mixtureType::transportMixtureType& const typename BaseThermo::mixtureType::transportMixtureType&
transportMixture = transportMixture =
this->transportMixture(composition, thermoMixture); this->transportMixture(composition, thermoMixture);
@ -179,19 +179,19 @@ void Foam::heSolidThermo<HeThermo>::calculate()
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heSolidThermo<HeThermo>::heSolidThermo Foam::SolidThermo<BaseThermo>::SolidThermo
( (
const fvMesh& mesh, const fvMesh& mesh,
const word& phaseName const word& phaseName
) )
: :
HeThermo(mesh, phaseName), BaseThermo(mesh, phaseName),
Kappa_ Kappa_
( (
IOobject IOobject
( (
HeThermo::phasePropertyName("Kappa", phaseName), BaseThermo::phasePropertyName("Kappa", phaseName),
mesh.time().name(), mesh.time().name(),
mesh, mesh,
IOobject::NO_READ, IOobject::NO_READ,
@ -207,33 +207,33 @@ Foam::heSolidThermo<HeThermo>::heSolidThermo
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
Foam::heSolidThermo<HeThermo>::~heSolidThermo() Foam::SolidThermo<BaseThermo>::~SolidThermo()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class HeThermo> template<class BaseThermo>
void Foam::heSolidThermo<HeThermo>::correct() void Foam::SolidThermo<BaseThermo>::correct()
{ {
if (HeThermo::debug) if (BaseThermo::debug)
{ {
InfoInFunction << endl; InfoInFunction << endl;
} }
calculate(); calculate();
if (HeThermo::debug) if (BaseThermo::debug)
{ {
Info<< " Finished" << endl; Info<< " Finished" << endl;
} }
} }
template<class HeThermo> template<class BaseThermo>
const Foam::volVectorField& const Foam::volVectorField&
Foam::heSolidThermo<HeThermo>::Kappa() const Foam::SolidThermo<BaseThermo>::Kappa() const
{ {
return Kappa_; return Kappa_;
} }

View File

@ -22,20 +22,20 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::heSolidThermo Foam::SolidThermo
Description Description
Thermo implementation for a solid Thermo implementation for a solid
SourceFiles SourceFiles
heSolidThermo.C SolidThermo.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef heSolidThermo_H #ifndef SolidThermo_H
#define heSolidThermo_H #define SolidThermo_H
#include "heThermo.H" #include "BasicThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -43,13 +43,13 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class heSolidThermo Declaration Class SolidThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
template<class HeThermo> template<class BaseThermo>
class heSolidThermo class SolidThermo
: :
public HeThermo public BaseThermo
{ {
protected: protected:
@ -70,14 +70,14 @@ public:
// Constructors // Constructors
//- Construct from mesh and phase name //- Construct from mesh and phase name
heSolidThermo(const fvMesh&, const word& phaseName); SolidThermo(const fvMesh&, const word& phaseName);
//- Disallow default bitwise copy construction //- Disallow default bitwise copy construction
heSolidThermo(const heSolidThermo<HeThermo>&) = delete; SolidThermo(const SolidThermo<BaseThermo>&) = delete;
//- Destructor //- Destructor
virtual ~heSolidThermo(); virtual ~SolidThermo();
// Member Functions // Member Functions
@ -88,7 +88,7 @@ public:
//- Return true if thermal conductivity is isotropic //- Return true if thermal conductivity is isotropic
virtual bool isotropic() const virtual bool isotropic() const
{ {
return HeThermo::mixtureType::thermoType::isotropic; return BaseThermo::mixtureType::thermoType::isotropic;
} }
//- Anisotropic thermal conductivity [W/m/K] //- Anisotropic thermal conductivity [W/m/K]
@ -98,7 +98,7 @@ public:
// Member Operators // Member Operators
//- Disallow default bitwise assignment //- Disallow default bitwise assignment
void operator=(const heSolidThermo<HeThermo>&) = delete; void operator=(const SolidThermo<BaseThermo>&) = delete;
}; };
@ -109,7 +109,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository #ifdef NoRepository
#include "heSolidThermo.C" #include "SolidThermo.C"
#endif #endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -34,7 +34,7 @@ namespace Foam
defineRunTimeSelectionTable(solidThermo, fvMesh); defineRunTimeSelectionTable(solidThermo, fvMesh);
} }
const Foam::word Foam::solidThermo::heThermoName("heSolidThermo"); const Foam::word Foam::solidThermo::derivedThermoName("heSolidThermo");
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -86,17 +86,6 @@ Foam::autoPtr<Foam::solidThermo> Foam::solidThermo::New
} }
// Foam::autoPtr<Foam::solidThermo> Foam::solidThermo::New
// (
// const fvMesh& mesh,
// const dictionary& dict,
// const word& phaseName
// )
// {
// return basicThermo::New<solidThermo>(mesh, dict, phaseName);
// }
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::solidThermo::~solidThermo() Foam::solidThermo::~solidThermo()

View File

@ -39,6 +39,7 @@ SourceFiles
#define solidThermo_H #define solidThermo_H
#include "pureThermo.H" #include "pureThermo.H"
#include "SolidThermo.H"
#include "uniformGeometricFields.H" #include "uniformGeometricFields.H"
#include "fvScalarMatrix.H" #include "fvScalarMatrix.H"
@ -47,9 +48,6 @@ SourceFiles
namespace Foam namespace Foam
{ {
template<class, class> class heThermo;
template<class> class heSolidThermo;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class solidThermo Declaration Class solidThermo Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -73,10 +71,11 @@ public:
//- The derived type //- The derived type
template<class MixtureType> template<class MixtureType>
using heThermoType = heSolidThermo<heThermo<MixtureType, composite>>; using DerivedThermoType =
SolidThermo<BasicThermo<MixtureType, composite>>;
//- The derived name //- The derived name
static const word heThermoName; static const word derivedThermoName;
//- Runtime type information //- Runtime type information

View File

@ -24,10 +24,11 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "solidThermo.H" #include "solidThermo.H"
#include "heSolidThermo.H"
#include "pureMixture.H" #include "pureMixture.H"
#include "forSolids.H" #include "forSolids.H"
#include "makeThermo.H" #include "makeThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -33,6 +33,7 @@ Description
#define makeThermo_H #define makeThermo_H
#include "basicThermo.H" #include "basicThermo.H"
#include "NamedThermo.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -40,14 +41,14 @@ Description
#define defineThermo(BaseThermo, Mixture, ThermoPhysics) \ #define defineThermo(BaseThermo, Mixture, ThermoPhysics) \
\ \
typedef \ typedef \
namedHeThermo<BaseThermo::heThermoType<Mixture<ThermoPhysics>>> \ NamedThermo<BaseThermo::DerivedThermoType<Mixture<ThermoPhysics>>> \
BaseThermo##HeThermo##Mixture##ThermoPhysics; \ BaseThermo##Mixture##ThermoPhysics; \
\ \
defineTemplateTypeNameAndDebugWithName \ defineTemplateTypeNameAndDebugWithName \
( \ ( \
BaseThermo##HeThermo##Mixture##ThermoPhysics, \ BaseThermo##Mixture##ThermoPhysics, \
( \ ( \
BaseThermo::heThermoName + "<" \ BaseThermo::derivedThermoName + "<" \
+ Mixture<ThermoPhysics>::typeName() + ">" \ + Mixture<ThermoPhysics>::typeName() + ">" \
).c_str(), \ ).c_str(), \
0 \ 0 \
@ -59,7 +60,7 @@ Description
addToRunTimeSelectionTable \ addToRunTimeSelectionTable \
( \ ( \
SelectThermo, \ SelectThermo, \
BaseThermo##HeThermo##Mixture##ThermoPhysics, \ BaseThermo##Mixture##ThermoPhysics, \
fvMesh \ fvMesh \
); );