.. 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 -- or, with
``stream_splitting=True``, splits streams where MER needs it -- 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).