Technical roadmap review [2025]
It has been over one year since we established the roadmap, so it's time to review it. We will discuss it in the next developer meeting (7th July, 4pm London time).
Similar to the previous discussion (https://github.com/pybamm-team/PyBaMM/issues/3839), this issue should serve to suggest areas. In the meeting we will discuss them, choose a subset and define a leader/coordinator for each one.
Current areas are:
- https://github.com/pybamm-team/PyBaMM/issues/3908
- https://github.com/pybamm-team/PyBaMM/issues/3909
- https://github.com/pybamm-team/PyBaMM/issues/3910
Here are some of the areas we didn't cover last time:
- https://github.com/pybamm-team/PyBaMM/issues/3839#issuecomment-1966644699
- https://github.com/pybamm-team/PyBaMM/issues/3839#issuecomment-1999405991
- https://github.com/pybamm-team/PyBaMM/issues/3839#issuecomment-1999415696
Possible sensitivity improvements:
- Interpolation in processed variables similar to values
- adjoint sensitivities (only for output_variables of explicit time integral or discrete time sum)
- hessian (requires adjoint)
- calculate sensitivity term due to movement of event time
Not sure if it deserves to be its own focus area, but I am planning on focusing on the following infrastructure topics for this year:
- [ ] Python 3.13 support
- [ ] PyBaMM solvers release issues
- [ ] PyBaMM solvers ARM support
- [ ] Numpy 2.0 support
Improve higher-dimensional modelling (this is an active GSOC project):
I can revisit the state of WASM support (which currently works only with the CasadiSolver, as I last discussed at the conference) in coordination with Eric's PyBaMM solvers infrastructure support, where the removal of IREE code paths makes things a little easier.
Summary of roadmap meeting 07/07/25
The outcome of the meeting is to close the 3 existing roadmap areas and substitute them by the following three:
- Improvements on solver sensitivities (aka sensitivities, led by @martinjrobins): expose existing SUNDIALS functionality to improve sensitivity calculation (see Martin's comment).
- Submodel interfaces & options (aka submodels, led by @brosaplanella): rationalise the current approach to submodels, restricting the models that can be created using model options and allowing users to easily define models as a collection of submodels.
- Develop high-dimensional methods (aka 2D & 3D, led by @rtimms): expand the spatial methods and meshes to do 2D and 3D finite volume/element (see Rob's comment).
The people leading each area are just a contact point, so if you are interested in contributing please get in touch with them. Other areas suggested in the meeting are:
- Infrastructure (see Eric's and Agriya's comments): improve support across architectures and update to newer Python and dependency releases.
- Userbase knowledge: use telemetry and/or surveys to better understand how users use PyBaMM and inform further development.
- Pre-calculations: allow users to specify setups (e.g. geometric) and generate the model parameters from there (e.g. compute electrode surface area from jellyroll dimensions).
Despite not being chosen in the meeting, if someone wants to lead any of the areas above please get in touch.
For further discussion on the roadmap areas please use the dedicated issues:
- #5101
- #5102
- #5103