Skip to content

Commit 1f3fb2b

Browse files
Merge pull request #771 from pybop-team/25.6
Release v25.6
2 parents 0a55c30 + 21900ee commit 1f3fb2b

File tree

92 files changed

+4535
-1323
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+4535
-1323
lines changed

.all-contributorsrc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,15 @@
159159
"contributions": [
160160
"code"
161161
]
162+
},
163+
{
164+
"login": "vpratz",
165+
"name": "Valentin Pratz",
166+
"avatar_url": "https://avatars.githubusercontent.com/u/112951103?v=4",
167+
"profile": "https://https://github.com/vpratz",
168+
"contributions": [
169+
"example"
170+
]
162171
}
163172
],
164173
"contributorsPerLine": 7,

.github/workflows/test_on_pull_request.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
strategy:
3838
fail-fast: false
3939
matrix:
40-
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
40+
os: [ubuntu-latest, windows-latest]
4141
python-version: ["3.12"]
4242

4343
name: Integration tests (${{ matrix.os }} / Python ${{ matrix.python-version }})
@@ -90,7 +90,7 @@ jobs:
9090
strategy:
9191
fail-fast: false
9292
matrix:
93-
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
93+
os: [ubuntu-latest, windows-latest, macos-14]
9494
python-version: ["3.12"]
9595

9696
name: Test examples (${{ matrix.os }} / Python ${{ matrix.python-version }})

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ci:
44

55
repos:
66
- repo: https://github.com/astral-sh/ruff-pre-commit
7-
rev: "v0.11.2"
7+
rev: "v0.12.3"
88
hooks:
99
- id: ruff
1010
args: [--fix, --show-fixes]

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,26 @@
88

99
## Breaking Changes
1010

11+
# [v25.6](https://github.com/pybop-team/PyBOP/tree/v25.6) - 2025-07-16
12+
13+
## Features
14+
15+
- [#767](https://github.com/pybop-team/PyBOP/pull/767) - Adds the `GroupedSPM` model for parameter identification.
16+
- [#644](https://github.com/pybop-team/PyBOP/pull/644) - Adds example applications for common battery experiments.
17+
18+
## Optimisations
19+
20+
- [#763](https://github.com/pybop-team/PyBOP/pull/763) - Updates the GITT pulse fitting method to allow iteration over many pulses.
21+
22+
## Bug Fixes
23+
24+
- [#771](https://github.com/pybop-team/PyBOP/pull/771) - Match naming of `n_sensitivity_samples` and fix intermittent `test_optimisation_f_guessed` test.
25+
- [#737](https://github.com/pybop-team/PyBOP/pull/737) - Sensitivities no longer available for CasadiSolver in Pybamm v25.6 onwards. Updates Hallemans example scripts.
26+
- [#705](https://github.com/pybop-team/PyBOP/pull/705) - Bug fix `fitting_problem.evaulate()` failure return type alongside fixes for Pybamm `v25.4`.
27+
- [#546](https://github.com/pybop-team/PyBOP/pull/546) - Default Pybamm solver to `IDAKLU`, changes required for Pybamm v25.4.1
28+
29+
## Breaking Changes
30+
1131
# [v25.3](https://github.com/pybop-team/PyBOP/tree/v25.3) - 2025-03-28
1232

1333
## Features

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ keywords:
3131
journal: "arXiv"
3232
date-released: 2024-12-20
3333
doi: 10.48550/arXiv.2412.15859
34-
version: "25.3" # Update this alongside new releases
34+
version: "25.6" # Update this alongside new releases
3535
repository-code: 'https://www.github.com/pybop-team/pybop'

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ The table below lists the currently supported [models](https://github.com/pybop-
9393
| Multi-Species Multi-Reaction (MSMR) | Minkowski | Weight Decayed Adaptive Moment Estimation (AdamW) <tr></tr> |
9494
| Weppner-Huggins | Sum of Power | Improved Resilient Backpropagation (iRProp-) <tr></tr> |
9595
| Equivalent Circuit Models (ECM) | Gaussian Log Likelihood | SciPy Minimize & Differential Evolution <tr></tr> |
96-
| Grouped-parameter SPMe (GroupedSPMe) | Log Posterior | Cuckoo Search <tr></tr> |
97-
| | Gravimetric Energy / Power Density | Simulated Annealing <tr></tr> |
96+
| Grouped-parameter SPM (GroupedSPM) | Log Posterior | Cuckoo Search <tr></tr> |
97+
| Grouped-parameter SPMe (GroupedSPMe) | Gravimetric Energy / Power Density | Simulated Annealing <tr></tr> |
9898
| | Volumetric Energy / Power Density | Random Search <tr></tr> |
9999
| | | Gradient Descent <tr></tr> |
100100
| | | Nelder Mead <tr></tr> |
@@ -118,7 +118,7 @@ PyBOP is released under the [BSD 3-Clause License](https://github.com/pybop-team
118118

119119
## Contributors ✨
120120

121-
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
121+
Thanks goes to these wonderful people:
122122

123123
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
124124
<!-- prettier-ignore-start -->
@@ -145,6 +145,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
145145
</tr>
146146
<tr>
147147
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pipliggins"><img src="https://avatars.githubusercontent.com/u/55396775?v=4?s=100" width="100px;" alt="Pip Liggins"/><br /><sub><b>Pip Liggins</b></sub></a><br /><a href="https://github.com/pybop-team/PyBOP/commits?author=pipliggins" title="Code">💻</a></td>
148+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vpratz"><img src="https://avatars.githubusercontent.com/u/112951103?v=4?s=100" width="100px;" alt="Valentin Pratz"/><br /><sub><b>Valentin Pratz</b></sub></a><br /><a href="https://github.com/pybop-team/PyBOP/commits?author=vpratz" title="Examples">💡</a></td>
148149
</tr>
149150
</tbody>
150151
</table>

conftest.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import matplotlib
2+
import numpy as np
23
import plotly
34
import pytest
45

@@ -76,3 +77,8 @@ def pytest_collection_modifyitems(config, items):
7677
reason=f"Test does not match the selected options: {', '.join(selected_markers)}"
7778
)
7879
item.add_marker(skip_this)
80+
81+
82+
@pytest.fixture(autouse=True)
83+
def set_random_seed():
84+
np.random.seed(40)

docs/_static/switcher.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44
"url": "https://pybop-docs.readthedocs.io/en/latest/"
55
},
66
{
7-
"name": "v25.3 (stable)",
8-
"version": "v25.3",
9-
"url": "https://pybop-docs.readthedocs.io/en/v25.3/",
7+
"name": "v25.6 (stable)",
8+
"version": "v25.6",
9+
"url": "https://pybop-docs.readthedocs.io/en/v25.6/",
1010
"preferred": true
1111
},
12+
{
13+
"name": "v25.3",
14+
"version": "v25.3",
15+
"url": "https://pybop-docs.readthedocs.io/en/v25.3/"
16+
},
1217
{
1318
"name": "v25.1",
1419
"version": "v25.1",

examples/notebooks/battery_parameterisation/monte_carlo_ecm_identification.ipynb

Lines changed: 2 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -567,76 +567,13 @@
567567
"execution_count": null,
568568
"id": "26",
569569
"metadata": {},
570-
"outputs": [
571-
{
572-
"name": "stderr",
573-
"output_type": "stream",
574-
"text": [
575-
"Using Haario-Bardenet adaptive covariance MCMC\n",
576-
"Generating 3 chains.\n",
577-
"Running in parallel with 12 worker processes.\n",
578-
"/Users/engs2510/.pyenv/versions/3.12.4/lib/python3.12/multiprocessing/popen_fork.py:66: RuntimeWarning:\n",
579-
"\n",
580-
"os.fork() was called. os.fork() is incompatible with multithreaded code, and JAX is multithreaded, so this will likely lead to a deadlock.\n",
581-
"\n",
582-
"| Iteration: 1 | Iter/s: 0.00 |\n",
583-
"| Iteration: 2 | Iter/s: 13.90 |\n",
584-
"| Iteration: 3 | Iter/s: 34.29 |\n",
585-
"| Iteration: 4 | Iter/s: 35.65 |\n",
586-
"| Iteration: 5 | Iter/s: 12.33 |\n",
587-
"| Iteration: 6 | Iter/s: 52.30 |\n",
588-
"| Iteration: 7 | Iter/s: 57.62 |\n",
589-
"| Iteration: 8 | Iter/s: 61.78 |\n",
590-
"| Iteration: 9 | Iter/s: 60.53 |\n",
591-
"| Iteration: 10 | Iter/s: 43.81 |\n",
592-
"| Iteration: 50 | Iter/s: 36.97 |\n",
593-
"| Iteration: 100 | Iter/s: 64.95 |\n",
594-
"| Iteration: 150 | Iter/s: 24.37 |\n",
595-
"| Iteration: 200 | Iter/s: 24.10 |\n",
596-
"| Iteration: 250 | Iter/s: 118.53 |\n",
597-
"Initial phase completed.\n",
598-
"| Iteration: 300 | Iter/s: 18.04 |\n",
599-
"| Iteration: 350 | Iter/s: 33.45 |\n",
600-
"| Iteration: 400 | Iter/s: 6.26 |\n",
601-
"| Iteration: 450 | Iter/s: 11.71 |\n",
602-
"| Iteration: 500 | Iter/s: 10.42 |\n",
603-
"| Iteration: 550 | Iter/s: 13.09 |\n",
604-
"| Iteration: 600 | Iter/s: 8.01 |\n",
605-
"| Iteration: 650 | Iter/s: 8.72 |\n",
606-
"| Iteration: 700 | Iter/s: 11.52 |\n",
607-
"| Iteration: 750 | Iter/s: 9.72 |\n",
608-
"| Iteration: 800 | Iter/s: 9.79 |\n",
609-
"| Iteration: 850 | Iter/s: 10.70 |\n",
610-
"| Iteration: 900 | Iter/s: 8.04 |\n",
611-
"| Iteration: 950 | Iter/s: 6.94 |\n",
612-
"| Iteration: 1000 | Iter/s: 9.31 |\n",
613-
"| Iteration: 1050 | Iter/s: 12.79 |\n",
614-
"| Iteration: 1100 | Iter/s: 7.40 |\n",
615-
"| Iteration: 1150 | Iter/s: 11.16 |\n",
616-
"| Iteration: 1200 | Iter/s: 10.76 |\n",
617-
"| Iteration: 1250 | Iter/s: 23.48 |\n",
618-
"| Iteration: 1300 | Iter/s: 14.77 |\n",
619-
"| Iteration: 1350 | Iter/s: 25.48 |\n",
620-
"| Iteration: 1400 | Iter/s: 9.10 |\n",
621-
"| Iteration: 1450 | Iter/s: 14.50 |\n",
622-
"| Iteration: 1500 | Iter/s: 10.89 |\n",
623-
"Halting: Maximum number of iterations (1500) reached.\n"
624-
]
625-
},
626-
{
627-
"name": "stdout",
628-
"output_type": "stream",
629-
"text": [
630-
"[1.0155273 1.01614157 1.01238518 1.0032307 ]\n"
631-
]
632-
}
633-
],
570+
"outputs": [],
634571
"source": [
635572
"sampler = pybop.HaarioBardenetACMC(\n",
636573
" posterior,\n",
637574
" chains=3,\n",
638575
" x0=results_optim.x, # Initialise at the MAP estimate\n",
639-
" max_iterations=1500, # Increase for accurate posteriors\n",
576+
" max_iterations=500, # Increase for accurate posteriors\n",
640577
" warm_up=350,\n",
641578
" verbose=True,\n",
642579
" parallel=parallel, # Only supported for macOS/WSL/Linux\n",

examples/notebooks/battery_parameterisation/multi_model_identification.ipynb

Lines changed: 80 additions & 80 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)