This release is a pre-release and may not be stable for production use.
PyTES
PyTES (Python Thermal Energy Storage) is a library of models and tools for thermal energy storage (also known as heat batteries), built on PyBaMM. What PyBaMM is to electrochemical batteries, PyTES aims to be to thermal energy storage: a set of validated models that share one interface, so that designs compare like for like.
PyTES covers storage in which a heat transfer fluid flows through or around a separate storage medium, such as a phase-change material (PCM) or a sensible solid. Every model is an ordinary PyBaMM model, so PyBaMM's simulations, solvers and plots work on it directly.
Alpha. The model contract may still change; every change is logged in
docs/design/findings.md.
📦 Installation
pip install --pre pytes-thermal # models and toolkit
pip install --pre "pytes-thermal[plot]" # plus the standard plots (matplotlib)
The package is pytes-thermal on PyPI and is imported as pytes. --pre is needed while
PyTES only has alpha releases.
PyTES supports every Python version PyBaMM supports (3.10 to 3.15).
🚀 Quick start
import pybamm
import pytes
model = pytes.PackedBedModel() # or pytes.SharpFrontModel(), pytes.MushModel()
solution = pybamm.Simulation(model).solve([0, 3600])
print(solution["Outlet temperature [degC]"].entries[-1])
The documentation, with a getting-started guide, the API reference and the example notebooks, is at pytes.readthedocs.io.
🔥 Models
| Family | Models | Storage |
|---|---|---|
| Finned tube | SharpFrontModel, MushModel |
PCM around tubes with metal fins (homogenised or resolved) |
| Packed bed | PackedBedModel |
a bed of spherical PCM capsules |
Every model takes options={"storage along flow path": "averaged"} for a faster variant
with one storage cross-section standing for the average along the flow, and the packed bed
takes options={"storage element": "lumped"} for capsules at a uniform temperature. All
models share their outputs (power, energies, inlet and outlet temperatures, all in SI units
with °C, kW and kWh twins), their experiments, and an exact energy balance, checked by a
common conformance suite.
🧰 Toolkit
- Experiments (
pytes.experiments): constant inputs or constant power, with terminations and cycles. - Post-processing (
pytes.energy_between) and standard plots (pytes.plotting). - Materials and fluids, analytical benchmarks (
pytes.validation) and the conformance checks (pytes.conformance), importable for your own PyBaMM models. - Composition (
pytes.ComposedModel): build a model from PyTES submodels, e.g. to try a new heat transfer law.
📓 Examples
Notebooks in examples/: the finned-tube and
packed-bed models, the lumped capsule, experiments, composing models, analytical validation, and a design study
comparing the two families. They are also
rendered in the documentation.
📐 Design
The design decisions, the model contract and the log of changes are in
docs/design/.
📖 Citing PyTES
If you use PyTES in your work, please cite it: the metadata are in
CITATION.cff, and GitHub's
"Cite this repository" button gives the reference in BibTeX or APA. Each release is archived
on Zenodo with its own DOI; 10.5281/zenodo.23438443
cites all versions and resolves to the latest.
🤝 Contributing
Contributions are welcome: see CONTRIBUTING.md
for the workflow, the conventions and how to add a model.
⚖️ Licence
BSD 3-Clause, see LICENSE.
Metadata
Release files for pytes-thermal 0.1.0a3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pytes_thermal-0.1.0a3.tar.gz | 681.6 kB | With provenance | Details for pytes_thermal-0.1.0a3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pytes_thermal-0.1.0a3-py3-none-any.whl | Python 3 | none | any | Details for pytes_thermal-0.1.0a3-py3-none-any.whl |
Total release size: 772.1 kB
Release files / pytes_thermal-0.1.0a3.tar.gz
| Download URL | pytes_thermal-0.1.0a3.tar.gz |
|---|---|
| Size | 681.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b099ff5387e5e8df6c367cf5faa4157916e0bb7572988de1278ff0e50895384c
|
|
BLAKE2b-256 checksum How to use checksums |
3433e9cd1bf956352bac9a574d2ed5d671761e8976cc9e99c44f757a474c59cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / pytes_thermal-0.1.0a3-py3-none-any.whl
| Download URL | pytes_thermal-0.1.0a3-py3-none-any.whl |
|---|---|
| Size | 90.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4bb922d7dc2dc6956e8ccc42ef3aa798056b48299b64ec2cff7438e9c01437fd
|
|
BLAKE2b-256 checksum How to use checksums |
8135b1cde547bf299ba14d2c05cca0fea24a230e26e84775c870e3be4edb130c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logSecurity for pytes-thermal 0.1.0a3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pytes_thermal-0.1.0a3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.