8.1 Thermophysical models

Thermophysical models are concerned with: thermodynamics, e.g. relating internal energy eqn to temperature eqn; transport, e.g. the dependence of properties such as eqn on temperature; and state, e.g. dependence of density eqn on eqn and pressure eqn. Thermophysical models are specified in the physicalProperties dictionary.

A thermophysical model required an entry named 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. It can also compile on-demand a combination which is not pre-compiled during a simulation.

Thermophysical modelling packages begin 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:


thermoType
{
    type            hePsiThermo;
    mixture         pureMixture;
    transport       const;
    thermo          hConst;
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleEnthalpy;
}

The keyword entries specify the choice of thermophysical models, e.g. transport constant (constant viscosity, thermal diffusion), equationOfState perfectGas , 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.

8.1.1 Thermophysical and mixture models

Each solver that uses thermophysical modelling constructs an object of a specific thermophysical model class. The model classes are listed below.

fluidThermo
Thermophysical model for a general fluid with fixed composition used by the isoThermalFluid and fluid solver modules.
rhoThermo
Thermophysical model for liquids and solids, used by the isothermalFilm and film solver module.
psiThermo
Thermophysical model for gases only, with fixed composition, used by the shockFluid solver module.
fluidMulticomponentThermo
Thermophysical model for fluid of varying composition used by the multicomponentFluid solver module.
psiuMulticomponentThermo
Thermophysical model for combustion that modelled by a laminar flame speed and regress variable used by the XiFluid solver module.
compressibleMultiphaseVoFMixtureThermo
Thermophysical models for multiple phases used by the compressibleMultiphaseVoF solver module.
solidThermo and solidDisplacementThermo
Thermophysical models for solids used by by the solid and solidDisplacement solver modules, respectively.

The type keyword (in the thermoType sub-dictionary) specifies the underlying thermophysical model used by the solver. The user can select from the following.

  • hePsiThermo: available for solvers that construct fluidThermo, psiThermo, fluidMulticomponentThermo and .
  • heRhoThermo: available for solvers that construct fluidThermo, rhoThermo, fluidMulticomponentThermo, compressibleMultiphaseVoFMixtureThermo.
  • heheuPsiThermo: for solvers that construct psiuMulticomponentThermo.
  • heSolidThermo: for solvers that construct solidThermo or solidDisplacementThermo.

The mixture specifies the mixture composition. The options available are listed below.

  • pureMixture: mixture with fixed composition, which reads properties from a a sub-dictionary called mixture.
  • multicomponentMixture: mixture with variable composition, with species, e.g. O2, N2, listed by the species keyword, and properties specified for each specie within sub-dictionaries named after each specie.
  • coefficientWilkeMulticomponentMixture: as multicomponentMixture, but applies Wilke’s equation to calculate transport properties for the mixture.
  • valueMulticomponentMixture: as multicomponentMixture, but applies mole-fraction weighting to calculate transport properties for the mixture.
  • homogeneousMixture, inhomogeneousMixture and veryInhomogeneousMixture: for combustion based on laminar flame speed and regress variables, constituents are a set of mixtures, such as fuel, oxidant and burntProducts.

8.1.2 Transport model

The transport modelling concerns evaluating dynamic viscosity eqn, thermal conductivity eqn and thermal diffusivity eqn (for internal energy and enthalpy equations). The current transport models are as follows:

const
assumes a constant eqn and Prandtl number eqn which is simply specified by a two keywords, mu and Pr, respectively.
sutherland
calculates eqn as a function of temperature eqn from a Sutherland coefficient eqn and Sutherland temperature eqn, specified by keywords As and Ts; eqn is calculated according to:
 √-- μ = -As--T--. 1+ Ts∕T \relax \special {t4ht=
(8.1)
polynomial
calculates eqn and eqn as a function of temperature eqn from a polynomial of any order eqn, e.g.:
 N∑ −1 μ = aiTi. i=0 \relax \special {t4ht=
(8.2)
logPolynomial
calculates eqn and eqn as a function of eqn from a polynomial of any order eqn; from which eqn, eqn are calculated by taking the exponential, e.g.:
 N−1 ∑ i ln(μ) = ai[ln (T )]. i=0 \relax \special {t4ht=
(8.3)
Andrade
calculates eqn and eqn as a polynomial function of eqn, e.g. for eqn:
 2 a3 ln(μ) = a0 + a1T + a2T + a-+-T-. 4 \relax \special {t4ht=
(8.4)
tabulated
uses uniform tabulated data for viscosity and thermal conductivity as a function of pressure and temperature.
icoTabulated
uses non-uniform tabulated data for viscosity and thermal conductivity as a function of temperature.
WLF
(Williams-Landel-Ferry) calculates eqn as a function of temperature from coefficients eqn and eqn and reference temperature eqn specified by keywords C1, C2 and Tr; eqn is calculated according to:
 ( ) μ = μ0exp −-C1(T-−-Tr) C2 + T − Tr \relax \special {t4ht=
(8.5)

8.1.3 Thermodynamic models

The thermodynamic models are concerned with evaluating the specific heat eqn from which other properties are derived. The current thermo models are as follows:

eConst
assumes a constant eqn and a heat of fusion eqn which is simply specified by a two values eqn, given by keywords Cv and Hf.
eIcoTabulated
calculates eqn by interpolating non-uniform tabulated data of eqn value pairs, e.g.:
( (200 1005) (400 1020) );
ePolynomial
calculates eqn as a function of temperature by a polynomial of any order eqn:
 N∑−1 i cv = aiT . i=0 \relax \special {t4ht=
(8.6)
ePower
calculates eqn as a power of temperature according to:
 ( )n0 cv = c0 -T-- . Tref \relax \special {t4ht=
(8.7)
eTabulated
calculates eqn by interpolating uniform tabulated data of eqn value pairs, e.g.:
( (200 1005) (400 1020) );
hConst
assumes a constant eqn and a heat of fusion eqn which is simply specified by a two values eqn, given by keywords Cp and Hf.
hIcoTabulated
calculates eqn by interpolating non-uniform tabulated data of eqn value pairs, e.g.:
( (200 1005) (400 1020) );
hPolynomial
calculates eqn as a function of temperature by a polynomial of any order eqn:
 N −1 c = ∑ a T i. p i i=0 \relax \special {t4ht=
(8.8)
hPower
calculates eqn as a power of temperature according to:
 ( )n0 c = c -T-- . p 0 Tref \relax \special {t4ht=
(8.9)
hTabulated
calculates eqn by interpolating uniform tabulated data of eqn value pairs, e.g.:
( (200 1005) (400 1020) );
janaf
calculates eqn as a function of temperature eqn from a set of coefficients taken from JANAF tables of thermodynamics. The ordered list of coefficients is given in Table 8.1. The function is valid between a lower and upper limit in temperature eqn and eqn respectively. Two sets of coefficients are specified, the first set for temperatures above a common temperature eqn (and below eqn), the second for temperatures below eqn (and above eqn). The function relating eqn to temperature is:
cp = R ((((a4T + a3)T + a2)T + a1)T + a0). \relax \special {t4ht=
(8.10)
In addition, there are constants of integration, eqn and eqn, both at high and low temperature, used to evaluating eqn and eqn respectively.


Description Entry Keyword



Lower temperature limit eqn Tlow
Upper temperature limit eqn Thigh
Common temperature eqn Tcommon
High temperature coefficients eqn highCpCoeffs (a0 a1 a2 a3 a4...
High temperature enthalpy offset eqn a5...
High temperature entropy offset eqn a6)
Low temperature coefficients eqn lowCpCoeffs (a0 a1 a2 a3 a4...
Low temperature enthalpy offset eqn a5...
Low temperature entropy offset eqn a6)




Table 8.1: JANAF thermodynamics coefficients.

8.1.4 Composition of each constituent

There is currently only one option for the specie model which specifies the composition of each constituent. That model is itself named specie, which is specified by the following entries.

  • 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.

8.1.5 Equation of state

The following equations of state are available in the thermophysical modelling library.

adiabaticPerfectFluid
Adiabatic perfect fluid:
 ( ) p-+-B-- 1∕γ ρ = ρ0 p0 + B , \relax \special {t4ht=
(8.11)
where eqn are reference density and pressure respectively, and eqn is a model constant.
Boussinesq
Boussinesq approximation
ρ = ρ [1− β(T − T )] 0 0 \relax \special {t4ht=
(8.12)
where eqn is the coeffient of volumetric expansion and eqn is the reference density at reference temperature eqn.
icoPolynomial
Incompressible, polynomial equation of state:
 N∑ −1 ρ = aiTi, i=0 \relax \special {t4ht=
(8.13)
where eqn are polynomial coefficients of any order eqn.
icoTabulated
Tabulated data for an incompressible fluid using eqn value pairs, e.g. 
rho ( (200 1010) (400 980) );
incompressiblePerfectGas
Perfect gas for an incompressible fluid:
ρ = -1-pref, RT \relax \special {t4ht=
(8.14)
where eqn is a reference pressure.
linear
Linear equation of state:
ρ = ψp + ρ , 0 \relax \special {t4ht=
(8.15)
where eqn is compressibility (not necessarily eqn).
PengRobinsonGas
Peng Robinson equation of state:
 1 ρ = zRT--p, \relax \special {t4ht=
(8.16)
where the complex function eqn can be referenced in the source code in PengRobinsonGasI.H, in the $FOAM_SRC/thermophysicalModels/specie/equationOfState/ directory.
perfectFluid
Perfect fluid:
 1 ρ = ---p+ ρ0, RT \relax \special {t4ht=
(8.17)
where eqn is the density at eqn.
perfectGas
Perfect gas:
ρ = -1-p. RT \relax \special {t4ht=
(8.18)
rhoConst
Constant density:
ρ = constant. \relax \special {t4ht=
(8.19)
rhoTabulated
Uniform tabulated data for a compressible fluid, calculating eqn as a function of eqn and eqn.
rPolynomial
Reciprocal polynomial equation of state for liquids and solids:
1= C + C T + C T 2 − C p− C pT ρ 0 1 2 3 4 \relax \special {t4ht=
(8.20)
where eqn are coefficients.

8.1.6 Selection of energy variable

The user must specify the form of energy to be used in the solution, either internal energy eqn and enthalpy eqn, and in forms that include the heat of formation eqn 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 eqn is related to sensible enthalpy eqn by

 ∑ i h = hs + ciΔh f i \relax \special {t4ht=
(8.21)
where eqn and eqn are the molar fraction and heat of formation, respectively, of specie eqn. In most cases, we use the sensible form of energy, for which it is easier to account for energy change due to reactions. Keyword entries for energy therefore include e.g. sensibleEnthalpy, sensibleInternalEnergy and absoluteEnthalpy.

8.1.7 Thermophysical property data

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:

specie
containing i.e. number of moles, nMoles, of the specie, and molecular weight, molWeight in units of g/mol;
thermodynamics
containing coefficients for the chosen thermodynamic model (see below);
transport
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:


fuel
{
    specie
    {
        nMoles       1;
        molWeight    16.0428;
    }
    thermodynamics
    {
        Tlow         200;
        Thigh        6000;
        Tcommon      1000;
        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);
    }
    transport
    {
        As           1.67212e-06;
        Ts           170.672;
    }
}
The following is an example entry for a specie named air modelled using const transport and hConst thermodynamics:


air
{
    specie
    {
        nMoles          1;
        molWeight       28.96;
    }
    thermodynamics
    {
        Cp              1004.5;
        Hf              2.544e+06;
    }
    transport
    {
        mu              1.8e-05;
        Pr              0.7;
    }
}
OpenFOAM v11 User Guide - 8.1 Thermophysical models