State Manager for Thermdynamic Properties
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This package provides a wrapper around CoolProp that integrates Pint for easy state management in any unit system.



The preferred installation method is to use conda. Using Conda, ThermoState can be installed for either Python 3.5 or 3.6. If you have an existing Conda environment with one of those Python versions, installing ThermoState can be done by

conda install -c bryanwweber thermostate conda-forge::pint

This installs Pint from the conda-forge channel; if you would like to use another channel to install Pint, or Pint is already installed in your environment, the conda-forge::pint can be omitted.

If you do not have an environment with Python 3.5 or 3.6, you can create a new environment with

conda create -n thermostate -c bryanwweber thermostate conda-forge::pint


Alternatively, ThermoState can be installed with pip, for Python 3.5 only. This is because version 6.1.0 of CoolProp is only available for Python 3.5 from pip.

pip install thermostate

From Source

ThermoState is a pure-Python package that supports any Python version 3.5 and higher. Binary installers for CoolProp (which has a C-extension for its Python interface) are only available for Python 3.5 (pip) and Pythons 3.5 and 3.6 (Conda). Other versions of Python can be supported by compiling CoolProp locally, for which instructions are available on the CoolProp documentation. Once CoolProp is installed, installing ThermoState can be done by

git clone
cd thermostate
pip install .


Documentation can be found at The documentation contains a short tutorial, examples, and API documentation for the package.


If you have used ThermoState in your work, we would appreciate including a citation to the software! ThermoState has been published in JOSE, available at the link below.


For those using Bib(La)TeX, you can use the following entry

    title = {{ThermoState}: {A} state manager for thermodynamics courses},
    volume = {1},
    issn = {2577-3569},
    shorttitle = {{ThermoState}},
    url = {},
    doi = {10.21105/jose.00033},
    number = {8},
    urldate = {2018-10-24},
    journal = {Journal of Open Source Education},
    author = {Weber, Bryan},
    month = oct,
    year = {2018},
    pages = {33}

Code of Conduct & Contributing

We welcome contributions from anyone in the community. Please look at the Contributing instructions for more information. This project follows the Contributor Covenant Code of Conduct, version 1.4. In short, be excellent to each other.

Continuous Integration Status

TravisCI: Build Status Appveyor: Build status codecov

Anaconda Package Version

Anaconda-Server Badge Version Anaconda-Server Badge Downloads