Published March 5, 2026 | Version v26.3
Software Open

PyBOP: A Python package for battery model optimisation and parameterisation

Description

Full Changelog: https://github.com/pybop-team/PyBOP/blob/develop/CHANGELOG.md

v26.3 - 2026-03-05

Features

  • #897 - Adds separate LogPrior, LogPDF and LogPosterior classes and updates set_target.
  • #873 - Adds methods for saving result and reconstructing result from saved data. result.save: saves entire python object using pickle. result.save_data: saves primarily the logger data and any other data required to reconstruct the result from the problem or the sampler (for SamplingResult). Result.load_result: reconstructs the Result object based on the underlying problem (or sampler for SamplingResult) and the data saved to file.
  • #862 - Adds pybop.MarginalDistribution, pybop.MultivariateLogNormal.
  • #889 - Adds methods for setting the initial state from a voltage to the grouped models.
  • #869 - Adds methods for pre-processing current data for linear interpolation.
  • #868 - Adds support for Python3.13 (NumPy restricted to <2.4, EP-BOLFI optimiser and PyProBE do not support Python 3.13).
  • #871 - Adds a lumped thermal model called CellTemperature.
  • #846 - Adds Bayesian optimisation framework and, as an example, the EP-BOLFI optimiser

Bug Fixes

  • #890 - Fix the assignment of parameters within a MetaProblem.
  • #847 - Update readme and diagram of pybop components so that the diagram is displayed correctly in the readme.

Breaking Changes

  • #894 - Distinguish different uses of sigma, pass the covariance to the samplers, and add parameter get_mean and get_std functions.
  • #862 - Removes MultivariateParameters class. Instead allows multivariate parameters to be passed via pybamm.ParameterValues (as a pybop.Parameter with a pybop.MarginalDistribution). The pybop.Parameters class now handles multivariate parameters. Multivariate distributions are now defined in the model space instead of the search space.
  • #878 - Use "Current [A]" instead of "Current function [A]" in datasets and allow list of control functions.
  • #864 - Remove check_already_exists from ParameterValues following PyBaMM PR 5339.
  • #860 - Create a parent class for optimisation and sampling results, move PosteriorSummary attributes to the SamplingResult and deprecate the pints.AdaptiveCovarianceMCMC sampler.
  • #857 - Deprecate the custom PyBaMM model build process for a simulation without an experiment and rename batch_solve as solve_batch to align with other functions.
  • #839 - Renames 'prior' as 'distribution' for pybop.Parameter. Allows construction of a pybop.Parameter with a distribution of type scipy.stats.distributions.rv_frozen. Removes margins, set_bounds, remove_bounds from pybop.Parameter.

Notes

If you use this software, please cite our article in the Journal of Open Source Software.

Files

pybop-team/PyBOP-v26.3.zip

Files (9.4 MB)

Name Size Download all
md5:b74815792eeaa2cd668cb7631a76794c
9.4 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/pybop-team/PyBOP/tree/v26.3 (URL)

Software