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
High-quality open source code
- Extensive documentation on GitHub
- The documentation includes examples and tutorials
- BattMo documentation
- 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
- BatMax
- BigMap
- Hydra
- Inteligent
- DigiBatt
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