BattMo -- Battery Modelling Toolbox
Xavier Raynaud, Halvor Møll Nilsen, August Johansson, Eibar Flores, Lorena Hendrix, Francesca Watson, Sridevi Krishnamurthi, Olav Møyner, Simon Clark
TL;DR
BattMo addresses the need for rigorous, scalable digital workflows in battery modelling by providing a MATLAB-based toolbox with 3D capabilities, semantic input via BattINFO, and a DFN-based physics core. It couples electrochemical and thermal processes, with modules for degradation (including SEI growth) and composite materials, within a flexible, graph-based model architecture. A key contribution is the use of automatic differentiation and adjoint methods, enabling efficient calibration from experimental data, e.g., computing $∂J/∂p$ for parameter updates. The framework also supports parameterized geometries, a library of standard cell geometries, and cross-language implementations (MATLAB, Julia, Python) plus a web app, promoting design optimization and reproducibility in line with FAIR principles.
Abstract
This paper presents the Battery Modelling Toolbox (BattMo), a flexible finite volume continuum modelling framework in MATLAB\textsuperscript{\textregistered} (\citeproc{ref-MATLAB}{The MathWorks Inc., 2025}) for simulating the performance of electro-chemical cells. BattMo can quickly setup and solve models for a variety of battery chemistries, even considering 3D designs such as cylindrical and prismatic cells. The simulation input parameters, including the material parameters and geometric descriptions, are specified through JSON schemas. In this respect, we follow the guidelines of the Battery Interface Ontology (BattINFO) to support semantic interoperability in accordance with the FAIR principles (\citeproc{ref-fair}{Wilkinson et al., 2016}). The Doyle-Fuller-Newman (DFN) (\citeproc{ref-Doyle1993ModelingCell}{Doyle et al., 1993}) approach is used as a base model. We include fully coupled thermal simulations. It is possible to include degradation mechanisms such as SEI layer growth, and the use of composite material, such as a mixture of Silicon and graphite. The models are setup in a hierarchical way, for clarity and modularity. Each model corresponds to a computational graph, which introduces a set of variables (the nodes) and functional relationship (the edges). This design enables the flexibility for changing and designing new models. The solver in BattMo uses automatic differentiation and support adjoint computation. We can therefore compute the derivative of objective functions with respect to all parameters efficiently. Gradient-based optimization routines can be used to calibrate parameters from experimental data.
