Recent Releases of PyBOP

PyBOP - v25.11

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.

Energy Storage - Battery - Python
Published by NicolaCourtier 7 months ago

PyBOP - v25.10

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

Energy Storage - Battery - Python
Published by NicolaCourtier 8 months ago

PyBOP - v25.6

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

Energy Storage - Battery - Python
Published by NicolaCourtier 11 months ago

PyBOP - v25.3

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.

Energy Storage - Battery - Python
Published by NicolaCourtier about 1 year ago

PyBOP - v25.1

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] (https://github.com/pybop-team/PyBOP/pull/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

Energy Storage - Battery - Python
Published by BradyPlanden over 1 year ago

PyBOP - v24.12

Full Changelog

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

What's Changed

Energy Storage - Battery - Python
Published by BradyPlanden over 1 year ago

PyBOP - v24.9.1

What's Changed

Patch release for yanked v24.9.0.

New Contributors

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

Energy Storage - Battery - Python
Published by BradyPlanden over 1 year ago

PyBOP - v24.9.0

What's Changed

New Contributors

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

Energy Storage - Battery - Python
Published by BradyPlanden almost 2 years ago

PyBOP - v24.6.1

What's Changed

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

Energy Storage - Battery - Python
Published by BradyPlanden almost 2 years ago

PyBOP - v24.6

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

What's Changed

New Contributors

Energy Storage - Battery - Python
Published by BradyPlanden almost 2 years ago

PyBOP - v24.3.1

What's Changed

Full Changelog: https://github.com/pybop-team/PyBOP/compare/v24.3...v24.3.1

Energy Storage - Battery - Python
Published by BradyPlanden almost 2 years ago

PyBOP - v24.3

What's Changed

New Contributors

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

Energy Storage - Battery - Python
Published by BradyPlanden about 2 years ago

PyBOP - v23.12

Features

  • #141 - Adds documentation with Sphinx and PyData Sphinx Theme. Updates docstrings across package, relocates costs and dataset to top-level of package. Adds noxfile session and deployment workflow for docs.
  • #131 - Adds SciPyDifferentialEvolution optimiser, adds functionality for user-selectable maximum iteration limit to SciPyMinimize, NLoptOptimize, and BaseOptimiser classes.
  • #107 - Adds Equivalent Circuit Model (ECM) with examples, Import/Export parameter methods ParameterSet.import_parameter and ParameterSet.export_parameters, updates default FittingProblem.signal definition to "Voltage [V]", and testing infrastructure
  • #127 - Adds Windows and macOS runners to the test_on_push action
  • #114 - Adds standard plotting class pybop.StandardPlot() via plotly backend
  • #114 - Adds quick_plot(), plot_convergence(), and plot_cost2d() methods
  • #114 - Adds a SciPy minimize example and logging for non-Pints optimisers
  • #116 - Adds PSO, SNES, XNES, ADAM, and IPropMin optimisers to PintsOptimisers() class
  • #38 - Restructures the Problem classes ahead of adding a design optimisation example
  • #120 - Updates the parameterisation test settings including the number of iterations
  • #145 - Reformats Dataset to contain a dictionary and signal into a list of strings

Breaking Changes

  • #38 - Restructures the Problem classes into FittingProblem and DesignProblem. FittingProblem replaces previous Problem class
  • #145 - Reformats Dataset class to contain a dictionary and signal into a list of strings.

Energy Storage - Battery - Python
Published by BradyPlanden over 2 years ago

PyBOP - Release Candidate v23.12rc0

CHANGELOG

  • #141 - Adds documentation with Sphinx and PyData Sphinx Theme. Updates docstrings across package, relocates costs and dataset to top-level of package. Adds noxfile session and deployment workflow for docs.
  • #131 - Adds SciPyDifferentialEvolution optimiser, adds functionality for user-selectable maximum iteration limit to SciPyMinimize, NLoptOptimize, and BaseOptimiser classes.
  • #107 - Adds Equivalent Circuit Model (ECM) with examples, Import/Export parameter methods ParameterSet.import_parameter and ParameterSet.export_parameters, updates default FittingProblem.signal definition to "Voltage [V]", and testing infrastructure
  • #127 - Adds Windows and macOS runners to the test_on_push action
  • #114 - Adds standard plotting class pybop.StandardPlot() via plotly backend
  • #114 - Adds quick_plot(), plot_convergence(), and plot_cost2d() methods
  • #114 - Adds a SciPy minimize example and logging for non-Pints optimisers
  • #116 - Adds PSO, SNES, XNES, ADAM, and IPropMin optimisers to PintsOptimisers() class
  • #38 - Restructures the Problem classes ahead of adding a design optimisation example
  • #120 - Updates the parameterisation test settings including the number of iterations
  • #145 - Reformats Dataset to contain a dictionary and signal into a list of strings

Energy Storage - Battery - Python
Published by BradyPlanden over 2 years ago

PyBOP - v23.11

Initial release v23.11

  • Pints, NLOpt, and SciPy optimisers available
  • SumofSquareError and RootMeanSquareError cost functions available
  • Parameter and dataset classes available
  • Examples here

Energy Storage - Battery - Python
Published by BradyPlanden over 2 years ago