Thermophysical models are concerned with energy, heat and physical properties. The thermophysicalProperties dictionary is read by any solver that uses the thermophysical model library. A thermophysical model is constructed in OpenFOAM as a pressure-temperature system from which other properties are computed. There is one compulsory dictionary entry called thermoType which specifies the package of thermophysical modelling that is used in the simulation. OpenFOAM includes a large set of pre-compiled combinations of modelling, built within the code using C++ templates. This coding approach assembles thermophysical modelling packages beginning with the equation of state and then adding more layers of thermophysical modelling that derive properties from the previous layer(s). The keyword entries in thermoType reflects the multiple layers of modelling and the underlying framework in which they combined. Below is an example entry for thermoType:
The keyword entries specify the choice of thermophysical models, e.g. constant transport (constant viscosity, thermal diffusion), Perfect Gas equationOfState, etc. In addition there is a keyword entry named energy that allows the user to specify the form of energy to be used in the solution and thermodynamics. The following sections explains the entries and options in the thermoType package.
The most general solvers that use thermophysical modelling construct a fluidThermo model that allows the user to specify the thermophysical model through the type entry (described below) at run-time. These solvers include rhoSimpleFoam, rhoPorousSimpleFoam and rhoPimpleFoam.
Each solver that uses thermophysical modelling constructs an object of a specific thermophysical model class. The model classes are listed below.
- Thermophysical model for fixed composition, based on compressibility , where is Gas Constant and is temperature. The solvers that construct psiThermo include rhoCentralFoam, uncoupledKinematicParcelFoam and coldEngineFoam.
- Thermophysical model for fixed composition, based on density . The solvers that construct rhoThermo include the buoyantSimpleFoam, buoyantPimpleFoam, rhoPorousSimpleFoam, twoPhaseEulerFoam and thermoFoam.
- Thermophysical model for reacting mixture, based on . The solvers that construct psiReactionThermo include many of the combustion solvers, e.g.sprayFoam, engineFoam, fireFoam and reactingFoam, and some lagrangian solvers, e.g. coalChemistryFoam.
- Thermophysical model for combustion, based on compressibility of unburnt gas . The solvers that construct psiuReactionThermo include combustion solvers that model combustion based on laminar flame speed and regress variable, e.g.XiFoam, XiEngineFoam, PDRFoam.
- Thermophysical model for reacting mixture, based on . The solvers that construct rhoReactionThermo include chtMultiRegionFoam, some combustion solvers, e.g.chemFoam, rhoReactingFoam, rhoReactingBuoyantFoam, and some lagrangian solvers, e.g. reactingParcelFoam and simpleReactingParcelFoam.
- Thermophysical models for multiple phases. The solvers that construct multiphaseMixtureThermo include compressible multiphase interface-capturing solvers, e.g.compressibleInterFoam, and compressibleMultiphaseInterFoam.
- hePsiThermo: for solvers that construct psiThermo and psiReactionThermo.
- heRhoThermo: for solvers that construct rhoThermo, rhoReactionThermo and multiphaseMixtureThermo.
- heheuPsiThermo: for solvers that construct psiuReactionThermo.
The mixture specifies the mixture composition. The option typically used for thermophysical models without reactions is pureMixture, which represents a mixture with fixed composition. When pureMixture is specified, the thermophysical models coefficients are specified within a sub-dictionary called mixture.
For mixtures with variable composition, required by thermophysical models with reactions, the reactingMixture option is used. Species and reactions are listed in a chemistry file, specified by the foamChemistryFile keyword. The reactingMixture model then requires the thermophysical models coefficients to be specified for each specie within sub-dictionaries named after each specie, e.g. O2, N2.
For combustion based on laminar flame speed and regress variables, constituents are a set of mixtures, such as fuel, oxidant and burntProducts. The available mixture models for this combustion modelling are homogeneousMixture, inhomogeneousMixture and veryInhomogeneousMixture.
- assumes a constant and Prandtl number which is simply specified by a two keywords, mu and Pr, respectively.
- calculates as a function of temperature from a Sutherland
coefficient and Sutherland temperature , specified by keywords As
and Ts; is calculated according to:
- calculates and as a function of temperature from a
polynomial of any order , e.g.:
- calculates and as a function of from a
polynomial of any order ; from which , are calculated by taking
the exponential, e.g.:
- assumes a constant and a heat of fusion which is simply specified by a two values , given by keywords Cp and Hf.
- assumes a constant and a heat of fusion which is simply specified by a two values , given by keywords Cv and Hf.
- calculates as a function of temperature from a set of coefficients
taken from JANAF tables of thermodynamics. The ordered list of coefficients
is given in Table 7.1. The function is valid between a lower and
upper limit in temperature and respectively. Two sets of
coefficients are specified, the first set for temperatures above a common
temperature (and below ), the second for temperatures below
(and above ). The function relating to temperature is:
In addition, there are constants of integration, and , both at high and low temperature, used to evaluating and respectively.
- calculates as a function of temperature by a polynomial of any
The following case provides an example of its use: $FOAM_TUTORIALS/lagrangian/porousExplicitSourceReactingParcelFoam/filter
- nMoles: number of moles of component. This entry is only used for combustion modelling based on regress variable with a homogeneous mixture of reactants; otherwise it is set to 1.
- molWeight in grams per mole of specie.
- Constant density:
- Perfect gas:
- Perfect gas for an incompressible fluid:
where is a reference pressure.
- Perfect fluid:
where is the density at .
- Linear equation of state:
where is compressibility (not necessarily ).
- Adiabatic perfect fluid:
where are reference density and pressure respectively, and is a model constant.
- Boussinesq approximation
where is the coeffient of volumetric expansion and is the reference density at reference temperature .
- Peng Robinson equation of state:
where the complex function can be referenced in the source code in PengRobinsonGasI.H, in the $FOAM_SRC/thermophysicalModels/specie/equationOfState/ directory.
- Incompressible, polynomial equation of state:
where are polynomial coefficients of any order .
The user must specify the form of energy to be used in the solution, either internal energy and enthalpy , and in forms that include the heat of formation or not. This choice is specified through the energy keyword.
We refer to absolute energy where heat of formation is included, and sensible energy where it is not. For example absolute enthalpy is related to sensible enthalpy by
The basic thermophysical properties are specified for each species from input data. Data entries must contain the name of the specie as the keyword, e.g. O2, H2O, mixture, followed by sub-dictionaries of coefficients, including:
- containing i.e. number of moles, nMoles, of the specie, and molecular weight, molWeight in units of g/mol;
- containing coefficients for the chosen thermodynamic model (see below);
- containing coefficients for the chosen tranpsort model (see below).
The following is an example entry for a specie named fuel modelled using sutherland transport and janaf thermodynamics:
highCpCoeffs (1.63543 0.0100844 -3.36924e-06 5.34973e-10
-3.15528e-14 -10005.6 9.9937);
lowCpCoeffs (5.14988 -0.013671 4.91801e-05 -4.84744e-08
1.66694e-11 -10246.6 -4.64132);