iapws
Python implementation of standards from The InternationalAssociation for the Properties of Water and Steam
What it is and what it does
iapws is a Python library that implements the full set of IAPWS (International Association for the Properties of Water and Steam) standards for calculating thermodynamic and transport properties. It covers water and steam (IF97, 95), ice (06), seawater (08), and heavy water (17). Given pressure, temperature, or quality state variables, it computes properties like enthalpy, entropy, density, and specific heat.
The library is designed for scientific and engineering applications that need accurate steam table lookups and thermodynamic calculations. It depends only on scipy for numerical operations and is available as a pure Python wheel. The package includes multiprocessing support for batch calculations and is actively maintained with support for current Python versions.
Use it for:
- Calculate steam properties for power plant cycle analysis given pressure and temperature inputs.
- Determine saturation conditions (enthalpy, entropy) for thermodynamic process modeling.
- Compute seawater thermodynamic properties for oceanographic or desalination engineering.
- Batch-process multiple thermodynamic states using the multiprocessing-enabled from_list method.
- Retrieve ice properties at specific temperature and pressure for cryogenic or glaciology applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Calculates thermodynamic and transport properties of water, steam, ice, seawater, and heavy water according to IAPWS industrial standards (IF97, 95, 06, 08, 17).
Yes, if you need IAPWS standard thermodynamic calculations for water, steam, ice, or seawater. The package is actively maintained, has no known vulnerabilities, and installs with minimal friction. The GPLv3 copyleft license is a blocker only for proprietary closed-source projects; academic, research, and open-source work can use it freely.
Install
iapws on PyPI
pip
pip install iapwsuv
uv add iapwspoetry
poetry add iapwsInstalling iapws
Before you install
Low friction: pure Python wheel with a single runtime dependency on scipy. Active maintenance with a recent release (140 days ago) and ongoing repository activity.
License in practice
GPLv3 copyleft license: any derivative work or software that links this library must also be open-source under GPLv3. Suitable for academic and open-source projects; proprietary software integration requires careful licensing review.
Quickstart
pip install iapws
from iapws import IAPWS97
sat_steam = IAPWS97(P=1, x=1) # saturated steam at 1 bar
print(sat_steam.h) # enthalpy in kJ/kg
Verify before relying
- Whether the package handles edge cases and convergence issues mentioned in the TODO (two-phase region for IAPWS95 and D2O) without user workarounds.
- Performance characteristics for large-scale batch calculations beyond the multiprocessing example shown.
Package facts
| License | gpl v3 (copyleft) |
| Python support | supports the current Python release (!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — scipy |
| Maintenance | actively maintained — 140 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 517,087/month — #6,229 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: iapws-1.5.5-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
gswGSW-Python wraps the TEOS-10 seawater…
permissive · top 15,000 on PyPI
thermoThermo calculates temperature and…
permissive · top 15,000 on PyPI
chemicalsRetrieves and calculates chemical properties…
permissive · top 15,000 on PyPI
CoolPropCoolProp provides thermodynamic and transport…
permissive · top 5,000 on PyPI
canteraCantera is a suite of tools for chemical…
permissive · top 15,000 on PyPI
janafSearches and parses NIST-JANAF thermochemical…
permissive · top 15,000 on PyPI
pymbarpymbar implements the multistate Bennett…
permissive · top 15,000 on PyPI
vasprun-xmlParses VASP calculation output from vasprun.xml…
permissive · top 15,000 on PyPI
epiweeksCalculates epidemiological weeks using US CDC…
permissive · top 15,000 on PyPI
periodictableProvides a periodic table of the elements with…
permissive · top 15,000 on PyPI