Modelica.Media.Water.IF97_Utilities.BaseIF97

Modelica Physical Property Model: the new industrial formulation IAPWS-IF97

Information


    

Version Info and Revision history

Author: Hubertus Tummescheit,
Modelon AB
Ideon Science Park
SE-22370 Lund, Sweden
email: hubertus@modelon.se

In September 1997, the International Association for the Properties of Water and Steam (IAPWS) adopted a new formulation for the thermodynamic properties of water and steam for industrial use. This new industrial standard is called "IAPWS Industrial Formulation for the Thermodynamic Properties of Water and Steam" (IAPWS-IF97). The formulation IAPWS-IF97 replaces the previous industrial standard IFC-67.

Based on this new formulation, a new steam table, titled "Properties of Water and Steam" by W. Wagner and A. Kruse, was published by the Springer-Verlag, Berlin - New-York - Tokyo in April 1998. This steam table, ref. [1] is bilingual (English / German) and contains a complete description of the equations of IAPWS-IF97. This reference is the authoritative source of information for this implementation. A mostly identical version has been published by the International Association for the Properties of Water and Steam (IAPWS) with permission granted to re-publish the information if credit is given to IAPWS. This document is distributed with this library as IF97.pdf. In addition, the equations published by IAPWS for the transport properties dynamic viscosity (standards document: visc.pdf) and thermal conductivity (standards document: thcond.pdf) and equations for the surface tension (standards document: surf.pdf) are also implemented in this library and included for reference.

The functions in BaseIF97.mo are low level functions which should only be used in those exceptions when the standard user level functions in Water.mo do not contain the wanted properties.

Based on IAPWS-IF97, Modelica functions are available for calculating the most common thermophysical properties (thermodynamic and transport properties). The implementation requires part of the common medium property infrastructure of the Modelica.Thermal.Properties library in the file Common.mo. There are a few extensions from the version of IF97 as documented in IF97.pdf in order to improve performance for dynamic simulations. Input variables for calculating the properties are only implemented for a limited number of variable pairs which make sense as dynamic states: (p,h), (p,T), (p,s) and (d,T).


1. Structure and Regions of IAPWS-IF97

The IAPWS Industrial Formulation 1997 consists of a set of equations for different regions which cover the following range of validity:
273,15 K < T < 1073,15 K p < 100 MPa
1073,15 K < T < 2273,15 K p < 10 MPa

Figure 1 shows the 5 regions into which the entire range of validity of IAPWS-IF97 is divided. The boundaries of the regions can be directly taken from Fig. 1 except for the boundary between regions 2 and 3; this boundary, which corresponds approximately to the isentropic line s = 5.047 kJ kg -1 K-1, is defined by a corresponding auxiliary equation. Both regions 1 and 2 are individually covered by a fundamental equation for the specific Gibbs free energy g( p,T ), region 3 by a fundamental equation for the specific Helmholtz free energy f ( r,T ), and the saturation curve, corresponding to region 4, by a saturation-pressure equation ps(T). The high-temperature region 5 is also covered by a g( p,T ) equation. These 5 equations, shown in rectangular boxes in Fig. 1, form the so-called basic equations.

Regions and equations of IAPWS-IF97

Figure 1: Regions and equations of IAPWS-IF97

In addition to these basic equations, so-called backward equations are provided for regions 1, 2, and 4 in form of T ( p,h ) and T ( p,s ) for regions 1 and 2, and Ts ( p ) for region 4. These backward equations, marked in grey in Fig. 1, were developed in such a way that they are numerically very consistent with the corresponding basic equation. Thus, properties as functions of  p,h and of  p,s for regions 1 and 2, and of p for region 4 can be calculated without any iteration. As a result of this special concept for the development of the new industrial standard IAPWS-IF97, the most important properties can be calculated extremely quickly. All modelica functions are optimized with regard to short computing times.

The complete description of the individual equations of the new industrial formulation IAPWS-IF97 is given in IF97.pdf. Comprehensive information on IAPWS-IF97 (requirements, concept, accuracy, consistency along region boundaries, and the increase of computing speed in comparison with IFC-67, etc.) can be taken from IF97.pdf or [2].

[1]Wagner, W., Kruse, A. Properties of Water and Steam / Zustandsgrößen von Wasser und Wasserdampf / IAPWS-IF97. Springer-Verlag, Berlin, 1998.

[2] Wagner, W., Cooper, J. R., Dittmann, A., Kijima, J., Kretzschmar, H.-J., Kruse, A., Mare� R., Oguchi, K., Sato, H., Stöcker, I., �fner, O., Takaishi, Y., Tanishita, I., Trübenbach, J., and Willkommen, Th. The IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam. ASME Journal of Engineering for Gas Turbines and Power 122 (2000), 150 - 182.


2. Calculable Properties


Common name
Abbreviation
Unit
 1
Pressure p
Pa
 2
Temperature T
K
 3
Density d
kg/m3
 4
Specific volume v
m3/kg
 5
Specific enthalpy h
J/kg
 6
Specific entropy s
J/(kg K)
 7
Specific internal energy
u
J/kg
 8
Specific isobaric heat capacity cp
J/(kg K)
 9
Specific isochoric heat capacity cv
J/(kg K)
10
Isentropic exponent, kappa= -(v/p) (dp/dv)s kappa ( k)
1
11
Speed of sound
a
m/s
12
Dryness fraction
x
kg/kg
13
Specific Helmholtz free energy, f = u - Ts f
J/kg
14
Specific Gibbs free energy, g = h - Ts g
J/kg
15
Isenthalpic exponent, theta = -(v/p)(dp/dv)h theta (q)
1
16
Isobaric volume expansion coefficient, alpha = v-1 (dv/dT)p alpha (a)
1/K
17
Isochoric pressure coefficient, beta = p-1 (dp/dT)v beta (b)
1/K
18
Isothermal compressibility, gamma = -v -1(dv/dp)T gamma (g)
1/Pa
19
Dynamic viscosity eta (h)
Pa s
20
Kinematic viscosity nu (n)
m2/s
21
Thermal conductivity lambda (l)
W/(m K)
22
Surface tension sigma (s)
N/m

The properties 1-11 are calculated by default with the functions for dynamic simulation, 2 of these variables are the dynamic states and are the inputs to calculate all other properties. In addition to these properties of general interest, the entries to the thermodynamic Jacobian matrix which render the mass- and energy balances explicit in the input variables to the property calculation are also calculated. For an explanatory example using pressure and specific enthalpy as states, see the Examples sub-package.

The high-level calls to steam properties are grouped into records comprising both the properties of general interest and the entries to the thermodynamic Jacobian. If additional properties are needed the low level functions in BaseIF97 provide more choice.


Additional functions

Extends from Modelica.Icons.Library (Icon for library).

Package Content

NameDescription
Modelica.Media.Water.IF97_Utilities.BaseIF97.IterationData IterationData constants for iterations internal to some functions
Modelica.Media.Water.IF97_Utilities.BaseIF97.data data constant IF97 data and region limits
Modelica.Media.Water.IF97_Utilities.BaseIF97.getTstar getTstar get normalization temperature for region 1, 2 or 5
Modelica.Media.Water.IF97_Utilities.BaseIF97.getpstar getpstar get normalization pressure for region 1, 2 or 5
Modelica.Media.Water.IF97_Utilities.BaseIF97.critical critical critical point data
Modelica.Media.Water.IF97_Utilities.BaseIF97.triple triple triple point data
Modelica.Media.Water.IF97_Utilities.BaseIF97.Regions Regions functions to find the current region for given pairs of input variables
Modelica.Media.Water.IF97_Utilities.BaseIF97.Basic Basic Base functions as described in IAWPS/IF97
Modelica.Media.Water.IF97_Utilities.BaseIF97.IceBoundaries IceBoundaries the melting line and sublimation line curves from IAPWS
Modelica.Media.Water.IF97_Utilities.BaseIF97.Transport Transport transport properties for water according to IAPWS/IF97
Modelica.Media.Water.IF97_Utilities.BaseIF97.Isentropic Isentropic functions for calculating the isentropic enthalpy from pressure p and specific entropy s
Modelica.Media.Water.IF97_Utilities.BaseIF97.Inverses Inverses efficient inverses for selected pairs of variables
Modelica.Media.Water.IF97_Utilities.BaseIF97.ByRegion ByRegion simple explicit functions for one region only
Modelica.Media.Water.IF97_Utilities.BaseIF97.TwoPhase TwoPhase steam properties in the two-phase rgion and on the phase boundaries
Modelica.Media.Water.IF97_Utilities.BaseIF97.extraDerivs_ph extraDerivs_ph function to calculate some extra thermophysical properties in regions 1, 2, 3 and 5 as f(p,h)
Modelica.Media.Water.IF97_Utilities.BaseIF97.extraDerivs_pT extraDerivs_pT function to calculate some extra thermophysical properties in regions 1, 2, 3 and 5 as f(p,T)


Modelica.Media.Water.IF97_Utilities.BaseIF97.IterationData Modelica.Media.Water.IF97_Utilities.BaseIF97.IterationData

constants for iterations internal to some functions

Information

Extends from Modelica.Icons.Record (Icon for a record).

Modelica definition

record IterationData 
  "constants for iterations internal to some functions"

  extends Modelica.Icons.Record;
  constant Integer IMAX=50 "maximum number of iterations for inverse functions";
  constant Real DELP=1.0e-6 "maximum iteration error in pressure, Pa";
  constant Real DELS=1.0e-8 
    "maximum iteration error in specific entropy, J/{kg.K}";
  constant Real DELH=1.0e-8 
    "maximum iteration error in specific entthalpy, J/kg";
  constant Real DELD=1.0e-8 "maximum iteration error in density, kg/m^3";
end IterationData;

Modelica.Media.Water.IF97_Utilities.BaseIF97.data Modelica.Media.Water.IF97_Utilities.BaseIF97.data

constant IF97 data and region limits

Information


 

Record description

Constants needed in the international steam properties IF97. SCRIT and HCRIT are calculated from Helmholtz function for region 3.

Version Info and Revision history

Author: Hubertus Tummescheit,
Modelon AB
Ideon Science Park
SE-22370 Lund, Sweden
email: hubertus@modelon.se

Extends from Modelica.Icons.Record (Icon for a record).

Modelica definition

record data "constant IF97 data and region limits"
  extends Modelica.Icons.Record;
  constant SI.SpecificHeatCapacity RH2O=461.526 
    "specific gas constant of water vapour";
  constant SI.MolarMass MH2O=0.01801528 "molar weight of water";
  constant SI.Temperature TSTAR1=1386.0 
    "normalization temperature for region 1 IF97";
  constant SI.Pressure PSTAR1=16.53e6 
    "normalization pressure for region 1 IF97";
  constant SI.Temperature TSTAR2=540.0 
    "normalization temperature for region 2 IF97";
  constant SI.Pressure PSTAR2=1.0e6 "normalization pressure for region 2 IF97";
  constant SI.Temperature TSTAR5=1000.0 
    "normalization temperature for region 5 IF97";
  constant SI.Pressure PSTAR5=1.0e6 "normalization pressure for region 5 IF97";
  constant SI.SpecificEnthalpy HSTAR1=2.5e6 
    "normalization specific enthalpy for region 1 IF97";
  constant Real IPSTAR=1.0e-6 
    "normalization pressure for inverse function in region 2 IF97";
  constant Real IHSTAR=5.0e-7 
    "normalization specific enthalpy for inverse function in region 2 IF97";
  constant SI.Temperature TLIMIT1=623.15 
    "temperature limit between regions 1 and 3";
  constant SI.Temperature TLIMIT2=1073.15 
    "temperature limit between regions 2 and 5";
  constant SI.Temperature TLIMIT5=2273.15 "upper temperature limit of 5";
  constant SI.Pressure PLIMIT1=100.0e6 
    "upper pressure limit for regions 1, 2 and 3";
  constant SI.Pressure PLIMIT4A=16.5292e6 
    "pressure limit between regions 1 and 2, important for for two-phase (region 4)";
  constant SI.Pressure PLIMIT5=10.0e6 
    "upper limit of valid pressure in region 5";
  constant SI.Pressure PCRIT=22064000.0 "the critical pressure";
  constant SI.Temperature TCRIT=647.096 "the critical temperature";
  constant SI.Density DCRIT=322.0 "the critical density";
  constant SI.SpecificEntropy SCRIT=4412.02148223476 
    "the calculated specific entropy at the critical point";
  constant SI.SpecificEnthalpy HCRIT=2087546.84511715 
    "the calculated specific enthalpy at the critical point";
  constant Real[5] n=array(0.34805185628969e3, -0.11671859879975e1,
      0.10192970039326e-2, 0.57254459862746e3, 0.13918839778870e2) 
    "polynomial coefficients for boundary between regions 2 and 3";
end data;

Modelica.Media.Water.IF97_Utilities.BaseIF97.getTstar Modelica.Media.Water.IF97_Utilities.BaseIF97.getTstar

get normalization temperature for region 1, 2 or 5

Information

Extends from Modelica.Icons.Function (Icon for a function).

Inputs

TypeNameDefaultDescription
Integerregion IF 97 region

Outputs

TypeNameDescription
TemperatureTstarnormalization temperature [K]

Modelica definition

function getTstar 
  "get normalization temperature for region 1, 2 or 5"
  extends Modelica.Icons.Function;
  input Integer region "IF 97 region";
  output SI.Temperature Tstar "normalization temperature";
algorithm 
  if region == 1 then
    Tstar
   := data.TSTAR1;
  elseif region == 2 then
    Tstar
   := data.TSTAR2;
  else
    Tstar
   := data.TSTAR5;
  end if;
end getTstar;

Modelica.Media.Water.IF97_Utilities.BaseIF97.getpstar Modelica.Media.Water.IF97_Utilities.BaseIF97.getpstar

get normalization pressure for region 1, 2 or 5

Information

Extends from Modelica.Icons.Function (Icon for a function).

Inputs

TypeNameDefaultDescription
Integerregion IF 97 region

Outputs

TypeNameDescription
Pressurepstarnormalization pressure [Pa]

Modelica definition

function getpstar "get normalization pressure for region 1, 2 or 5"
  extends Modelica.Icons.Function;
  input Integer region "IF 97 region";
  output SI.Pressure pstar "normalization pressure";
algorithm 
  if region == 1 then
    pstar
   := data.PSTAR1;
  elseif region == 2 then
    pstar
   := data.PSTAR2;
  else
    pstar
   := data.PSTAR5;
  end if;
end getpstar;

Modelica.Media.Water.IF97_Utilities.BaseIF97.critical Modelica.Media.Water.IF97_Utilities.BaseIF97.critical

critical point data

Information


 

Record description

Critical point data for IF97 steam properties. SCRIT and HCRIT are calculated from helmholtz function for region 3

Version Info and Revision history

Author: Hubertus Tummescheit,
Modelon AB
Ideon Science Park
SE-22370 Lund, Sweden
email: hubertus@modelon.se

Extends from Modelica.Icons.Record (Icon for a record).

Modelica definition

record critical "critical point data"
  extends Modelica.Icons.Record;
  constant SI.Pressure PCRIT=22064000.0 "the critical pressure";
  constant SI.Temperature TCRIT=647.096 "the critical temperature";
  constant SI.Density DCRIT=322.0 "the critical density";
  constant SI.SpecificEnthalpy HCRIT=2087546.84511715 
    "the calculated specific enthalpy at the critical point";
  constant SI.SpecificEntropy SCRIT=4412.02148223476 
    "the calculated specific entropy at the critical point";
end critical;

Modelica.Media.Water.IF97_Utilities.BaseIF97.triple Modelica.Media.Water.IF97_Utilities.BaseIF97.triple

triple point data

Information


 

Record description

Vapour/liquid/ice triple point data for IF97 steam properties.

Version Info and Revision history

Author: Hubertus Tummescheit,
Modelon AB
Ideon Science Park
SE-22370 Lund, Sweden
email: hubertus@modelon.se

Extends from Modelica.Icons.Record (Icon for a record).

Modelica definition

record triple "triple point data"
  extends Modelica.Icons.Record;
  constant SI.Temperature Ttriple=273.16 "the triple point temperature";
  constant SI.Pressure ptriple=611.657 "the triple point temperature";
  constant SI.Density dltriple=999.792520031617642 
    "the triple point liquid density";
  constant SI.Density dvtriple=0.485457572477861372e-2 
    "the triple point vapour density";
end triple;

Modelica.Media.Water.IF97_Utilities.BaseIF97.extraDerivs_ph Modelica.Media.Water.IF97_Utilities.BaseIF97.extraDerivs_ph

function to calculate some extra thermophysical properties in regions 1, 2, 3 and 5 as f(p,h)

Information

Extends from Modelica.Icons.Function (Icon for a function).

Inputs

TypeNameDefaultDescription
Pressurep pressure [Pa]
SpecificEnthalpyh specific enthalpy [J/kg]
Integerphase0phase: 2 for two-phase, 1 for one phase, 0 if unknown

Outputs

TypeNameDescription
ExtraDerivativesdprothermodynamic property collection

Modelica definition

function extraDerivs_ph 
  "function to calculate some extra thermophysical properties in regions 1, 2, 3 and 5 as f(p,h)"

  extends Modelica.Icons.Function;
  input SI.Pressure p "pressure";
  input SI.SpecificEnthalpy h "specific enthalpy";
  input Integer phase= 0 
    "phase: 2 for two-phase, 1 for one phase, 0 if unknown";
  output Modelica.Media.Common.ExtraDerivatives dpro 
    "thermodynamic property collection";
protected 
  SI.Density d "density";
  SI.Temperature T "temperature";
  Integer region "IF97 region";
  Integer error "error flag";
  Modelica.Media.Common.HelmholtzDerivs f 
    "dimensionless Helmholtz function and dervatives wrt delta and tau";
  Modelica.Media.Common.GibbsDerivs g 
    "dimensionless Gibbs funcion and dervatives wrt pi and tau";
algorithm 
  assert(phase ==1,
    "extraDerivs_ph: properties are not implemented in 2 phase region");
  region := Regions.region_ph(p=p,h= h,phase= phase);
  if region == 1 then
    T := Basic.tph1(p, h);
    g := Basic.g1(p, T);
    dpro := Modelica.Media.Common.gibbsToExtraDerivs(g);
  elseif region == 2 then
    T := Basic.tph2(p, h);
    g := Basic.g2(p, T);
    dpro := Modelica.Media.Common.gibbsToExtraDerivs(g);
  elseif region == 3 then
    (d,T,error) := Inverses.dtofph3(p=p,h= h,delp= 1.0e-7,delh= 1.0e-6);
    f := Basic.f3(d, T);
    dpro := Modelica.Media.Common.helmholtzToExtraDerivs(f);
  elseif region == 5 then
    // region assumed to be 5
    (T,error) := Inverses.tofph5(p=p,h= h,reldh= 1.0e-7);
    g := Basic.g5(p, T);
    dpro := Modelica.Media.Common.gibbsToExtraDerivs(g);
  end if;
end extraDerivs_ph;

Modelica.Media.Water.IF97_Utilities.BaseIF97.extraDerivs_pT Modelica.Media.Water.IF97_Utilities.BaseIF97.extraDerivs_pT

function to calculate some extra thermophysical properties in regions 1, 2, 3 and 5 as f(p,T)

Information

Extends from Modelica.Icons.Function (Icon for a function).

Inputs

TypeNameDefaultDescription
Pressurep pressure [Pa]
TemperatureT temperature [K]

Outputs

TypeNameDescription
ExtraDerivativesdprothermodynamic property collection

Modelica definition

function extraDerivs_pT 
  "function to calculate some extra thermophysical properties in regions 1, 2, 3 and 5 as f(p,T)"

  extends Modelica.Icons.Function;
  input SI.Pressure p "pressure";
  input SI.Temperature T "temperature";
  output Modelica.Media.Common.ExtraDerivatives dpro 
    "thermodynamic property collection";
protected 
  SI.Density d "density";
  Integer region "IF97 region";
  Integer error "error flag";
  Modelica.Media.Common.HelmholtzDerivs f 
    "dimensionless Helmholtz function and dervatives wrt delta and tau";
  Modelica.Media.Common.GibbsDerivs g 
    "dimensionless Gibbs funcion and dervatives wrt pi and tau";
algorithm 
  region := Regions.region_pT(p=p,T= T);
  if region == 1 then
    g := Basic.g1(p, T);
    dpro := Modelica.Media.Common.gibbsToExtraDerivs(g);
  elseif region == 2 then
    g := Basic.g2(p, T);
    dpro := Modelica.Media.Common.gibbsToExtraDerivs(g);
  elseif region == 3 then
    (d,error) := Inverses.dofpt3(p=p,T= T,delp= 1.0e-7);
    f := Basic.f3(d, T);
    dpro := Modelica.Media.Common.helmholtzToExtraDerivs(f);
  elseif region == 5 then
    // region assumed to be 5
    g := Basic.g5(p, T);
    dpro := Modelica.Media.Common.gibbsToExtraDerivs(g);
  end if;
end extraDerivs_pT;

HTML-documentation generated by Dymola Sun Jan 17 21:12:34 2010.