# Temperature-Dependent Thermophysical Properties for Pure Water

The OpenFOAM® thermophysicalProperties file for water (polynomial approach)

Water is an essential fluid in our world. Even in computational fluid dynamics, it is a characteristic fluid that appears in many analyses. In some cases, one needs the buoyancy effect or temperature-related data, and hence and therefore, temperature depended data are required. I also had a few calculations that need temperature-dependent water properties. In OpenFOAM®, we can use the polynomial approach for temperature-dependent physical property data. However, I always had to derive them again and again, as I forgot to save the file to an appropriate location where I can find them. Fortunately, I found the data during the website-relaunch. Therefore, I decided to put the polynomial derivation into my blog for two reasons: (a) I know where to pick it up fast, and they will not vanish anymore, and (2) everybody can use it. The polynomials are based on pure water in the range between 0 °C < T < 100 °C at atmospheric pressure 101325 Pa.

As already mentioned, OpenFOAM® offers a polynomial approach. Here, the fluid properties, namely the density, the molecular viscosity, the heat capacity, and thermal conductivity, are calculated by using the polynomial functions. The raw data for generating the polynomial functions are taken from the VDI Wärmeatlas.

#------------------------------------------------------------------------------
#
# Data from VDI Waermeatlas (2013)
# Tobias Holzmann
# 12.06.2020
#
#------------------------------------------------------------------------------
# T          rho            cp x 10^3       mu x 10^-6      lambda x 10^-3
# [C]       [kg/m^3]        [J/kg/K]        [kg/m/s]        [W/m/K]
#------------------------------------------------------------------------------
0           999.84          4.219           1791.0          555.65
5           999.97          4.205           1518.2          567.79
10          999.70          4.195           1305.9          578.78
15          999.10          4.189           1137.6          588.80
20          998.21          4.185           1001.6          598.01
25          997.05          4.182           890.02          606.52
30          995.65          4.180           797.22          614.39
34          994.38          4.179           733.73          620.29
40          992.22          4.179           652.73          625.84
44          990.64          4.179           585.35          628.92
50          988.05          4.180           546.52          640.64
55          985.71          4.181           503.36          646.04
60          983.21          4.183           466.04          651.02
65          980.57          4.185           432.91          655.59
70          977.78          4.188           403.56          659.78
75          974.86          4.192           377.42          663.58
80          971.80          4.196           354.06          667.01
85          968.62          4.200           333.08          670.08
90          965.32          4.205           314.18          672.80
95          961.89          4.211           297.09          675.17

#------------------------------------------------------------------------------

The data provided above are used in combination with Gnuplot to perform a polynomial fit. For the density and thermal conductivity, a polynomial of second order was used: f(T) = AT² + BT + C. The dynamic viscosity and heat capacity was fitted by using a cubic polynomial: f(T) = Ax³ + Bx² + Cx + D. The polynomial coefficients are presented now. Furthermore, the comparison with the raw data is given. Thus, using the data below (the polynomials), you should make sure that the temperature is not going beyond the polynomials' limits because non-physical values appear beyond these limits. Therefore, it will influence the stability of your calculation and probably give you a division by zero, especially for the cubic polynomials. To stabilize this, one can use the object function of OpenFOAM®, e.g., the »limitTemperature« capabilities.

## Density Fitting

A = -0.00365471 kg/m³/K²

B = 1.93017 kg/m³/K

C = 746.025 kg/m³

## Heat Capacity Fitting (cp)

A = -0.000127063 J/kg/K²/K²

B = 0.13736 J/kg/K³

C = -48.6714 J/kg/K²

D = 9850.69 J/kg/K

## Dynamic Viscosity Fitting

A = -2.80572e-9 kg/m/s/K³

B = 2.90283e-6 kg/m/s/K²

C = -0.00100532 kg/m/s/K

D = 0.116947 kg/m/s

## Thermal Conductivity Fitting

A = -9.29827e-6 W/m/K³

B = 0.0071857 W/m/K²

C = -0.710696 W/m/K

## OpenFOAM®`s Thermophysical Property File for Pure Water

For a fast OpenFOAM® set-up, one can copy-paste the text below and insert the entire content into the »thermophysical« file, which is located in the constant folder of your project directory. Feel free to modify the data to fit your needs. The thermodynamic data file is related to the polynomial fitting given above. Since OpenFOAM® version 8, a new thermophysical approach can be used namely the »reciprocal polynomial fit«. However, the below-given data uses the common polynomial approach.

/*--------------------------------*- C++ -*----------------------------------*\
=========                 |
\\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
\\    /   O peration     | Website:  https://openfoam.org
\\  /    A nd           | Version:  dev
\\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
version     2.0;
format      ascii;
class       dictionary;
location    "constant";
object      thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

thermoType
{
type            heRhoThermo;
mixture         pureMixture;
transport       polynomial;
thermo          hPolynomial;
equationOfState icoPolynomial;
specie          specie;
energy          sensibleEnthalpy;
}

mixture
{
specie
{
molWeight       18.0;
}
thermodynamics
{
CpCoeffs<8>     (9850.69 -48.6714 0.13736 -0.000127063  0 0 0 0);
Sf              0;
Hf              0;
}
equationOfState
{
rhoCoeffs<8>    (746.025 1.93017 -0.00365471 0 0 0 0 0);
}
transport
{
muCoeffs<8>     (0.116947 -0.00100532 2.90283e-6 -2.80572e-9 0 0 0 0);
kappaCoeffs<8>  (-0.710696 0.0071857 -9.29827e-6 0 0 0 0 0);
}
}

// ************************************************************************* //