pybop-team / PyBOP

A parameterisation and optimisation package for battery models.
https://pybop-docs.readthedocs.io
BSD 3-Clause "New" or "Revised" License
73 stars 22 forks source link

Improvements for stoichiometric balancing #517

Open BradyPlanden opened 1 month ago

BradyPlanden commented 1 month ago

Feature description

PyBaMM's get_min_max_stoichiometries function works quite well for well-posed problems; however, if the distance between the optimal stoichiometric values and the initial conditions is large, the convergence of the solver is not guaranteed. This issue is to integrate either a pre-conditioner or a PyBOP implementation of this method. Given the optimisers available in PyBOP, a robust implementation should be easily achievable.

An alternative to investigate is improving PyBaMM's method, perhaps through importing PyBOP optimisation methods. This could be challenging due to potential circular references, but would improve upstream robustness.

Motivation

Provide a robust stoichiometric limit optimisation method

Possible implementation

No response

Additional context

No response

brosaplanella commented 2 days ago

Is that to match stoichiometry and capacity? If so, we should be able to provide good initial guesses and bounds (basically imposing the final stoichiometry needs to be between 0 and 1).