v25.12.0
What's Changed
- fix 2d concat bug by @aabills in #5310
- Restructure idaklu jax tests by @pipliggins in #5315
- Fix non-deterministic CI by @MarcBerliner in #5316
- #5299 add inverse linear kinetics by @rtimms in #5303
- Observe custom variables after solving + faster simulation build time by @MarcBerliner in #5308
- fix idaklu jax test issue by @aabills in #5319
- [Fix] Handle missing geometry keys in latexify for lithium plating mo… by @swastim01 in #5245
- fix np trapz bug by @valentinsulzer in #5324
- use zlib to make serialization smaller by @aabills in #5323
- Build(deps): bump the actions group across 1 directory with 12 updates by @dependabot[bot] in #5322
- Fix benchmarks by @pipliggins in #5318
- chore: update pre-commit hooks by @pre-commit-ci[bot] in #5195
- Fix a race in serialisation
test_save_load_modeltest by @agriyakhetarpal in #5325 - Adds Python 3.13 by @BradyPlanden in #5330
- Coupled variable serialization by @valentinsulzer in #5326
- copyright should only include the year of creation by @Saransh-cpp in #5332
- Fix coupled variable by @aabills in #5334
- Fix bug with
fixed_input_parametersmissing input params in symbols by @MarcBerliner in #5321 - Removes automatic addition of constants to ParameterValue object by @BradyPlanden in #5336
- add tensors and basic operators by @aabills in #5335
- Add
Solution.ypgetter by @MarcBerliner in #5341 - Restructures
ParameterValuesclass by @BradyPlanden in #5339 - SciPy 1.17.0
FutureWarningfor explicit types by @BradyPlanden in #5344 - asymmetric stress-driven LAM by @rtimms in #5343
- chore: update pre-commit hooks by @pre-commit-ci[bot] in #5345
- broadcast to edges 2d by @aabills in #5340
- Build(deps): bump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group by @dependabot[bot] in #5346
- BasicDFN2D with variable porosity and active fractions in x and z directions by @DrSOKane in #5266
- Volume fractions and porosity that vary in y and z by @DrSOKane in #5214
- Cherry pick composite esoh fixes by @rtimms in #5349
Full Changelog: https://github.com/pybamm-team/PyBaMM/blob/main/CHANGELOG.md#v25120---2026-01-15
Breaking changes
- Deprecates
check_already_existsargument forParameterValues.update(). This removes the secondary checking for explicit keys in theParameterValuesobject. If a key is not found, it will be added. Note, this includes typos in parameter names. This changesupdateto have update-insert functionality whereas previously it required thecheck_already_existsflag to beFalse. This also allows for direct dictionary update-insert throughparameter_values["key"] = "value". (#5339) - Removes default constants added to
ParameterValueson construction. Only breaking if you rely on this functionality in custom models, parameters, etc. (#5336)