further updates

This commit is contained in:
andy
2009-06-11 11:29:40 +01:00
parent bed5801c99
commit 17a78e7392
18 changed files with 290 additions and 135 deletions

View File

@ -2,13 +2,14 @@ mixtures/basicMixture/basicMixture.C
mixtures/basicMixture/basicMixtures.C
basicThermo/basicThermo.C
basicThermo/newBasicThermo.C
psiThermo/basicPsiThermo/basicPsiThermo.C
psiThermo/basicPsiThermo/newBasicPsiThermo.C
psiThermo/hPsiThermo/hPsiThermos.C
psiThermo/ePsiThermo/ePsiThermos.C
rhoThermo/basicRhoThermo/basicRhoThermo.C
rhoThermo/basicRhoThermo/newBasicRhoThermo.C
rhoThermo/hRhoThermo/hRhoThermos.C
derivedFvPatchFields/fixedEnthalpy/fixedEnthalpyFvPatchScalarField.C

View File

@ -40,7 +40,6 @@ License
namespace Foam
{
defineTypeNameAndDebug(basicThermo, 0);
defineRunTimeSelectionTable(basicThermo, fvMesh);
}
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //

View File

@ -41,7 +41,6 @@ SourceFiles
#include "typeInfo.H"
#include "IOdictionary.H"
#include "autoPtr.H"
#include "runTimeSelectionTables.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -111,27 +110,12 @@ public:
TypeName("basicThermo");
//- Declare run-time constructor selection table
declareRunTimeSelectionTable
(
autoPtr,
basicThermo,
fvMesh,
(const fvMesh& mesh),
(mesh)
);
// Constructors
//- Construct from mesh
basicThermo(const fvMesh&);
//- Selector
static autoPtr<basicThermo> New(const fvMesh&);
//- Destructor
virtual ~basicThermo();

View File

@ -31,6 +31,7 @@ License
namespace Foam
{
defineTypeNameAndDebug(basicPsiThermo, 0);
defineRunTimeSelectionTable(basicPsiThermo, fvMesh);
}

View File

@ -26,10 +26,11 @@ Class
Foam::basicPsiThermo
Description
Basic thermodynamic properties based in compressibility
Basic thermodynamic properties based on compressibility
SourceFiles
basicRhoThermo.C
basicPsiThermo.C
newBasicPsiThermo.C
\*---------------------------------------------------------------------------*/
@ -37,6 +38,7 @@ SourceFiles
#define basicPsiThermo_H
#include "basicThermo.H"
#include "runTimeSelectionTables.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -66,12 +68,25 @@ public:
TypeName("basicPsiThermo");
//- Declare run-time constructor selection table
declareRunTimeSelectionTable
(
autoPtr,
basicPsiThermo,
fvMesh,
(const fvMesh& mesh),
(mesh)
);
// Constructors
//- Construct from mesh
basicPsiThermo(const fvMesh&);
//- Selector
static autoPtr<basicPsiThermo> New(const fvMesh&);
//- Destructor
virtual ~basicPsiThermo();
@ -80,7 +95,7 @@ public:
// Fields derived from thermodynamic state variables
//- Density [kg/m^3]
//- Density [kg/m^3] - uses current value of pressure
virtual tmp<volScalarField> rho() const
{
return p_*psi();

View File

@ -0,0 +1,66 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ 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 2 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, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
InClass
Foam::basicPsiThermo
Description
Macros for creating 'basic' compresibility-based thermo packages
\*---------------------------------------------------------------------------*/
#ifndef makeBasicPsiThermo_H
#define makeBasicPsiThermo_H
#include "basicPsiThermo.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeBasicPsiThermo(Cthermo,Mixture,Transport,Thermo,EqnOfState) \
\
typedef Cthermo<Mixture<Transport<specieThermo<Thermo<EqnOfState> > > > > \
Cthermo##Mixture##Transport##Thermo##EqnOfState; \
\
defineTemplateTypeNameAndDebugWithName \
( \
Cthermo##Mixture##Transport##Thermo##EqnOfState, \
#Cthermo \
"<"#Mixture"<"#Transport"<specieThermo<"#Thermo"<"#EqnOfState">>>>>", \
0 \
); \
\
addToRunTimeSelectionTable \
( \
basicPsiThermo, \
Cthermo##Mixture##Transport##Thermo##EqnOfState, \
fvMesh \
)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -22,67 +22,54 @@ License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
Selection function for enthalpy based thermodynamics package.
\*---------------------------------------------------------------------------*/
#include "error.H"
#include "basicThermo.H"
#include "makeBasicThermo.H"
#include "perfectGas.H"
#include "hConstThermo.H"
#include "janafThermo.H"
#include "specieThermo.H"
#include "constTransport.H"
#include "sutherlandTransport.H"
#include "hThermo.H"
#include "pureMixture.H"
#include "addToRunTimeSelectionTable.H"
#include "basicPsiThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
Foam::autoPtr<Foam::basicPsiThermo> Foam::basicPsiThermo::New
(
const fvMesh& mesh
)
{
word thermoTypeName;
/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
// Enclose the creation of the thermophysicalProperties to ensure it is
// deleted before the turbulenceModel is created otherwise the dictionary
// is entered in the database twice
{
IOdictionary thermoDict
(
IOobject
(
"thermophysicalProperties",
mesh.time().constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
makeBasicThermo
(
hThermo,
pureMixture,
constTransport,
hConstThermo,
perfectGas
);
thermoDict.lookup("thermoType") >> thermoTypeName;
}
makeBasicThermo
(
hThermo,
pureMixture,
sutherlandTransport,
hConstThermo,
perfectGas
);
Info<< "Selecting thermodynamics package " << thermoTypeName << endl;
makeBasicThermo
(
hThermo,
pureMixture,
sutherlandTransport,
janafThermo,
perfectGas
);
fvMeshConstructorTable::iterator cstrIter =
fvMeshConstructorTablePtr_->find(thermoTypeName);
if (cstrIter == fvMeshConstructorTablePtr_->end())
{
FatalErrorIn("basicPsiThermo::New(const fvMesh&)")
<< "Unknown basicPsiThermo type " << thermoTypeName << nl << nl
<< "Valid basicPsiThermo types are:" << nl
<< fvMeshConstructorTablePtr_->toc() << nl
<< exit(FatalError);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
return autoPtr<basicPsiThermo>(cstrIter()(mesh));
}
} // End namespace Foam
// ************************************************************************* //

View File

@ -22,12 +22,9 @@ License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
Selection function for internal energy based thermodynamics package.
\*---------------------------------------------------------------------------*/
#include "makeBasicThermo.H"
#include "makeBasicPsiThermo.H"
#include "perfectGas.H"
@ -48,8 +45,7 @@ namespace Foam
/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
makeBasicThermo
makeBasicPsiThermo
(
ePsiThermo,
pureMixture,
@ -58,7 +54,7 @@ makeBasicThermo
perfectGas
);
makeBasicThermo
makeBasicPsiThermo
(
ePsiThermo,
pureMixture,
@ -67,7 +63,7 @@ makeBasicThermo
perfectGas
);
makeBasicThermo
makeBasicPsiThermo
(
ePsiThermo,
pureMixture,
@ -76,6 +72,7 @@ makeBasicThermo
perfectGas
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View File

@ -22,12 +22,9 @@ License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
Selection function for enthalpy based thermodynamics package.
\*---------------------------------------------------------------------------*/
#include "makeBasicThermo.H"
#include "makeBasicPsiThermo.H"
#include "perfectGas.H"
@ -48,8 +45,7 @@ namespace Foam
/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
makeBasicThermo
makeBasicPsiThermo
(
hPsiThermo,
pureMixture,
@ -58,7 +54,7 @@ makeBasicThermo
perfectGas
);
makeBasicThermo
makeBasicPsiThermo
(
hPsiThermo,
pureMixture,
@ -67,7 +63,7 @@ makeBasicThermo
perfectGas
);
makeBasicThermo
makeBasicPsiThermo
(
hPsiThermo,
pureMixture,
@ -76,6 +72,7 @@ makeBasicThermo
perfectGas
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View File

@ -31,6 +31,7 @@ License
namespace Foam
{
defineTypeNameAndDebug(basicRhoThermo, 0);
defineRunTimeSelectionTable(basicRhoThermo, fvMesh);
}

View File

@ -26,10 +26,11 @@ Class
Foam::basicRhoThermo
Description
Basic thermodynamic properties based in density
Basic thermodynamic properties based on density
SourceFiles
basicRhoThermo.C
newBasicRhoThermo.C
\*---------------------------------------------------------------------------*/
@ -37,6 +38,7 @@ SourceFiles
#define basicRhoThermo_H
#include "basicThermo.H"
#include "runTimeSelectionTables.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -73,12 +75,27 @@ public:
TypeName("basicRhoThermo");
//- Declare run-time constructor selection table
declareRunTimeSelectionTable
(
autoPtr,
basicRhoThermo,
fvMesh,
(const fvMesh& mesh),
(mesh)
);
// Constructors
//- Construct from mesh
basicRhoThermo(const fvMesh&);
//- Selector
static autoPtr<basicRhoThermo> New(const fvMesh&);
//- Destructor
virtual ~basicRhoThermo();

View File

@ -23,22 +23,22 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
InClass
Foam::basicThermo
Foam::basicRhoThermo
Description
Macros for creating 'basic' thermo packages
Macros for creating 'basic' density-based thermo packages
\*---------------------------------------------------------------------------*/
#ifndef makeBasicThermo_H
#define makeBasicThermo_H
#ifndef makeBasicRhoThermo_H
#define makeBasicRhoThermo_H
#include "basicThermo.H"
#include "basicRhoThermo.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeBasicThermo(Cthermo,Mixture,Transport,Thermo,EqnOfState) \
#define makeBasicRhoThermo(Cthermo,Mixture,Transport,Thermo,EqnOfState) \
\
typedef Cthermo<Mixture<Transport<specieThermo<Thermo<EqnOfState> > > > > \
Cthermo##Mixture##Transport##Thermo##EqnOfState; \
@ -53,11 +53,12 @@ defineTemplateTypeNameAndDebugWithName \
\
addToRunTimeSelectionTable \
( \
basicThermo, \
basicRhoThermo, \
Cthermo##Mixture##Transport##Thermo##EqnOfState, \
fvMesh \
)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif

View File

@ -23,18 +23,20 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
Selection function for 'basic' thermodynamics package.
Selection function for 'basic' density-based thermodynamics
\*---------------------------------------------------------------------------*/
#include "basicThermo.H"
#include "fvMesh.H"
#include "basicRhoThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::basicThermo> Foam::basicThermo::New(const fvMesh& mesh)
Foam::autoPtr<Foam::basicRhoThermo> Foam::basicRhoThermo::New
(
const fvMesh& mesh
)
{
word basicThermoTypeName;
word thermoTypeName;
// Enclose the creation of the thermophysicalProperties to ensure it is
// deleted before the turbulenceModel is created otherwise the dictionary
@ -52,24 +54,24 @@ Foam::autoPtr<Foam::basicThermo> Foam::basicThermo::New(const fvMesh& mesh)
)
);
thermoDict.lookup("thermoType") >> basicThermoTypeName;
thermoDict.lookup("thermoType") >> thermoTypeName;
}
Info<< "Selecting thermodynamics package " << basicThermoTypeName << endl;
Info<< "Selecting thermodynamics package " << thermoTypeName << endl;
fvMeshConstructorTable::iterator cstrIter =
fvMeshConstructorTablePtr_->find(basicThermoTypeName);
fvMeshConstructorTablePtr_->find(thermoTypeName);
if (cstrIter == fvMeshConstructorTablePtr_->end())
{
FatalErrorIn("basicThermo::New(const fvMesh&)")
<< "Unknown basicThermo type " << basicThermoTypeName << nl << nl
<< "Valid basicThermo types are:" << nl
FatalErrorIn("basicRhoThermo::New(const fvMesh&)")
<< "Unknown basicRhoThermo type " << thermoTypeName << nl << nl
<< "Valid basicRhoThermo types are:" << nl
<< fvMeshConstructorTablePtr_->toc() << nl
<< exit(FatalError);
}
return autoPtr<basicThermo>(cstrIter()(mesh));
return autoPtr<basicRhoThermo>(cstrIter()(mesh));
}

View File

@ -22,12 +22,9 @@ License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
Selection function for enthalpy thermodynamics package.
\*---------------------------------------------------------------------------*/
#include "makeBasicThermo.H"
#include "makeBasicRhoThermo.H"
#include "perfectGas.H"
@ -48,8 +45,7 @@ namespace Foam
/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
makeBasicThermo
makeBasicRhoThermo
(
hRhoThermo,
pureMixture,
@ -58,7 +54,7 @@ makeBasicThermo
perfectGas
);
makeBasicThermo
makeBasicRhoThermo
(
hRhoThermo,
pureMixture,
@ -67,7 +63,7 @@ makeBasicThermo
perfectGas
);
makeBasicThermo
makeBasicRhoThermo
(
hRhoThermo,
pureMixture,
@ -76,6 +72,7 @@ makeBasicThermo
perfectGas
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View File

@ -24,12 +24,11 @@ License
\*---------------------------------------------------------------------------*/
#include "makeCombustionThermo.H"
#include "hCombustionThermo.H"
#include "hPsiMixtureThermo.H"
#include "makeCombustionThermo.H"
#include "addToRunTimeSelectionTable.H"
#include "perfectGas.H"
#include "hConstThermo.H"

View File

@ -32,6 +32,9 @@ Description
#ifndef makeCombustionThermo_H
#define makeCombustionThermo_H
#include "addToRunTimeSelectionTable.H"
#include "basicPsiThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeCombustionThermo(CThermo,MixtureThermo,Mixture,Transport,Thermo,EqnOfState) \
@ -50,7 +53,7 @@ defineTemplateTypeNameAndDebugWithName \
\
addToRunTimeSelectionTable \
( \
basicThermo, \
basicPsiThermo, \
MixtureThermo##Mixture##Transport##Thermo##EqnOfState, \
fvMesh \
); \
@ -63,28 +66,29 @@ addToRunTimeSelectionTable \
)
#define makeCombustionMixtureThermo(CThermo,MixtureThermo,Mixture,Transport) \
#define makeCombustionMixtureThermo(CThermo,MixtureThermo,Mixture,ThermoPhys) \
\
typedef MixtureThermo<Mixture<Transport> > MixtureThermo##Mixture##Transport; \
typedef MixtureThermo<Mixture<ThermoPhys> > \
MixtureThermo##Mixture##ThermoPhys; \
\
defineTemplateTypeNameAndDebugWithName \
( \
MixtureThermo##Mixture##Transport, \
#MixtureThermo"<"#Mixture"<"#Transport">>", \
MixtureThermo##Mixture##ThermoPhys, \
#MixtureThermo"<"#Mixture"<"#ThermoPhys">>", \
0 \
); \
\
addToRunTimeSelectionTable \
( \
basicThermo, \
MixtureThermo##Mixture##Transport, \
basicPsiThermo, \
MixtureThermo##Mixture##ThermoPhys, \
fvMesh \
); \
\
addToRunTimeSelectionTable \
( \
CThermo, \
MixtureThermo##Mixture##Transport, \
MixtureThermo##Mixture##ThermoPhys, \
fvMesh \
);

View File

@ -24,12 +24,24 @@ License
\*---------------------------------------------------------------------------*/
#include "makeReactionThermo.H"
#include "hReactionThermo.H"
#include "hRhoMixtureThermo.H"
#include "makeReactionThermo.H"
#include "addToRunTimeSelectionTable.H"
#include "perfectGas.H"
#include "hConstThermo.H"
#include "janafThermo.H"
#include "specieThermo.H"
#include "constTransport.H"
#include "sutherlandTransport.H"
#include "homogeneousMixture.H"
#include "inhomogeneousMixture.H"
#include "veryInhomogeneousMixture.H"
#include "dieselMixture.H"
#include "multiComponentMixture.H"
#include "reactingMixture.H"
@ -42,6 +54,77 @@ namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makeReactionThermo
(
hReactionThermo,
hRhoMixtureThermo,
homogeneousMixture,
constTransport,
hConstThermo,
perfectGas
);
makeReactionThermo
(
hReactionThermo,
hRhoMixtureThermo,
inhomogeneousMixture,
constTransport,
hConstThermo,
perfectGas
);
makeReactionThermo
(
hReactionThermo,
hRhoMixtureThermo,
veryInhomogeneousMixture,
constTransport,
hConstThermo,
perfectGas
);
makeReactionThermo
(
hReactionThermo,
hRhoMixtureThermo,
homogeneousMixture,
sutherlandTransport,
janafThermo,
perfectGas
);
makeReactionThermo
(
hReactionThermo,
hRhoMixtureThermo,
inhomogeneousMixture,
sutherlandTransport,
janafThermo,
perfectGas
);
makeReactionThermo
(
hReactionThermo,
hRhoMixtureThermo,
veryInhomogeneousMixture,
sutherlandTransport,
janafThermo,
perfectGas
);
makeReactionThermo
(
hReactionThermo,
hRhoMixtureThermo,
dieselMixture,
sutherlandTransport,
janafThermo,
perfectGas
);
// Multi-component thermo
makeReactionMixtureThermo

View File

@ -32,6 +32,9 @@ Description
#ifndef makeReactionThermo_H
#define makeReactionThermo_H
#include "addToRunTimeSelectionTable.H"
#include "basicRhoThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeReactionThermo(CThermo,MixtureThermo,Mixture,Transport,Thermo,EqnOfState) \
@ -50,7 +53,7 @@ defineTemplateTypeNameAndDebugWithName \
\
addToRunTimeSelectionTable \
( \
basicThermo, \
basicRhoThermo, \
MixtureThermo##Mixture##Transport##Thermo##EqnOfState, \
fvMesh \
); \
@ -63,28 +66,29 @@ addToRunTimeSelectionTable \
)
#define makeReactionMixtureThermo(CThermo,MixtureThermo,Mixture,Transport) \
#define makeReactionMixtureThermo(CThermo,MixtureThermo,Mixture,ThermoPhys) \
\
typedef MixtureThermo<Mixture<Transport> > MixtureThermo##Mixture##Transport; \
typedef MixtureThermo<Mixture<ThermoPhys> > \
MixtureThermo##Mixture##ThermoPhys; \
\
defineTemplateTypeNameAndDebugWithName \
( \
MixtureThermo##Mixture##Transport, \
#MixtureThermo"<"#Mixture"<"#Transport">>", \
MixtureThermo##Mixture##ThermoPhys, \
#MixtureThermo"<"#Mixture"<"#ThermoPhys">>", \
0 \
); \
\
addToRunTimeSelectionTable \
( \
basicThermo, \
MixtureThermo##Mixture##Transport, \
basicRhoThermo, \
MixtureThermo##Mixture##ThermoPhys, \
fvMesh \
); \
\
addToRunTimeSelectionTable \
( \
CThermo, \
MixtureThermo##Mixture##Transport, \
MixtureThermo##Mixture##ThermoPhys, \
fvMesh \
);