History

0.6.6.post4 (2026-05-21), P.Dreis

  • Optimization documentation added and changed

  • Utilities.rst added to toctree

  • Largely resolved sphinx doc build warnings

  • get_cost_instance moved from init file to utils cost_calculations

0.6.6.post3 (2026-04-21), P.Dreis

  • Deleted tox.ini and travis.yaml (They were using setup.py and seemed outdated. Everything can be replaced by .gitlab-ci.yaml)

  • Cleaned up __init__.py files from obsolete comments

  • Changed expander Liege add-on path

0.6.6.post2 (2026-04-01), P.Dreis

  • Deleted psutil imports from the optimization scripts and added it to the helpers

  • Added tests for pymoo DE and NSGA2 optimization

  • Deleted pyfluids import (was used by SPP compressor in prior versions)

  • Added psutil and pymoo to the pyproject.toml

0.6.6.post1 (2026-03-24), P.Dreis

  • Deleted one optimization script, which was only used for the masters thesis

  • Added docstrings to optimization functions and classes

  • Added type annotations

0.6.6 (2026-03-23), A.Welp

  • feat: correlations for zeotropic fluid condensation (pressure loss and heat transfer)

  • feat: new structure for correlations, extendable

  • feat: new geometry (monoblock) for heat exchanger available

  • fix: removed not-maintained and not used HeatExchanger functionalities

  • test: edited class_he tests

0.6.5 (2026-03-03), A.Welp

  • feat: implement custom fluid additionally to REFPROP and TREND

  • example: jupyter notebook with examples for custom fluid

0.6.4 (2026-03-02), A.Welp

  • feat: liquid/vapour phase composition calculation now implemented via TREND

  • fix: TREND now returns Q_mass, until now the value was erroneous for zeotropic mixtures

  • test: added test case for liq_x, vap_v, q_mass for TREND

0.6.3 (2026-03-02), P.Dreis

  • feat: added optimization scripts (author: P. Dreis) for carnot battery optimizations with NSGA2 (multi-objective) and with differential evolution (opti_de, single objective). All in the new ‘optimizations’ folder.

0.6.2 (2026-02-05)

  • feat: internal users can install three optional machine-model add-ons * bundle: poetry install --with machines * selective: e.g. poetry install --with processmaps

  • docs: clarify that machine-model repos are private; wheels are provided internally as fallback

  • chore: harmonise Python version support to >=3.10,<3.14

  • chore: (if true) update CoolProp constraint to allow v7

  • refactor: faster fluid-property calls in machine models (batched calls / cb_fluid support)

0.6.1.post1 (2026-01-26)

  • feat: Added expander Liege (LaboThapPy) and process maps (from UDE and TU Dortmund)

  • docs: add citation / third-party notices for process maps and Liege model.

  • feat: Added tests for the machine models

  • refactor: flowmachine class from comp.py in flowmachine_comp.py

0.6.1 (2026-01-19), Dreis

  • Be careful: comp.py fluid parameters actually work only with Refprop,

  • TODO: io_utils and yaml file must be changed for accepting and using TREND parameters!

  • Creates a fluid register which is searched before initializing a new fluid

  • Fixed issue with main comp.py

  • Added expander Morandin for CAPEX excel sheet from the same publication as the other morandin correlations

0.6.0 (2026-01-19), Welp

  • BREAKING: old TREND dictionary not accepted anymore due to ambiguous fluid and comp usage

  • feat: TREND now callable via init_fluid

  • refactor: DEFAULT structure in fluid_props

  • test: added test for fluid_props and TREND

  • chore: added TREND to Jupyter notebook

0.5.7 (2026-01-16)

  • feat: added option of using REFPROPFunctionLibrary

  • test: added test for fluid_props incl. REFPROPFunctionLibrary

  • chore: added example Jupyter notebook

0.5.6.post4 (2026-01-12)

  • fix: Expander boolean was not correct

0.5.6.post3 (2026-01-09)

  • fix: slight change in comp needed to run without spp_machines

0.5.6.post2 (2026-01-09)

  • doc: improved documentation with respect to optional features

  • refactor: removed all folders with code on turbo machines, also in the history (e.g.0.6.0.devXX) Removed machine model components due to licensing; optional external package spp-machines supported.

  • refactor: new folder optional with spp_machines. If installed they can be used as before.

  • refactor: Mass flow in comp.py of the RadialCompressor is now from the Design Tool

  • refactor: Deleted coupled/work_in_progress

  • refactor: Deleted optimization in heat_pump_comp as preparation for integration of pymoo optimizations

  • feat: Added verbose parameter to the components on heat_pump_comp.py and orc_comp.py.

  • feat: Added verbose as a parameter to all_costs function in orc_comp.py and Start.calculate

  • refactor: Iteration for the compressor now uses power from config for convergence

  • fix: removed toml import from conf.py for readTheDocs (it failed)

  • fix: added further deepcopy to isolate states and warnings

  • fix: start-subcooling was not checked properly, corrected now.

  • CI/refactor: removed poetry lock from CI

  • feat: Machine models from S.Folkers/Prof. D.Brillert (Univ. Duisburg-Essen) included.

  • refactor: removed pressure check for throttle

  • fix: in cb_comp, the copying is changed to deepcopy, because the results were influenced by the run before. The same for hp_comp and orc_comp.

0.5.5 (2026-01-04)

  • fix: in cb_comp, the copying is changed to deepcopy, because the results were influenced by the run before. The same for hp_comp and orc_comp.

0.5.4.post2 (2026-01-02)

  • fix: key error for orc and heat_pump pressure ratios corrected.

0.5.4.post1 (2025-12-27)

  • fix: throttle pressures were not checked correctly, added some print-outs

  • feature: orc and heat_pump pressure ratios are checked and a warning is added if wrong.

0.5.4 (2025-11-29)

  • refactor: direct power input to heat_pump (comp) function removed; this is read in via the input dictionary

  • refactor: unified cost calculation and results output (for costst) for heat_pump and ORC.

0.5.3.post4 (2025-11-27)

  • fix: TREND viscosity units corrected

0.5.3.post3 (2025-11-18)

  • fix: costs for turbine were calculated with negative power

  • fix: Output value in heat exchanger, when crossing corrected

  • fix: expander output for orc_comp was not stored

0.5.3.post2 (2025-10-14)

  • feat: costs are also calculated in orc_comp; but the turbine cost function in the yaml file is not correct, it is one for compressors..

0.5.3.post1 (2025-10-14)

  • fix: several function calls for the heat_pump_comp and orc_comp corrected.

0.5.3 (2025-08-19)

  • refactor: BREAKING for comp.output the ‘m_dot’ was either a float (FlowDevice, Start) or a dictionary (heat exchanger), now it is always a dictionary with the fluid name as key.

  • feat: function entropy_production calculates the entropy production rate and the exergy destruction rate of each component. At the moment it is called at the end of calculate() and writes the results to the self.output dictionary.

0.5.2 (2025-08-16)

  • feat: investment cost estimations for heat exchanger, throttle, pump, and compressor/expander included for comp (estimate_costs()) using the Towler approach (a + b*x**c).

  • feat: Storage volumes and cost estimations are included (calculate_volume()). The storage time (time) must be fixed and can be prescribed via the configuration yaml file (process/time). Alternatively the thermal energy can be fixed. For the costs only one fixed tank geometry is implemented. It can be varied using cost_name as an argument.

  • feat: An Excel file with the cost parameters is included are used for the instance cost_inst of CAP_methods() which can be used globally. So the Excel file is only read once, when the package is loaded.

  • doc: The usage of the cost estimations and the volume calculations is seen at the end of the comp.py script. Further documentation will follow.

0.5.1.post3 and post4 (2025-08-13)

  • fix: the correction of orc-start points was wrong.

  • feature: heat pumpump optimization results are all stored in a directory. The name begins with datetime.

0.5.1.post1 and post2 (2025-08-12)

  • feature: added shgo (from scipy.optimize) to the methods for cycle optimization. Does not work too well.

0.5.1 (2025-08-12)

  • refactored: cycle outputs are dictionaries now (not lists)

0.5.0 (2025-08-11)

  • doc: added some documentation. As starting point check cb_comp.

  • feat: the carnot battery optimization results are stored in a specified directory with date-time at the beginning. src/carbatpy/examples/opti_cb_comp.py

  • feat: added a script for reading the CB-optimization results from added directory. src/carbatpy/utils/read_cb_opti.py

0.5.0.dev0 (2025-08-07)

  • feature: Optimization for orc, heat pump and carnot battery included. They are found in the folder ‘examples’(e.g.:src/carbatpy/examples/opti_hp_comp.py).

0.4.2 (2025-08-01)

  • feature: example scripts for orc and heat pump cycles in folder modelscoupledwork_in_progress, which use the component implementation in comp.py and which can be the basis for pressure and composition optimizations. (names ending on _comp) The configuration, meaning most fixed values, fluids, components etc., are defined in a yaml file.

0.4.2.pre1 (2025-07-30)

  • feature: new comp script for components with unified class for all components. Includes two scripts for orc (unfinished) and heat pump using comp.

0.4.1.post2 (2025-07-15, corrected)

  • fix: corrected orc-script due to changed return values of the pump

0.4.1.post2 (2025-07-15)

  • feature, Trend: a dictionary entry for TREND named ‘TREND_SUB_PATH’ included. if it is not None, this sub-path defining a specific species model will be appended to the base path.

  • refactor: renamed models/fluids to models/cb_fluids to avoid problems with the namespace of the package ht

0.4.1.post1 (2025-04-07)

  • fix, Trend: set_moles needs to be called each time before ALLPROPS or TREND_EOS is used. (A.Welp)

0.4.1 (2025-03-26)

  • fix: TREND conversion from mole fractions to mass fractions was inconsistent when called more than once.

  • TREND: (nearly) all properties of the dictionary are now passed to TREND, including the path with subdirectory.

0.4.0 (2025-03-14)

  • TREND transport properties included, the default model for mixtures is ECS

  • in CB_DEFAULTS: TRANS_TREND_MIX is set, but other models can be set by hand

0.3.12 (2025-03-14)

  • Feature: BREAKING TREND 6_beta implemented, will not work with TREND5

0.3.11 (2025-01-24)

  • Feature: specific exergy destruction calculated also for throttle, compressor etv. written in the output dictionary.

  • Feature: For the heat pump cycle device specific exergy losses are evaluated and written into the evaluation dictionary (.evaluation[‘exergy_destruct_device’])

  • In the heat pump calculations the temperature of the lowest storage is sometimes changed, to meet the other constraints (this was already before). Now a warning is written into .warning, this can be checked by the user.

  • The heat pump optimization script “carbatpysrccarbatpyutilsopt_hp_px_dtsh_test.py” was updated to show the updates.

0.3.8.post5 (2025-01-03):

  • Fix: th evaporator output state of the simple heat pump was set wrongly

0.3.8 (2024-08-19):

  • Feature: New class Surrogate for surrogate model calls with scikit-learn

  • Feature: heat transfer coefficients calculated using ht

  • Feature: heat_exchanger class can calculate heat exchangers e.g. with the NTU method and by solving the ODE.

  • Feature: ((helpers create parameter set with SALib and call model incl. multiprocessing)

0.3.7b1 (2024-07-30)

  • Feature: set_state can return an instance of FluidState, when setting the option output=”FluidState”. The default return value is the state (a list with values).

0.3.7b ( 2024-07-29)

  • Doc: New examples folder with notebooks and example script(s).

  • Doc: Some examples are copied to docs/examples, because redthedocs did not show them otherwise.

0.3.7a (2024-07-29)

  • Feature: Added Pr again to the Transport properties (only implemented for Refprop at the moment)

  • Refactor: If a fluid property is not implemented (as conductivity for a two phase fluid) a NotImplemetedError is thrown.

0.3.6a (2024-07-28)

  • fixing installation problems on other computers.

  • Fixing: json and yaml files in data are now included in the distribution.

  • Removing non-general file names.

0.3.4a-c (2024-07-28)

  • A class for getting and storing all variables of a class as json or yaml imlpemented.

  • Heat Pump Class restructured. Can be run with all inputs from a file.

  • Script for optimization of working fluid composition and pressures included.

  • fix,refactor: evaluated fluid properties refactored, depends on values in cb_config.pyoptimization

  • optimization of heat pump refactored

  • heat pump tests rewritten

  • CARBATPY_DIR must no longer be set (but you can use it for customization)

0.3.3 (2024-07-22)

  • Feature: if q is given for set_state of Fluid, the full REFPROPdll is used automatically, so that q is ALLWAYS in (kg/kg):

import carbatpy as cb
FLUID = "Propane * Pentane"

comp = [.5, .5]
myFluid = cb.init_fluid(FLUID, comp)

quality = 0.5       # is interpreted by carbatpy as mol/mol to calculate state
# but given back in string as kg/kg
st0 = myFluid.set_state([300., quality], "TQ")
myFluid.print_state()
print (myFluid.val_dict)

0.3.2 (2024-07-21)

  • feature: the molar composition of both phases (x/y/z) can be calulated and stored with REFPROP. Example:

import carbatpy as cb
FLUID = "Propane * Pentane"

comp = [.5, .5]
myFluid = cb.init_fluid(FLUID, comp)

quality = 0.5       # is interpreted by carbatpy as mol/mol to calculate state
# but given back in string as kg/kg
st0 = myFluid.set_state([300., quality], "TQ", dll_select="dll")
myFluid.print_state()
print (myFluid.val_dict)
  • feature: new attribute var_dict for Fluid with the dictionary of all calculated properties.

0.3.1 (2024-07-19)

Feature: with refprop the input mixtures can also be set in mass frections, setting the Flag iMass = 1.

0.3.0 (2024-07-18)

Refactor: New Class FlowDevice replaces compressor, throttle and pump

0.2.0 (2024-07-11)

  • TREND included for thermodynamic property evaluations (licence & copy needed!)

  • Installation now with poetry

  • A simple Carnot battery with two double-tank storages can be calculated

    without property/mixture optimization

0.1.1 (2024-02-04)

  • ORC and HP is working

  • Fluid screening included for mixtures

  • everything only with REFPROP (licence & copy needed!)

0.1.0 (2023-10-14)

  • we started.