You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
3
+
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
4
4
5
-
## Issue reference
6
-
Fixes # (issue-number)
7
-
8
-
## Review
9
-
Before you mark your PR as ready for review, please ensure that you've considered the following:
10
-
- Updated the [CHANGELOG.md](https://github.com/pybop-team/PyBOP/blob/develop/CHANGELOG.md) in reverse chronological order (newest at the top) with a concise description of the changes, including the PR number.
11
-
- Noted any breaking changes, including details on how it might impact existing functionality.
5
+
Fixes # (issue)
12
6
13
7
## Type of change
14
-
-[ ] New Feature: A non-breaking change that adds new functionality.
15
-
-[ ] Optimization: A code change that improves performance.
16
-
-[ ] Examples: A change to existing or additional examples.
17
-
-[ ] Bug Fix: A non-breaking change that addresses an issue.
18
-
-[ ] Documentation: Updates to documentation or new documentation for new features.
19
-
-[ ] Refactoring: Non-functional changes that improve the codebase.
20
-
-[ ] Style: Non-functional changes related to code style (formatting, naming, etc).
21
-
-[ ] Testing: Additional tests to improve coverage or confirm functionality.
22
-
-[ ] Other: (Insert description of change)
23
-
24
-
# Key checklist:
25
-
26
-
-[ ] No style issues: `$ pre-commit run` (or `$ nox -s pre-commit`) (see [CONTRIBUTING.md](https://github.com/pybop-team/PyBOP/blob/develop/CONTRIBUTING.md#installing-and-using-pre-commit) for how to set this up to run automatically when committing locally, in just two lines of code)
27
-
-[ ] All unit tests pass: `$ nox -s tests`
28
-
-[ ] The documentation builds: `$ nox -s doctest`
29
8
30
-
You can run integration tests, unit tests, and doctests together at once, using `$ nox -s quick`.
9
+
Please add a line in the relevant section of [CHANGELOG.md](https://github.com/pybop-team/PyBOP/blob/develop/CHANGELOG.md) to document the change (include PR #).
31
10
32
-
## Further checks:
33
-
-[ ] Code is well-commented, especially in complex or unclear areas.
34
-
-[ ] Added tests that prove my fix is effective or that my feature works.
35
-
-[ ] Checked that coverage remains or improves, and added tests if necessary to maintain or increase coverage.
11
+
# Important checks:
36
12
37
-
Thank you for contributing to our project! Your efforts help us to deliver great software.
13
+
Please confirm the following before marking the PR as ready for review:
14
+
- No style issues: `$ pre-commit run` or `$ nox -s pre-commit` (see [CONTRIBUTING.md](https://github.com/pybop-team/PyBOP/blob/develop/CONTRIBUTING.md#installing-and-using-pre-commit) for how to set this up to run automatically when committing locally, in just two lines of code)
15
+
- All tests pass: `nox -s tests`
16
+
- The documentation builds: `nox -s doctest`
17
+
- Code is commented for hard-to-understand areas
18
+
- Tests added that prove fix is effective or that feature works
Copy file name to clipboardExpand all lines: README.md
+27-34Lines changed: 27 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,9 +19,12 @@
19
19
20
20
</div>
21
21
22
-
PyBOP provides a complete set of tools for parameterisation and optimisation of battery models, using both Bayesian and frequentist approaches, with [example workflows](https://github.com/pybop-team/PyBOP/tree/main/examples/) to assist the user. PyBOP can be used to parameterise various battery models, including electrochemical and equivalent circuit models available in [PyBaMM](https://pybamm.org/). PyBOP prioritises clear and informative diagnostics for the user, while also allowing for advanced probabilistic methods.
22
+
PyBOP provides tools for the parameterisation and optimisation of battery models, using both Bayesian and frequentist approaches, with [example workflows](https://github.com/pybop-team/PyBOP/tree/main/examples/) to assist the user. PyBOP can be used to parameterise various battery models, including the electrochemical and equivalent circuit models available in [PyBaMM](https://pybamm.org/).
23
23
24
-
The diagram below shows the conceptual framework of PyBOP. This package is currently under development, so users can expect the API to evolve with future releases.
24
+
📌 PyBOP v25.10 presents a [major restructure](https://github.com/pybop-team/PyBOP/tree/main/CHANGELOG.md) of PyBOP's base classes. We move from setting up
25
+
a model, problem, cost, then optimiser to defining a simulator, cost, problem, and then optimiser. A `pybop.pybamm.Simulator` is designed to simulate a
26
+
`pybamm.BaseModel`. Optimisation parameters can be passed through a `pybamm.ParameterValues` class.
27
+
To understand how to update your use of PyBOP, please take a look at the example notebooks and scripts.
To check that PyBOP is installed correctly, run one of the examples in the following section. For a development installation, see the [Contribution Guide](https://github.com/pybop-team/PyBOP/blob/develop/CONTRIBUTING.md#Installation). More installation information is available in our [documentation](https://pybop-docs.readthedocs.io/en/latest/installation.html) and the [extended installation instructions](https://docs.pybamm.org/en/latest/source/user_guide/installation/gnu-linux-mac.html) for PyBaMM.
51
54
52
-
## Using PyBOP
55
+
56
+
## Use Cases
57
+
53
58
PyBOP has two intended uses:
54
59
55
60
1. Parameter inference from battery test data.
@@ -58,48 +63,36 @@ PyBOP has two intended uses:
58
63
59
64
These include a wide variety of optimisation problems that require careful consideration due to the choice of battery model, data availability and/or the choice of design parameters.
60
65
66
+
### Publications
67
+
68
+
Please take inspiration from the following journal articles which show how PyBOP is being used for research:
69
+
70
+
- "Physics-based battery model parametrisation from impedance data" by [Hallemans et al. (2025)](https://doi.org/10.1149/1945-7111/add41b) with [open-source code and data](https://github.com/Battery-Intelligence-Lab/Hallemans-2025-JES)
71
+
61
72
### Jupyter Notebooks
62
73
63
74
Explore our [example notebooks](https://github.com/pybop-team/PyBOP/blob/develop/examples) for hands-on demonstrations:
-[Optimiser comparison for parameter identification](https://nbviewer.org/github/pybop-team/PyBOP/blob/develop/examples/notebooks/comparison_examples/multi_optimiser_identification.ipynb)
68
-
-[Parameter identification for spatial pouch cell model](https://nbviewer.org/github/pybop-team/PyBOP/blob/develop/examples/notebooks/battery_parameterisation/pouch_cell_identification.ipynb)
69
-
-[Estimating ECM parameters from HPPC pulse](https://nbviewer.org/github/pybop-team/PyBOP/blob/develop/examples/notebooks/battery_parameterisation/equivalent_circuit_identification_hppc.ipynb)
76
+
-[Getting started with gradient-based optimisation](https://nbviewer.org/github/pybop-team/PyBOP/blob/develop/examples/notebooks/getting_started/optimising_with_adamw.ipynb)
77
+
-[Estimating ECM parameters from a HPPC pulse](https://nbviewer.org/github/pybop-team/PyBOP/blob/develop/examples/notebooks/battery_parameterisation/equivalent_circuit_identification_hppc.ipynb)
78
+
-[Identifying ECM parameters with nonlinear constraints](https://nbviewer.org/github/pybop-team/PyBOP/blob/develop/examples/notebooks/battery_parameterisation/ecm_scipy_constraints.ipynb)
79
+
-[Parameter identification for a spatial pouch cell model](https://nbviewer.org/github/pybop-team/PyBOP/blob/develop/examples/notebooks/battery_parameterisation/pouch_cell_identification.ipynb)
-[Getting started with SciPy minimize](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/getting_started/optimising_with_scipy_minimize.py)
87
+
-[Estimating diffusivity from GITT data](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/battery_parameterisation/gitt_fitting.py)
88
+
-[Maximum a Posteriori parameter identification](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/comparison_examples/maximum_a_posteriori.py)
-[Getting started with MCMC samplers](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/getting_started/monte_carlo_sampling.py)
80
91
81
92
82
-
### Supported Methods
83
-
The table below lists the currently supported [models](https://github.com/pybop-team/PyBOP/tree/develop/pybop/models), [optimisers](https://github.com/pybop-team/PyBOP/tree/develop/pybop/optimisers), and [cost functions](https://github.com/pybop-team/PyBOP/tree/develop/pybop/costs) in PyBOP.
0 commit comments