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
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).
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