71 static const wordList componentHeader4;
74 static const wordList componentHeader7;
80 static word makeThermoName
90 const word& fieldName,
96 template<
class Thermo,
class ThermoConstructTable>
97 static typename ThermoConstructTable::mapped_type
101 ThermoConstructTable& thermoTable,
102 const word& thermoTypeName,
108 template<
class Thermo,
class ThermoConstructTable>
109 static typename ThermoConstructTable::mapped_type
113 ThermoConstructTable& thermoTable
194 const word& phaseName
202 const word& phaseName
210 const word& phaseName,
211 const word& dictionaryName
218 template<
class Thermo>
226 template<
class Thermo>
235 template<
class Thermo>
239 const word& phaseName,
262 const word& phaseName
328 const int nExpectedCmpts
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
const word & name() const
Abstract base-class for fluid and solid thermodynamic properties.
virtual word thermoName() const =0
Return the name of the thermo physics.
static Ostream & printThermoNames(Ostream &os, const wordList &cmptNames, const wordList &thermoNames)
Print (filtered) table of thermo names, splits on " ,<>".
static const basicThermo & lookupThermo(const fvPatchScalarField &pf)
virtual const volScalarField & he() const =0
Enthalpy/Internal energy [J/kg].
bool dpdt_
Include dpdt term in the enthalpy equation?
virtual tmp< scalarField > THE(const scalarField &h, const scalarField &p, const scalarField &T0, const labelList &cells) const =0
Temperature from enthalpy/internal energy for cell-set.
virtual tmp< volScalarField > W() const =0
Molecular weight [kg/kmol].
virtual tmp< scalarField > rhoEoS(const scalarField &p, const scalarField &T, const labelList &cells) const =0
Density from pressure and temperature from EoS.
virtual tmp< scalarField > CpByCpv(const scalarField &p, const scalarField &T, const label patchi) const =0
Heat capacity ratio for patch [].
virtual tmp< volScalarField > kappa() const =0
Thermal diffusivity for temperature of mixture [J/m/s/K].
virtual const volScalarField & T() const
Temperature [K].
virtual tmp< scalarField > Cv(const scalarField &p, const scalarField &T, const label patchi) const =0
Heat capacity at constant volume for patch [J/kg/K].
virtual tmp< volScalarField > alphaEff(const volScalarField &alphat) const =0
Effective thermal diffusivity of mixture [kg/m/s].
virtual tmp< scalarField > alphaEff(const scalarField &alphat, const label patchi) const =0
Effective thermal diffusivity of mixture for patch [kg/m/s].
virtual tmp< volScalarField > alphahe() const =0
Thermal diffusivity for energy of mixture [kg/m/s].
wordList heBoundaryTypes()
virtual volScalarField & p()
Pressure [Pa].
virtual tmp< volScalarField > Cpv() const =0
Heat capacity at constant pressure/volume [J/kg/K].
word phasePropertyName(const word &name) const
virtual tmp< volScalarField > rho() const =0
Density [kg/m^3].
virtual tmp< scalarField > he(const scalarField &p, const scalarField &T, const label patchi) const =0
Enthalpy/Internal energy for patch [J/kg].
static word phasePropertyName(const word &name, const word &phaseName)
wordList heBoundaryBaseTypes()
static const word dictName
bool updateT() const noexcept
True if T should be updated.
virtual tmp< scalarField > THE(const scalarField &h, const scalarField &p, const scalarField &T0, const label patchi) const =0
Temperature from enthalpy/internal energy for patch.
bool dpdt() const noexcept
True if dpdt term should be included in enthalpy equation.
virtual void correct()=0
Update properties.
bool pOwner_
Pressure created and stored by this instance.
bool TOwner_
Temperature created and stored by this instance.
virtual bool incompressible() const =0
Return true if the equation of state is incompressible.
volScalarField & p_
Pressure [Pa].
virtual tmp< scalarField > rho(const label patchi) const =0
Density for patch [kg/m^3].
virtual tmp< scalarField > Cp(const scalarField &p, const scalarField &T, const labelList &cells) const =0
Heat capacity using pressure and temperature [J/kg/K].
basicThermo(const basicThermo &)=delete
No copy construct.
static autoPtr< Thermo > New(const fvMesh &, const word &phaseName, const word &dictName)
Generic New for each of the related thermodynamics packages.
virtual volScalarField & he()=0
Enthalpy/Internal energy [J/kg].
virtual tmp< volScalarField > CpByCpv() const =0
Heat capacity ratio [].
const word & phaseName_
Phase-name.
virtual tmp< volScalarField > Cv() const =0
Heat capacity at constant volume [J/kg/K].
virtual tmp< volScalarField > gamma() const =0
Gamma = Cp/Cv [].
virtual tmp< scalarField > alphahe(const label patchi) const =0
Thermal diffusivity for energy of mixture for patch [kg/m/s].
volScalarField & T_
Temperature [K].
static autoPtr< Thermo > New(const fvMesh &, const word &phaseName=word::null)
Generic New for each of the related thermodynamics packages.
virtual bool isochoric() const =0
Return true if the equation of state is isochoric.
virtual tmp< scalarField > he(const scalarField &p, const scalarField &T, const labelList &cells) const =0
Enthalpy/Internal energy for cell-set [J/kg].
void validate(const string &app, const word &) const
Check that the thermodynamics package is consistent.
TypeName("basicThermo")
Runtime type information.
virtual tmp< scalarField > Cp(const scalarField &p, const scalarField &T, const label patchi) const =0
Heat capacity at constant pressure for patch [J/kg/K].
static autoPtr< Thermo > New(const fvMesh &, const dictionary &, const word &phaseName=word::null)
Generic New for each of the related thermodynamics packages.
declareRunTimeSelectionTable(autoPtr, basicThermo, fvMeshDictPhase,(const fvMesh &mesh, const word &phaseName, const word &dictName),(mesh, phaseName, dictName))
Declare run-time constructor selection table for dictionary based.
virtual ~basicThermo()
Destructor.
static wordList splitThermoName(const std::string &thermoName, const int nExpectedCmpts)
Split thermo package name into a list of components names.
virtual tmp< volScalarField > hc() const =0
Chemical enthalpy [J/kg].
virtual tmp< volScalarField > Cp() const =0
Heat capacity at constant pressure [J/kg/K].
virtual const volScalarField & alpha() const
Thermal diffusivity for enthalpy of mixture [kg/m/s].
virtual tmp< scalarField > gamma(const scalarField &p, const scalarField &T, const label patchi) const =0
Gamma = Cp/Cv for patch [].
virtual tmp< scalarField > Cpv(const scalarField &p, const scalarField &T, const label patchi) const =0
Heat capacity at constant pressure/volume for patch [J/kg/K].
declareRunTimeSelectionTable(autoPtr, basicThermo, fvMesh,(const fvMesh &mesh, const word &phaseName),(mesh, phaseName))
Declare run-time constructor selection table.
virtual bool read()
Read thermophysical properties dictionary.
volScalarField alpha_
Laminar thermal diffusivity [kg/m/s].
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
const dictionary & thermoDict
OBJstream os(runTime.globalPath()/outputName)
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.