Skip to main content

Port of XSteam tables by Magnus Holmgren to python

Project description

Codacy Badge

Codacy Badge

Build Status


Port of XSteam tables into Python originally released by Magnus Holmgren.

XSteam provides steam and water properties according to IAPWS release IF-97. The range of applicability is from 0-1000 bar and 0-2000 °C.

Some transport properties (thermal conductivity and viscosity) are also available and based upon IAPWS 1998.


Two options are available. The first is to install from PyPI using pip

pip install XSteamPython

Or by cloning and running

python install


XSteamPython only requires that SciPy be installed.

For development, all dependencies are contained in requirements.txt.


>>> import XSteamPython as stm
>>> enthalpy=stm.h_pT(101.0, 300.0)
>>> print(enthalpy)
>>> stm.switchUnits()
Using English units
>>> enthalpy=stm.h_pT(14.7, 70.0)
>>> print(enthalpy)
>>> dir(stm)
['Boundaries', 'Constants', 'Convert', 'P_hs', 'Pr_pT', 'Pr_ph', 'Psat_T', 'Psat_s', 'Region1', 'Region2', 'Region3', 'Region4', 'Region5', 'Regions', 'T_hs', 'T_ph', 'T_ps', 'Tsat_p', 'Tsat_s', 'Viscosity', 'XSteamPython', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'cpL_T', 'cpL_p', 'cpV_T', 'cpV_p', 'cp_pT', 'cp_ph', 'cp_ps', 'cvL_T', 'cvL_p', 'cvV_T', 'cvV_p', 'cv_pT', 'cv_ph', 'cv_ps', 'englishUnits', 'hL_T', 'hL_p', 'hV_T', 'hV_p', 'h_Tx', 'h_pT', 'h_ps', 'h_px', 'kappa_pT', 'kappa_ph', 'math', 'my_pT', 'my_ph', 'my_ps', 'rhoL_T', 'rhoL_p', 'rhoV_T', 'rhoV_p', 'rho_pT', 'rho_ph', 'rho_ps', 'sL_T', 'sL_p', 'sV_T', 'sV_p', 's_pT', 's_ph', 'st_p', 'st_t', 'surfaceTension_T', 'switchUnits', 'tcL_T', 'tcL_p', 'tcV_T', 'tcV_p', 'tc_hs', 'tc_pT', 'tc_pTrho', 'tc_ph', 'uL_T', 'uL_p', 'uV_T', 'uV_p', 'u_pT', 'u_ph', 'u_ps', 'vL_T', 'vL_p', 'vV_T', 'vV_p', 'v_pT', 'v_ph', 'v_ps', 'vx_ph', 'vx_ps', 'wL_T', 'wL_p', 'wV_T', 'wV_p', 'w_pT', 'w_ph', 'w_ps', 'x_ph', 'x_ps']

Note that calling stm.switchUnits() changes from SI to English units and vice versa. Default is SI units.


The syntax for function calling is first the wanted property, followed by an underscore followed by input property(ies). Example:

h_pT(101.0, 300.0)

The example will return enthalpy given a pressure (101 kPa) and temperature (300 °C).

Property Key
T Temperature (°C or °F)
p Pressure (kPa or psi)
h Enthalpy (kJ/kg or btu/lb)
v Specific volume (m**3/kg or ft**3/lb)
rho Density (kg/m**3 or lb/ft**3)
s Specific entropy (kJ/(kg°C) or btu/(lb°F))
u Specific internal energy (kJ/kg or btu/lb)
Cp Specific heat capacity constant pressure (kJ/(kg°C) or btu/(lb°F))
Cv Specific heat capacity constant volume (kJ/(kg°C) or btu/(lb°F))
w Speed of sound (m/s or ft/s)
my Viscosity (N*s/m**2 or lbm/ft/hr)
Pr Prandtl number
kappa Heat capacity ratio
tc Thermal Conductivity (W/(m*°C) or btu/(h*ft*°F))
st Surface Tension (N/m or lb/ft)
x Vapor fraction (dmnls)
vx Vapor Volume Fraction (dmnls)

Some functions can have a little extra after the wanted property |Tag|Key| |---|---| |L|Liquid phase| |V|Vapor phase| |sat|At saturation|

Project details

Release history Release notifications

This version


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for XSteamPython, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size XSteamPython-1.0.0-py3-none-any.whl (41.4 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size XSteamPython-1.0.0.tar.gz (33.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page