PyBaMM 25.4 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 Martin Robinson (Oxford RSE)
From 25.4.1 the default solver for differential equations is the IDAKLUSolver
rather than the CasadiSolver
. For the large majority of situations the IDAKLU solver is faster and more robust than the Casadi solver, so existing code should see better performance. There might be some very niche cases in which the Casadi solver works better. In those cases, the user can still use the Casadi solver by passing solver=pybamm.CasadiSolver()
to the simulation.
Implemented by Alec Bills (Ionworks)
Continuing the work from the previous release, on cross-compatibility of submodels, the mechanical models in PyBaMM are now compatible with particle size distributions. This means that the mechanical models can be used with any of the particle size distribution models available in PyBaMM, for example
pybamm.lithium_ion.MPM(
options={"particle mechanics": "swelling and cracking"}
)
Implemented by chtamar
A new hysteresis submodel has been added to PyBaMM, based on the work of Axen et al (2022). This model can be accessed via the model options, e.g.
pybamm.lithium_ion.DFN(
{
"open-circuit potential": (("single", "Axen"), "single"),
"particle phases": ("2", "1"),
}
)
For more information on this and the other hysteresis models available in PyBaMM, see the hysteresis notebook.
Implemented by Rishab Kumar Jha
Input parameters can now be used when defining experiment steps. This improves performance when testing multiple operation conditions as the input parameter is only evaluated at the solving stage, so the model does not need to be processed again. For example, to define a current step with the value as an input parameter we can use:
step = pybamm.step.current(
pybamm.InputParameter("I_app"),
termination="< 2.5 V",
)
Implemented by Rishab Kumar Jha
The pchip
method is now available in pybamm.Interpolant
in addition to linear
and cubic
. This interpolator preserves monotonicity in the interpolation data and does not overshoot if the data is not smooth.
Implemented by Pip Liggins (Oxford RSE)
The method get_summary_variables
is now available to return a dictionary of all degradation summary variables in the model versus cycle number. This is useful for further processing of the degradation data.