Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2d5f775
add failing energy-consistency tests for the HXN problem table
sarangbhagwat Aug 22, 2026
08e873c
fix HXN problem table: evaluate streams at real T, clip to [H_in, H_o…
sarangbhagwat Aug 22, 2026
bcc5627
harden HXN problem table: endpoint enthalpies by index, traceable VLE…
sarangbhagwat Aug 22, 2026
446e7e1
fix HXN problem table cascade: check heat arriving at a boundary befo…
sarangbhagwat Aug 23, 2026
bbea705
keep HXN problem-table energy identity exact when rounding makes cold…
sarangbhagwat Aug 23, 2026
51a38fb
add pinch diagram plot for HeatExchangerNetwork
sarangbhagwat Aug 23, 2026
bd508d7
label pinch diagram streams with their unit, auxiliary unit, and stre…
sarangbhagwat Aug 23, 2026
60fd330
add legend to the HXN pinch diagram
sarangbhagwat Aug 23, 2026
ba7eb6b
fix pinch diagram utility colors; review fixes
sarangbhagwat Aug 23, 2026
59864f4
align pinch diagram stream labels with the indices, above the exchang…
sarangbhagwat Aug 23, 2026
1ab689f
nudge pinch diagram stream labels up to read in line with the indices
sarangbhagwat Aug 23, 2026
38152bf
add synthetic HXN regression tests guarding energy balance, MER targe…
sarangbhagwat Aug 23, 2026
75f1402
fix HXN synthesis for non-equilibrium inlets, stale network ordering,…
sarangbhagwat Aug 23, 2026
1d882c4
address review: exact pinch states at end temperatures, HXN-specific …
sarangbhagwat Aug 23, 2026
ac40594
migrate heat exchanger network to the hensmith package
sarangbhagwat Aug 24, 2026
62d3955
address PR #257 review: harden lazy hensmith re-export, bump to 2.54.…
sarangbhagwat Aug 24, 2026
210a916
merge origin/master into migrate-hxn-to-hensmith
sarangbhagwat Sep 4, 2026
7ff6965
replace the lazy hensmith re-export with an eager import, per PR #257…
sarangbhagwat Sep 4, 2026
18154d7
update submodule
yoelcortes Sep 4, 2026
2df7965
update Phi thermosteam
yoelcortes Sep 4, 2026
bb57bce
remove unused code
yoelcortes Sep 5, 2026
ef43e03
update thermo doc
yoelcortes Sep 5, 2026
4371b34
update docs
yoelcortes Sep 5, 2026
8f3e227
minor enhancements
yoelcortes Sep 5, 2026
48ed743
Merge branch 'migrate-hxn-to-hensmith' of https://github.com/BioSTEAM…
yoelcortes Sep 5, 2026
0ca8499
add structure for future extensions
yoelcortes Sep 5, 2026
0267b02
keep docs consice
yoelcortes Sep 5, 2026
fa61c73
add hensmith as submodule for documentation
yoelcortes Sep 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ jobs:
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/Bioindustrial-Park.git
pip install --no-cache-dir --no-deps git+https://github.com/BioSTEAMDevelopmentGroup/hensmith.git
pip install -r requirements_test.txt
pip install --no-cache-dir git+https://github.com/QSD-Group/QSDsan.git
pip install --no-cache-dir git+https://github.com/QSD-Group/EXPOsan.git
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
[submodule "How2STEAM"]
path = How2STEAM
url = https://github.com/BioSTEAMDevelopmentGroup/How2STEAM.git
[submodule "hensmith"]
path = hensmith
url = https://github.com/BioSTEAMDevelopmentGroup/hensmith.git
23 changes: 19 additions & 4 deletions biosteam/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

"""
from __future__ import annotations
__version__ = '2.53.11'
__version__ = '2.54.0'

#: Chemical engineering plant cost index (defaults to 567.5 at 2017).
CE: float = 567.5
Expand Down Expand Up @@ -79,14 +79,29 @@ def njit(*args, **kwargs):
from . import report
from . import _settings

__all__ = (
__all__ = [
'Unit', 'PowerUtility', 'UtilityAgent', 'HeatUtility', 'Facility',
'utils', 'units', 'facilities', 'wastewater', 'evaluation', 'Chemical', 'Chemicals', 'Stream',
'MultiStream', 'settings', 'exceptions', 'report', 'units_of_measure',
'process_tools', 'preferences', *_system.__all__, *_flowsheet.__all__,
'process_tools', 'preferences', *_system.__all__, *_flowsheet.__all__,
*_tea.__all__, *units.__all__, *facilities.__all__, *wastewater.__all__,
*evaluation.__all__, *process_tools.__all__, *_module.__all__,
)
]

# %% Load premire biosteam extensions which offer comprehensive simulation capabilities.

# Add heat exchanger network synthesis capabilities from hensmith library.
try:
import hensmith
except ModuleNotFoundError as error:
if error.name != 'hensmith': raise
else:
del hensmith
__all__.append('HeatExchangerNetwork')

# Future extensions can be added here.

# %% Non-essential representation features.

def nbtutorial(dark=False):
global print_error
Expand Down
5 changes: 4 additions & 1 deletion biosteam/_unit.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,10 @@ def __init_subclass__(cls,
name = cls.__name__
if hasattr(bst, 'units') and hasattr(bst, 'wastewater') and hasattr(bst, 'facilities'):
# Add 3rd party unit to biosteam module for convenience
if name not in bst.units.__dict__:
if isinstance(cls, bst.Facility):
if name not in bst.facilities.__dict__:
bst.facilities.__dict__[name] = cls
elif name not in bst.units.__dict__:
bst.units.__dict__[name] = cls
if name not in bst.__dict__:
bst.__dict__[name] = cls
Expand Down
8 changes: 5 additions & 3 deletions biosteam/facilities/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
from ._cleaning_in_place import *
from ._refrigeration_package import *
from ._fire_water_tank import *
from .hxn import *
from .systems import *

from . import _chemical_capital_investment
Expand All @@ -30,7 +29,6 @@
from . import _cleaning_in_place
from . import _refrigeration_package
from . import _fire_water_tank
from . import hxn
from . import systems

__all__ = (
Expand All @@ -44,6 +42,10 @@
*_cleaning_in_place.__all__,
*_refrigeration_package.__all__,
*_fire_water_tank.__all__,
*hxn.__all__,
*systems.__all__,
)

# HeatExchangerNetwork lives in the hensmith package and is bound into this
# namespace by hensmith/__init__.py once biosteam has finished initializing
# (see the end of biosteam/__init__.py). It must stay out of __all__: biosteam
# star-imports this module before hensmith can bind it.
20 changes: 0 additions & 20 deletions biosteam/facilities/hxn/__init__.py

This file was deleted.

Loading
Loading