skip to navigation
skip to content

iapws 1.2

Python implementation of standards from The InternationalAssociation for the Properties of Water and Steam


Python implementation of standard from IAPWS ( The module implements the full set of standards, including:

IAPWS-06 for Ice
IAPWS-08 for seawater
IAPWS-05 for Heavy water


  • python 2x, 3x, compatible with both versions
  • Numpy-scipy: library with mathematic and scientific tools


In debian you can find in official repositories in jessie, testing and sid. In ubuntu it’s in official repositories from ubuntu saucy (13.10). In other system you can install using pip:

pip install iapws

or directly cloning the github repository:

git clone

and adding the folder to a python path. This is the recommended option to have the latest version.


To see the full documentation of package, see readthedocs

For a rapid usage demostration, see this examples


from iapws import IAPWS97
sat_steam=IAPWS97(P=1,x=1)                #saturated steam with known P
sat_liquid=IAPWS97(T=370, x=0)            #saturated liquid with known T
steam=IAPWS97(P=2.5, T=500)               #steam with known P and T
print(sat_steam.h, sat_liquid.h, steam.h) #calculated enthalpies


from iapws import IAPWS95
sat_steam=IAPWS95(P=1,x=1)                #saturated steam with known P
sat_liquid=IAPWS95(T=370, x=0)            #saturated liquid with known T
steam=IAPWS95(P=2.5, T=500)               #steam with known P and T
print(sat_steam.h, sat_liquid.h, steam.h) #calculated enthalpies

IAPWS-05 for Heavy water

from iapws import D2O
sat_liquid=D2O(T=370, x=0)            #saturated liquid with known T
print(sat_liquid.h)                   #calculated enthalpy

IAPWS-06 for Ice Ih

from iapws import _Ice
ice=_Ice(273.15, 0.101325)            #Ice at normal melting point
print(ice["rho"])                     #Calculated density

IAPWS-08 for seawater

from iapws import SeaWater
state = SeaWater(T=300, P=0.101325, S=0.001)    #Seawater with 0.1% Salinity
print(state.cp)                                 # Get cp


  • FIXME: Electrolytic conductiviy
  • TODO: Improve convergence in two phase region for IAPWS95 and D2O class
  • TODO: Implement SBTL method for fast calculation
  • TODO: Implement TTSE method for fast calculation

Ammonia-water mixture:

  • FIXME: Ammonia-water mixture residual helmholtz. The values are good, bad difer by 1%
  • TODO: Add equilibrium routine

I’ve tried to test all code and use all values for computer verification the standards give, but anyway the code can have hidden problem. For any suggestions, comments, bugs … you can usage the github issue section, or contact directly with me at email.

File Type Py Version Uploaded on Size
iapws-1.2.tar.gz (md5) Source 2017-04-15 101KB