PyBaMM 25.6 has now been released! We would like to thank all the contributors who made this release possible.
The full list of changes can be found in the CHANGELOG file, but here we provide a deeper overview of the main features of this release.
Implemented by Marc Berliner (Ionworks)
The parameters used in the MSMR model have been renamed to have more meaningful names (rather than just symbols), for example:
This is not a breaking change, as the old names are still supported (with a deprecation warning on usage), but it is recommended to use the new names in new code. The old names will be removed in a future release.
Implemented by Marc Berliner (Ionworks) and Martin Robinson (Oxford RSE)
This release also includes various smaller improvements to the solvers which overall improve performance and usability:
pybamm.IDAKLUSolver
.on_extrapolation
behaviour to "error"
, "warn"
, or "ignore"
, giving users more control over how extrapolation is handled when events are hit.pybamm.CasadiAlgebraicSolver
has been improved to be faster and more robust. The root solver is now cached to avoid repeated initialisation. A step_tol
parameter has been added to control the tolerance for the Newton iteration step. The default has also been changed to a more relaxed value, making the solver more robust. Finally, the solver now uses Casadi’s in-built success flags safeguarding against the solution containing nan
or inf
values.Implemented by Martin Robinson (Oxford RSE)
The pybamm.CasadiSolver
and pybamm.ScipySolver
no longer support sensitivity calculation. This is because these solvers do not support sensitivities natively, unlike the pybamm.IDAKLUSolver
, and the existing implementation of sensitivities was not robust enough. Now that pybamm.IDAKLUSolver
is the default solver, we decided to deprecate the sensitivity calculation in the other solvers as it created a lot of technical debt and confusion for users. If sensitivities are calculated with any solver other than pybamm.IDAKLUSolver
, an error will be raised.