diff --git a/CHANGELOG.md b/CHANGELOG.md index eb0b000..efb859c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,28 @@ until 1.0 the model contract may change, and every change to it is also logged i +## [0.1.0a4] - 2026-11-02 + +### Breaking changes + +- Packed-bed results change: during a charge, the fluid temperature at each height no longer overshoots and then falls by 1 K to 2 K. While the PCM at a capsule's surface melted, the capsule took up to five times less heat than the heat transfer coefficient gives; it now takes exactly that heat. The default packed bed now fits the measurements of Nallusamy et al. (2007) better at every height, and the finned-tube models move by at most 0.006 K. There is nothing to change in your code. ([#51](https://github.com/mmsg-warwick/PyTES/pull/51)) +- `pytes.experiments.step_description` is removed. As in PyBaMM, `solution.cycles[i].steps[j]` is now always the solution of `experiment.cycles[i][j]`, so read the description as `experiment.cycles[i][j].description`. A skipped step, and a cycle whose steps are all skipped, keep their place as a `pybamm.EmptySolution`. ([#54](https://github.com/mmsg-warwick/PyTES/pull/54)) + +### New features + +- PyTES plot colours, chosen to stay readable with colour blindness and led by the brand orange: the colour cycles PyTES Thermal and PyTES Thermal (dark) as matplotlib styles (`plt.style.use("pytes.thermal")`, `"pytes.thermal_dark"`) and as `pytes.plotting.THERMAL` and `THERMAL_DARK`, and the perceptually uniform colourmaps `"pytes.ember"` (sequential) and `"pytes.thaw"` (diverging), registered with matplotlib when `pytes.plotting` is imported. They are not the default yet; a new documentation page, Plot colours, explains them and the reasons behind them. The `plot` extra now needs matplotlib 3.7 or later. ([#44](https://github.com/mmsg-warwick/PyTES/pull/44)) +- New documentation pages on the models: what every model shares, and a page for each family, the finned tube and the packed bed, with the geometry, the equations and the options, illustrated with diagrams drawn in TikZ (`docs/models/diagrams/`). ([#48](https://github.com/mmsg-warwick/PyTES/pull/48)) +- A new documentation page, Parameter values, lists every parameter set and layer PyTES provides, with its values, its source and, for the materials and fluids, the temperature at which the values were taken. It is generated from the code at each build, so it always matches the values the models use. ([#50](https://github.com/mmsg-warwick/PyTES/pull/50)) + +### Improvements + +- A series of getting started tutorials, six short notebooks in `examples/getting_started/` that each show one thing: running a model, the finned-tube models, the packed-bed models, changing parameter values, plotting, and experiments. ([#47](https://github.com/mmsg-warwick/PyTES/pull/47)) + +### Bug fixes + +- The heat entering a storage through its wall is now exactly the surface flux law's heat flux, also while the material by the wall changes phase (F-056). ([#51](https://github.com/mmsg-warwick/PyTES/pull/51)) + + ## [0.1.0a3] - 2026-10-24 ### Breaking changes diff --git a/CITATION.cff b/CITATION.cff index 72dc5fa..a9748cc 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -18,8 +18,8 @@ repository-code: "https://github.com/mmsg-warwick/PyTES" url: "https://pytes.readthedocs.io" doi: 10.5281/zenodo.23438443 license: BSD-3-Clause -version: 0.1.0a3 -date-released: 2026-10-24 +version: 0.1.0a4 +date-released: 2026-11-02 keywords: - thermal energy storage - heat battery diff --git a/changelog.d/44.feature.md b/changelog.d/44.feature.md deleted file mode 100644 index 0eb9b4d..0000000 --- a/changelog.d/44.feature.md +++ /dev/null @@ -1 +0,0 @@ -PyTES plot colours, chosen to stay readable with colour blindness and led by the brand orange: the colour cycles PyTES Thermal and PyTES Thermal (dark) as matplotlib styles (`plt.style.use("pytes.thermal")`, `"pytes.thermal_dark"`) and as `pytes.plotting.THERMAL` and `THERMAL_DARK`, and the perceptually uniform colourmaps `"pytes.ember"` (sequential) and `"pytes.thaw"` (diverging), registered with matplotlib when `pytes.plotting` is imported. They are not the default yet; a new documentation page, Plot colours, explains them and the reasons behind them. The `plot` extra now needs matplotlib 3.7 or later. diff --git a/changelog.d/47.improvement.md b/changelog.d/47.improvement.md deleted file mode 100644 index 7716f1d..0000000 --- a/changelog.d/47.improvement.md +++ /dev/null @@ -1 +0,0 @@ -A series of getting started tutorials, six short notebooks in `examples/getting_started/` that each show one thing: running a model, the finned-tube models, the packed-bed models, changing parameter values, plotting, and experiments. diff --git a/changelog.d/48.feature.md b/changelog.d/48.feature.md deleted file mode 100644 index ea5e696..0000000 --- a/changelog.d/48.feature.md +++ /dev/null @@ -1 +0,0 @@ -New documentation pages on the models: what every model shares, and a page for each family, the finned tube and the packed bed, with the geometry, the equations and the options, illustrated with diagrams drawn in TikZ (`docs/models/diagrams/`). diff --git a/changelog.d/50.feature.md b/changelog.d/50.feature.md deleted file mode 100644 index 20643b4..0000000 --- a/changelog.d/50.feature.md +++ /dev/null @@ -1 +0,0 @@ -A new documentation page, Parameter values, lists every parameter set and layer PyTES provides, with its values, its source and, for the materials and fluids, the temperature at which the values were taken. It is generated from the code at each build, so it always matches the values the models use. diff --git a/changelog.d/51.breaking.md b/changelog.d/51.breaking.md deleted file mode 100644 index b2bb9a0..0000000 --- a/changelog.d/51.breaking.md +++ /dev/null @@ -1 +0,0 @@ -Packed-bed results change: during a charge, the fluid temperature at each height no longer overshoots and then falls by 1 K to 2 K. While the PCM at a capsule's surface melted, the capsule took up to five times less heat than the heat transfer coefficient gives; it now takes exactly that heat. The default packed bed now fits the measurements of Nallusamy et al. (2007) better at every height, and the finned-tube models move by at most 0.006 K. There is nothing to change in your code. diff --git a/changelog.d/51.fix.md b/changelog.d/51.fix.md deleted file mode 100644 index b0e3f14..0000000 --- a/changelog.d/51.fix.md +++ /dev/null @@ -1 +0,0 @@ -The heat entering a storage through its wall is now exactly the surface flux law's heat flux, also while the material by the wall changes phase (F-056). diff --git a/changelog.d/54.breaking.md b/changelog.d/54.breaking.md deleted file mode 100644 index 2374f16..0000000 --- a/changelog.d/54.breaking.md +++ /dev/null @@ -1 +0,0 @@ -`pytes.experiments.step_description` is removed. As in PyBaMM, `solution.cycles[i].steps[j]` is now always the solution of `experiment.cycles[i][j]`, so read the description as `experiment.cycles[i][j].description`. A skipped step, and a cycle whose steps are all skipped, keep their place as a `pybamm.EmptySolution`. diff --git a/pyproject.toml b/pyproject.toml index 8a05351..91f07cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "pytes-thermal" -version = "0.1.0a3" +version = "0.1.0a4" description = "Models and tools for heat batteries (thermal energy storage), built on PyBaMM" readme = "README.md" license = "BSD-3-Clause" diff --git a/uv.lock b/uv.lock index f6071e7..65d2747 100644 --- a/uv.lock +++ b/uv.lock @@ -3144,7 +3144,7 @@ wheels = [ [[package]] name = "pytes-thermal" -version = "0.1.0a3" +version = "0.1.0a4" source = { editable = "." } dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },