Skip to main content
https://img.shields.io/pypi/v/carbatpy.svg Documentation Status

carbatpy is a Python package for modelling Carnot batteries (thermal energy storage) based on heat pumps for charging, organic Rankine cycles (ORC) for discharging, and different storage concepts.

Currently, the main focus is on steady-state thermodynamic cycle simulation and evaluation (efficiency, costs, and optimisation). Time-dependent models are planned.

Documentation

Requirements (mandatory)

REFPROP is strongly recommended for meaningful use of the package.

  • REFPROP (NIST): a valid license is required.

  • Python: >= 3.10, <3.14

In addition, typical scientific Python packages are used (NumPy, SciPy, pandas, …); see pyproject.toml for the full list.

Optional components

carbatpy can optionally interface with additional tools. These are not required to install or import carbatpy. When available, they can be selected explicitly in various functions (they are not enabled automatically).

TREND

If TREND is installed and you want to use it for thermodynamic properties, enable it in carbatpy.cb_config.py by setting the dictionary TREND accordingly (example):

  • {"USE_TREND": True, "TREND_DLL": "...", "TREND_PATH": "..."}

In addition, the relevant TREND paths typically need to be available as system environment variables (see documentation for details). TREND was developed and is authored by Prof. Roland Span and his co-workers (Chair of Thermodynamics, Ruhr University Bochum).

Note: currently, TREND support is limited to thermodynamic properties (no transport properties).

License note: TREND is licensed under GPLv3+. TREND is not distributed with carbatpy; it must be installed separately. Users are responsible for complying with the TREND license.

Machine models (SPP 2403)

carbatpy can optionally interface with detailed machine-model packages that are developed and maintained in separate repositories and may have their own license and citation requirements. carbatpy itself remains usable without them.

Available add-ons (examples)

  • spp_machines (turbomachinery/compressor design tools) Authors: Steffen Folkers, Matthias Heselmann, Dieter Brillert, Andreas Brümmer, Sebastian Schuster. Availability: internal/private repository (on request) License: see repository

  • incept-processmaps (inverse design process maps for compressors) Authors: Matthias Heselmann, Steffen Folkers, … DOI: https://doi.org/10.17877/TUDODATA-2025-MFV1200A License: MIT with attribution requirement (see repository / CITATION)

  • expander-liege (semi-empirical scroll expander model, Liège) Authors: Elise Neven (University of Liège), Basile Chaudoir (University of Liège), Vincent Lemort. Adaptation/packaging for carbatpy: Philipp Dreis (University of Duisburg-Essen) Upstream: LaboThapPy community (https://github.com/PyLaboThap/LaboThapPy/tree/main) License: Apache-2.0 (upstream); see the add-on repository for details

Installation (internal users)

If you have access to the private repositories, you can install the add-ons via Poetry groups:

  • all machine add-ons: poetry install --with machines

  • only selected add-ons: poetry install --with processmaps (etc.)

If Git access is not available, internal wheels can be provided as an alternative.

External users

External users can install base carbatpy normally and request the machine-model add-ons from the respective authors/maintainers.

Package structure

The main functionality is implemented in the subpackages under carbatpy.models:

  • cb_fluids: Fluid mixture properties (REFPROP; optional: TREND for thermodynamic data)

  • components: Models of individual devices such as compressors, turbines, heat exchangers, throttles, etc.

  • coupled: Coupled component models forming thermodynamic cycles and Carnot batteries

Features

  • Steady-state calculation of heat pumps, ORCs, and Carnot batteries

  • Optimization of pressure levels and working fluid mixture composition for improved second-law efficiency

  • Cost estimation based on correlations from the literature

  • Reading cycle configurations and parameters from YAML input files

  • Quasi steady-state evaluation of efficiencies and costs

Roadmap / TODO

  • Time-dependent (dynamic) cycle simulation

  • Further validation and extended component models

Credits

Contact

Burak Atakan, University of Duisburg-Essen, Germany

  • atakan.thermodynamik.duisburg [at] gmail.com

License

  • MIT License

Third-party notices

carbatpy can interface with optional third-party add-ons which may have their own license and citation requirements. See THIRD_PARTY_NOTICES.rst.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carbatpy-0.7.2.post1.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carbatpy-0.7.2.post1-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file carbatpy-0.7.2.post1.tar.gz.

File metadata

  • Download URL: carbatpy-0.7.2.post1.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.0 CPython/3.12.10 Windows/11

File hashes

Hashes for carbatpy-0.7.2.post1.tar.gz
Algorithm Hash digest
SHA256 d47025bb0da5629e5fa66a6635c12fde3215ee4e5940dff69afa9492f73b7200
MD5 3438241733839bffd74a4231a12e17aa
BLAKE2b-256 761461650a538fb1c63c3adb0d5144d9ee2069e64614d852b637d6d39d1694ee

See more details on using hashes here.

File details

Details for the file carbatpy-0.7.2.post1-py3-none-any.whl.

File metadata

  • Download URL: carbatpy-0.7.2.post1-py3-none-any.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.0 CPython/3.12.10 Windows/11

File hashes

Hashes for carbatpy-0.7.2.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 6d7cf0a430871593dffe8034ba8bf69a295246afc243e04e425c654fe7caceb1
MD5 31dfa4de1b5ac33298c9f407e93ae4d3
BLAKE2b-256 8f45c8d86676502ec4f7b2a9833729a77ad376ee2cac2402d43484d0b48d5dfa

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.7.2.post1 This release

2 files

0.7.2

2 files

0.7.1.post1

2 files

0.7.1

2 files

0.7.0.post2

2 files

0.7.0.post1

2 files

0.6.7

2 files

0.6.6.post3

2 files

0.6.6.post2

2 files

0.6.6

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.5.6.post4

2 files

0.5.6.post2

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4.post2

2 files

0.5.4.post1

2 files

0.5.4

2 files

0.5.3.post4

2 files

0.5.3.post3

2 files

0.5.3.post2

2 files

0.5.3.post1

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1.post4

2 files

0.5.1.post3

2 files

0.5.1.post2

2 files

0.5.1.post1

2 files

0.5.1

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1.post3

2 files

0.4.1.post2

2 files

0.4.1.post1

2 files

0.4.1

2 files

0.4.0

2 files

0.3.12

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

1 file

0.1.3

2 files

0.1.2

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page