.. rst-class:: landing-lede
hensmith (**H**\ eat **E**\ xchanger **N**\ etwork **S**\ ynthesis,
**M**\ odeling, **I**\ ntegration, **T**\ hermodynamics, and **H**\ euristics)
is the automated heat exchanger network synthesis facility for BioSTEAM
systems: :class:`HeatExchangerNetwork` is a BioSTEAM ``Facility`` that
performs a pinch analysis on every heating and cooling utility in a system,
synthesizes a network of process exchangers that reaches the minimum energy
requirement (MER) whenever it finds one without stream splits, and reports the
utility savings and added capital cost as part of the system's
techno-economic analysis.
Watch it run in the `Quickstart`_ demo below.
Quickstart
----------
The canonical example is a small methanol/water system: a shortcut
distillation column whose condenser and reboiler are auxiliary exchangers, a
cooler on each of the column's two products, and a flash whose feed is heated
by its own auxiliary exchanger. Adding a :class:`HeatExchangerNetwork` to that
system cuts its heating utility by 17.5 % and its cooling utility by 96.9 %
with 4 process exchangers -- a network at the MER targets of its pinch
analysis -- and the network's installed cost joins the
system's techno-economic analysis like any other unit's. The interactive demo
below runs it end to end: build the flowsheet, add the network, simulate, and
inspect the synthesized exchangers and the pinch diagram.
.. raw:: html
The :doc:`quickstart chapter ` walks through the same
example line by line, and the full :doc:`tutorial ` continues
with the pinch analysis behind it, the anatomy of the synthesized network, and
how to configure the network for a larger system.
.. grid:: 1 2 3 4
:class-row: sd-align-major-center
.. grid-item-card:: Getting Started
:text-align: center
:link: tutorial/index
:link-type: doc
:padding: 1
.. image:: _static/images/icons/getting-started_dark.png
:height: 100
:class: only-dark
:align: center
.. image:: _static/images/icons/getting-started_light.png
:height: 100
:class: only-light
:align: center
Tutorials on hensmith
.. grid-item-card:: Key Concepts
:text-align: center
:link: concepts
:link-type: doc
:padding: 1
.. image:: _static/images/icons/concepts_dark.png
:height: 100
:class: only-dark
:align: center
.. image:: _static/images/icons/concepts_light.png
:height: 100
:class: only-light
:align: center
Pinch analysis and MER network synthesis
.. grid-item-card:: API Reference
:text-align: center
:link: API/api
:link-type: doc
:padding: 1
.. image:: _static/images/icons/api_dark.png
:height: 100
:class: only-dark
:align: center
.. image:: _static/images/icons/api_light.png
:height: 100
:class: only-light
:align: center
Every public class and function
.. grid-item-card:: Contributing
:text-align: center
:link: contributing/index
:link-type: doc
:padding: 1
.. image:: _static/images/icons/contributing_dark.png
:height: 100
:class: only-dark
:align: center
.. image:: _static/images/icons/contributing_light.png
:height: 100
:class: only-light
:align: center
Development, tests, and authors
Installation
------------
Get the latest version of hensmith from
`PyPI `__. If you have an installation of
Python with pip, simply install it with:
.. code-block:: bash
$ pip install hensmith
.. note::
hensmith requires ``biosteam>=2.54.0``. Until that biosteam release is on
PyPI, install the BioSTEAM stack from GitHub HEAD first — the same commands
the hensmith continuous-integration workflow uses — and then install
hensmith without letting pip resolve its dependencies:
.. code-block:: bash
$ pip install --no-cache-dir git+https://github.com/CalebBell/fluids.git
$ pip install --no-cache-dir git+https://github.com/CalebBell/chemicals.git
$ pip install --no-cache-dir git+https://github.com/CalebBell/thermo.git
$ pip install --no-cache-dir git+https://github.com/BioSTEAMDevelopmentGroup/thermosteam.git
$ pip install --no-cache-dir git+https://github.com/BioSTEAMDevelopmentGroup/biosteam.git
$ pip install --no-deps hensmith
To get the git version, use:
.. code-block:: bash
$ git clone https://github.com/BioSTEAMDevelopmentGroup/hensmith
Or download directly from the
`GitHub page `__.
Importing hensmith binds the facility into biosteam as
``bst.HeatExchangerNetwork``, so ``import hensmith`` and
``import biosteam as bst`` can be run in either order and
``bst.HeatExchangerNetwork`` is :class:`hensmith.HeatExchangerNetwork` in both.
Citation
--------
If you use hensmith in your work, please cite it as:
Bhagwat, S. S., & Cortés-Peña, Y. R. (2026). HENSMITH: Heat Exchanger
Network Synthesis, Modeling, Integration, Thermodynamics, and Heuristics
(Version v0.1.2) [Computer software]. Zenodo.
https://doi.org/10.5281/zenodo.22416033
The pinch-analysis and network-synthesis methodology that hensmith implements
follows chapter 9 of:
Seider, W. D., Lewin, D. R., Seader, J. D., Widagdo, S., Gani, R., & Ng,
M. K. (2017). *Product and Process Design Principles*. Wiley. Heat
Exchanger Networks (Chapter 9).