What’s New¶
Discover notable new features and improvements in each release.
v0.0.10 (30.06.2026)¶
API Changes¶
The dedicated
Condensercomponent was removed. Heat-rejection units are now modelled withHeatExchanger, which decides whether a unit is dissipative or productive instead of always treating condensers as dissipative. The TESPy and Ebsilon parsers map their condensers toHeatExchangerautomatically, and legacy exports labelled"Condenser"are still loaded (mapped toHeatExchangerwith a deprecation warning).
New Features¶
A
HeatExchangeris now treated as dissipative when its rejected heat is declared a loss, i.e. when one of its outlets is listed inE_L. This lets several condensers in the same network be handled individually without a manual mapping override (closes #37).The
dissipativeflag ofHeatExchangeris now tri-state:Trueforces dissipative behavior,Falseforces productive behavior, andNone(default) decides automatically from the temperature case or theE_Lspecification.
Contributors¶
Sergio Tomasinelli (@sertomas)
</content> </invoke>
v0.0.9 (17.06.2026)¶
New Features¶
Solar thermal components for the exergy analysis of concentrating-solar-power plants:
Heliostatfield,ParabolicTroughandSolarTower. Incoming solar radiation is converted to exergy with the Petela/Spanner factor. These new components can be currently parsed only from Ebsilon models. Two examples were added (solar tower and parabolic trough). This contribution originates from the Bachelor thesis of Alexandros Breous (TU Berlin, 2025).MixerandSplitternow accept anum_branchesscaling factor, so a single modelled branch can represent several identical parallel branches (collecting and distributing headers).
Bug Fixes¶
Turbine: the main outlet is now selected as the lowest-indexed material outlet, so models with extraction ports on other connectors no longer fail.
Other Changes¶
Logging: exerpy uses a dedicated
exerpylogger instead of the root logger, so it no longer interferes with the logging of other libraries (e.g. TESPy). Its warnings are shown by default and are captured normally once an application configures logging.analyse()now runs the component balances before summing the systemE_F/E_P/E_Land performs sanity checks that surface physically impossible or suspicious results: negative exergy destruction, efficiency above 100 %, streams inE_F/E_P/E_Lthat carry no exergy, and system boundary connections missing from the fuel/product/loss definitions.A component name may be used directly in the
E_F/E_P/E_Ldefinitions; it is resolved to the component’s synthetic heat connection.Ebsilon solver messages are filtered: empty or purely numeric rows are skipped and only informative warnings are logged.
Import sorting: ruff’s isort rules were aligned with the project’s
force_single_linestyle so the two import sorters no longer conflict.
Contributors¶
v0.0.8 (03.06.2026)¶
Bug Fixes¶
Chemical exergy: trace components are now filtered out of the molar composition (fractions below
1e-6) before the pure-substance check incalc_chemical_exergy(). Mixtures carrying tiny residual species are no longer misclassified as pure substances (#26).Heat connections:
add_total_exergy_flow()now identifies theSimpleHeatExchangercomponent on whichever end of a heat connection it sits, instead of assuming the source side. The opposite end is a heat source/sink that is not part of the component dictionary (#27).
Other Changes¶
Updated ExerPy for the latest TESPy API; the minimum supported TESPy version is now
>=0.10.0(#32). The TESPy example scripts (CCPP, CGAM) were adapted accordingly.Bumped the
tespydependency pin to>=0.10.0. TESPy remains an optional dependency (the core install requires onlypandasandnumpy).Dropped support for Python 3.10. ExerPy now requires Python
>=3.11, following TESPy 0.10, which no longer supports Python 3.10.Fixed the installation links in the documentation.
Contributors¶
v0.0.7 (24.02.2026)¶
Bug Fixes¶
Fixed floating-point temperature comparison in
HeatExchangerandCondensercomponents. Added_temperature_case()helper with 0.01 K tolerance to prevent misclassification when stream temperatures are at exactly Tamb.Changed case 6 (all streams at Tamb) log level from
warningtoinfoinHeatExchangerandCondenser.
New Features¶
Added full dissipative component support for
Condenser:dis_eqs()method,is_dissipativedetection in_construct_components()andanalyse(), and NaN-safeexergoeconomic_balance().Added dissipative
HeatExchangersupport:dis_eqs()method andis_dissipativedetection in_construct_components()andanalyse().
Contributors¶
Sergio Tomasinelli (@sertomas)
v0.0.6 (12.02.2026)¶
Build & Packaging¶
Added explicit exclude rules in
pyproject.tomlfor paths that should not be distributed.Added CI verification step in the packaging workflow to check wheels for blocked paths.
Contributors¶
Sergio Tomasinelli (@sertomas)
v0.0.5 (11.02.2026)¶
Bug fixes¶
Fixed bugs in Mixer and Deaerator exergoeconomic balance equations.
Fixed Splitter exergoeconomic analysis implementation.
Fixed CycleCloser and Compressor parsing from Ebsilon.
Fixed parsing of turbines from Aspen.
Fixed
from_jsonmethod to correctly handlesplit_physical_exergyandchemical_exergyoptions.Fixed bugs in various component exergoeconomic balance and auxiliary equations.
Removed E_M, E_T or E_CH columns from result tables when not imported.
New features¶
Added
evaluate_results()method toExergoeconomicAnalysisfor ranking components by cost improvement potential.Added least-squares solver option (
allow_singular=True) for handling singular cost matrices.Added
print_dependency_report()method for diagnosing singular matrix issues.Added
check_cost_balance()method for verifying cost balance closure.
Documentation¶
Added comprehensive exergoeconomic analysis documentation with workflow guide, cost input format, and result interpretation.
Added exergoeconomic analysis section to the API documentation.
Added exergoeconomic analysis example tutorial with manually defined costs.
Testing¶
Added 55 unit tests for the
ExergoeconomicAnalysisclass.Added integration tests for
ExergyAnalysiscoveringfrom_jsonandfrom_tespyworkflows.
Examples¶
Reorganized example directory structure for exergy and exergoeconomic analysis.
Added exergoeconomic analysis example with JSON-based manual cost definitions.
Contributors¶
Sergio Tomasinelli (@sertomas)
v0.0.4 (05.02.2026)¶
Bug fixes¶
Fixed problem with exergoeconomic balance equations check.
Fixed issue in heat exchanger auxiliary equations (aux_eqs).
Minor fixes in turbomachinery components.
New features¶
Added waterfall diagram visualization for exergy analysis results.
Examples¶
Added exergoeconomic analysis example for a heat pump system.
Updated heat pump example to latest TESPy API.
Contributors¶
v0.0.3 (31.10.2025)¶
Bug fixes¶
Turbine, Pump and Compressor now consider all losses from simulation done with Ebsilon.
Substances that are not fluid under ambient conditions are now better handled in exergy calculations.
New features¶
Exergoeconomic analysis of SimpleHeatExchanger is now supported.
Documentation¶
Improved documentation for the exergy and exergoeconomic analysis modules.
Developers¶
Sergio Tomasinelli (@sertomas) — Lead Developer
Francesco Witte (@fwitte) — Contributor
Robert Müller (@rbrtmueller) — Contributor
Supervision¶
Prof. Dr.-Ing. Fontina Petrakopoulou — Project Supervisor
v0.0.2 (01.07.2025)¶
Bug fixes¶
HeatExchanger and SimpleHeatExchanger correctly parsed from Ebsilon
Documentation¶
Improved documentation for the exergoeconomic analysis module
Developers¶
Sergio Tomasinelli (@sertomas) — Lead Developer
Francesco Witte (@fwitte) — Contributor
Robert Müller (@rbrtmueller) — Contributor
Supervision¶
Prof. Dr.-Ing. Fontina Petrakopoulou — Project Supervisor
v0.0.1 (24.06.2025)¶
Initial release of ExerPy.
The exergy analysis module is fully functional and allows for comprehensive exergy analysis of thermal systems.
The exergoeconomic analysis module is in an early stage and will be further developed and tested in future releases.
Developers¶
Sergio Tomasinelli (@sertomas) — Lead Developer
Francesco Witte (@fwitte) — Contributor
Robert Müller (@rbrtmueller) — Contributor
Supervision¶
Prof. Dr.-Ing. Fontina Petrakopoulou — Project Supervisor
Acknowledgements¶
This project incorporates code originally developed by Friederike Roßberg (@FriederikeTUB)