freesteam is an open source implementation of
international-standard IAPWS-IF97 steam
tables from the International Association for the Properties of Water
Steam (IAPWS). freesteam lets you compute water and steam properties for a wide range of pressures and temperatures: you can specify the state of the steam in terms of a variety of combinations of 'known' properties, then freesteam will solve and allow you to query to find the values of the 'unknown' properties.
The library includes bindings for the Python language, as well as bindings to allow it to be used from the ASCEND modelling environment. For Windows and Mac and Ubuntu users, convenient binary packages are provided.
New: Freesteam 2.0 released! This is a complete rewrite of freesteam in the C language, for faster, smaller binaries and better compatibility for accessing the DLL/SO from different C++ compilers.
There is a mailing list for freesteam users, which is the preferred support mechansim (it ensures that FAQs are captured for others to re-use). Alternatively, you can email the developer directly on
. The project is currently under active development (as of Jan 2010), and contributions are most welcome!
1. What can I do with it?
Using freesteam, you can set the state of steam using various pairs of know
properties. The following input pairs are implemented:
In C, these states are set using syntax like SteamState S = freesteam_set_ph(p,h). In Python, the syntax is S = steam_ph(p,h). The routines return a 'SteamState' object that can then be queried for any output properties you wish to know, including
Isobaric heat capacity
Isochoric heat capacity
Quality (when saturated)
Speed of sound
The above properties are accessed using functions in C, like double p = freesteam_p(S), and using properties in Python, like p = S.p.
Calculation of surface tension is not currently implemented in version 2.0
Saturation curves and the boundary curves used internally by IAPWS-IF97 can
also be accessed, if required.
Freesteam is now able (version 2.x)
to auto-generate a complete set of steam tables suitable for student use, as well as a range of property diagrams, using Python code. Some property diagrams produced using freesteam-0.8.1 are also available.
University of Applied Sciences Zittau/Görlitz, Germany: FluidEXL
Edward Throm: ASTEM97
G&P Engineering: StmProps
Zittau/Goerlitz University of Applied Sciences: LibIF97
Wagner, Wolfgang, Kretzschmar, Hans-Joachim, International Steam Tables - The
Industrial Standard IAPWS-IF97 for the Thermodynamic Properties and
Supplemetary Equations for Other Properties: Tables, Algorithms,
Diagrams, Software, 2nd ed., 2006 (!),