Skip to content

Releases: pybop-team/PyBOP

v25.11

25 Nov 13:05
4628a65

Choose a tag to compare

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

v25.11 - 2025-11-24

Features

  • #815 - Adds function import_pyprobe_result to import a pyprobe.result into a pybop.dataset. Allows for creating a dataset directly from a pybamm.solution object.

Optimisations

  • #837 - Update the descriptons in the example scripts and notebooks.
  • #833 - Upgrade to Pints 0.5.1, PyBaMM 25.10.1 and NumPy 2, fix some deprecation warnings.
  • #816 - Enable simulator multi-processing via the evaluators.

Breaking Changes

  • #829 - Create SamplingResult and best inputs property for results.

v25.10

31 Oct 17:20
c11f068

Choose a tag to compare

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

v25.10 - 2025-10-31

This release presents a major restructure of PyBOP's base classes. We move from setting up a model, problem, cost,
then optimiser to defining a simulator, cost, problem, and then optimiser. A pybop.pybamm.Simulator is designed
to simulate a pybamm.BaseModel. Optimisation parameters can be passed through a pybamm.ParameterValues class.
To understand how to update your use of PyBOP, please take a look at the example notebooks and scripts.

Breaking Changes

  • #820 - Remove the name property from pybop.Parameter
  • #821 - Remove the papers folder and update Readme.
  • #809 - Major restructure, including:
  • Deprecate Python 3.9 support
  • Update initial state setting (requires PyBaMM > 25.8)
  • Remove jax methods
  • Add PyBaMM and PyBaMM-EIS simulators for rebuilding and running simulations for a given set of input parameters
  • Remove PyBaMM wrappers and enable use of PyBaMM model, parameter values and experiment classes
  • Remove observers
  • Remove standalone class examples
  • Improve logging
  • Remove Optimisation and MCMCSampler wrapper classes
  • Remove Fisher information computation
  • Rename apply_transform argument to transformed
  • Remove the update_capacity option from the DesignProblem
  • Update sensitivities retrieval (for PyBaMM 25.8)
  • Remove uninformative examples
  • Move optimiser and sampler options into defined classes
  • Add PyBaMM utilities, design variable definitions and the add_variable_to_model function
  • Allow plotting via functions on the OptimisationResult
  • Separate the cost classes from the Problem
  • Replace FittingProblem and DesignProblem by a single Problem class
  • Rename and reimplement MultiFittingProblem as MetaProblem
  • Add BaseSimulator as a generic base class for the pybop.pybamm.Simulator and pybop.pybamm.EISSimulator
  • Enable pybop.Parameter objects to be passed directly to an instance of pybamm.ParameterValues
  • Update the method for setting formation concentrations to be part of the model definition
  • Rename some example scripts and notebooks
  • Update the docs and test workflows

v25.6

17 Jul 09:30
1f3fb2b

Choose a tag to compare

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

v25.6 - 2025-07-16

Features

  • #767 - Adds the GroupedSPM model for parameter identification.
  • #644 - Adds example applications for common battery experiments.

Optimisations

  • #763 - Updates the GITT pulse fitting method to allow iteration over many pulses.

Bug Fixes

  • #771 - Match naming of n_sensitivity_samples and fix intermittent test_optimisation_f_guessed test.
  • #737 - Sensitivities no longer available for CasadiSolver in Pybamm v25.6 onwards. Updates Hallemans example scripts.
  • #705 - Bug fix fitting_problem.evaulate() failure return type alongside fixes for Pybamm v25.4.
  • #546 - Default Pybamm solver to IDAKLU, changes required for Pybamm v25.4.1

v25.3

28 Mar 16:47
0a55c30

Choose a tag to compare

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

v25.3 - 2025-03-28

Features

  • #649 - Adds verbose outputs to Pints-based optimisers
  • #659 - Enables user-defined weightings of the error measures.
  • #674 - Adds the reason for stopping to the OptimisationResult.
  • #663 - Adds DFN fitting examples alongside synthetic data generation methods.

Optimisations

  • #676 - Update the format of the problem sensitivities to a dict.
  • #681 - Update the spatial variable defaults of the GroupedSPMe model.
  • #692 - Improvements/fixes for BaseSampler and BasePintsSampler classes, adds ChainProcessor classes w/ clearer structure.

Bug Fixes

  • #678 - Fixed bug where model wasn't plotted for observer classes with pybop.plot.quick().

Breaking Changes

  • #684 - Updates plot.quick to plot.problem for clarity.
  • #661 - Adds pybop.CostInterface which aligns the optimisers and samplers with a unified call_cost in which transformations and sign inversions are applied. Also includes bug fixes for transformations and gradient calculations.

v25.1

04 Feb 18:18
24c54d9

Choose a tag to compare

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

v25.1 - 2025-02-03

Features

  • #636 - Adds pybop.IRPropPlus optimiser with corresponding tests.
  • #635 - Adds support for multi-proposal evaluation of list-like objects to BaseCost classes.
  • #635 - Adds global parameter sensitivity analysis with method BaseCost.sensitivity_analysis. This is computation is added to OptimisationResult if optimiser arg compute_sensitivities is True. An additional arg is added to select the number of samples for analysis: n_sensitivity_samples.
  • [#630] (#632) - Fisher Information Matrix added to BaseLikelihood class.
  • #619 - Adds pybop.SimulatingAnnealing optimiser with corresponding tests.
  • #565 - DigiBatt added as funding partner.

Optimisations

  • #638 - Allows the problem class to accept any domain name.
  • #618 - Adds Mean Absolute Error (MAE) and Mean Squared Error (MSE) costs.
  • #601 - Deprecates MultiOptimisationResult by merging with OptimisationResult.
  • #600 - Removes repetitious functionality within the cost classes.

Bug Fixes

  • #602 - Aligns the standard quick plot of MultiFittingProblem outputs.

Breaking Changes

  • #656 - Completes ParameterSet changes from #593 and aligns the simulation options in model.predict with the model properties such as the solver.
  • #593 - Enables ParameterSet to systematically return a pybamm.ParameterValues object within the model class.

New Contributors

v24.12

23 Dec 10:08
00f7b5c

Choose a tag to compare

Full Changelog

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

What's Changed

v24.9.1

18 Sep 07:48
f0377a1

Choose a tag to compare

What's Changed

Patch release for yanked v24.9.0.

New Contributors

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

v24.9.0

11 Sep 13:55
99632b9

Choose a tag to compare

What's Changed

New Contributors

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

v24.6.1

31 Jul 12:29
737a4f8

Choose a tag to compare

What's Changed

  • Release v24.6.1 by @BradyPlanden in #415
  • Increments supported PyBaMM version to >= v24.5

Full Changelog: https://github.com/pybop-team/PyBOP/blob/main/CHANGELOG.md#v2461---2024-07-31

v24.6

08 Jul 12:23
6487bf1

Choose a tag to compare

Full Changelog: https://github.com/pybop-team/PyBOP/blob/main/CHANGELOG.md#v246---2024-07-08

What's Changed

New Contributors