To main content

BattMo

BattMo is an open source simulation code for continuum modelling of electrochemical devices written in Matlab and Julia

Contact persons

BattMo is capable of performing fully coupled P4D-thermal simulations. Here a mesh of a cell in the 4680 format where we can investigate the benefits of using so-called continuous tabs compared to the more traditional intermittent tab design. The model has about 3 million degrees of freedom and is run on a standard desktop computer

BattMo is a framework for continuum modelling of electrochemical devices. We target both flexibility and efficiency. The code is open source, written in Matlab and Julia, available on GitHub.

Lithium-ion PXD simulations

  • The initial development features a pseudo X-dimensional (PXD) framework for the Doyle-Fuller-Newman model of lithium-ion battery cells.
  • Fully-coupled thermal simulation.
  • Multi-dimensional models (1D-3D).
  • Support for large 3 dimensional models
    • The difficulty of solving large systems is overcome by the use of taylored preconditioners. We use open-source AMGCL.
    • We can handle general geometries. A set of parameterized geometry is readily available, such as coin-cell, jelly roll, see here for an overview.
    • BattMo is built upon MRST

High-quality open source code

  • Extensive documentation on GitHub
  • Continuous integration for robust testing and documentation updates.

Design optimization and material characterisation using adjoint-based computation

  • Support for adjoint-based optimization, which brings order of magnitude gains in the computation of the gradients or sensitivities, when the number of design parameters is large.
  • Reuse existing adjoint-based optimisation module from MRST.
  • Example in Inteligent project: Compute the electrode sizes and porosity that optimizes the specific energy of a cell (energy with respect to mass), given the other material properties.
  • Fully differentiable grid: All the grid properties (centroids, volumes) and the resulting discrete differentiation operators (half-transmissibilitie) have AD support, meaning that they can be differentiated, with respect to node coordinates.

Flexible framework for prototyping and integration of new physics

  • Built upon open-source MRST simulator.
  • Native automatic differentiation support.
  • Flexible 3D grid structure.
  • Robust Newton solver for evolutionary partial differential equations.
  • Graph-based model design
    • Model is setup as a composition of sub-models
    • A sub-model corresponds to a computational graph where the nodes are the variables and the edges the functions
  • Fully differentiable models
    • Includes also fully differentiable grids
  • Examples of included physical processes/models
    • Degradation mechanisms
    • Composite materials : two particle models
    • Sea-water batteries
    • Electrolysis

Julia version: BattMo.jl

  • Open source code available as a julia package via GitHub.
  • Order of magnitude gain in computation speed for small models.
  • Uses Jutul, a shared platform with Julia resorvoir simulation tool (JutulDarcy)
  • Support for fully differentiable models.

Electro-chemical systems beyond Lithium-Ion batteries

  • H2/NH3 production electrolysis
    • Physical system
      • Anion Exchange Membrane
      • Protonic membrane (high temperature, work in progress...)
      • Protonic membrane (low temperature, work in progres...)
    • Physical processes
      • Electrochemical processes as in battery : Mass, energy and charge conservation with solid and electrolyte diffusion, migration.
      • SEI growth (deposition), Lithium plating, cracking, mechanics, thermal degradation, hysteresis
      • Multiphase flow in electrodes (Electrolyser and fuel cells are open systems)
  • Sea water battery

Used in several EU projects

Working directions

  • Hybrid models (Physic-constrained AI models)
  • More battery chemistry
  • More degradation processes such Lithium plating
  • Composite material
  • Hysteresis
  • Cracking
  • Mechanics
  • Thermal induced degradation

Development team