Skip to content

BattMoTeam/BattMo

Repository files navigation

BattMo is a framework for continuum modelling of electrochemical devices.

zenodo runGitHubTests doc

The Battery Modelling Toolbox (BattMo) is a resource for continuum modelling of electrochemical devices in MATLAB. The initial development features a pseudo X-dimensional (PXD) framework for the Doyle-Fuller-Newman model of lithium-ion battery cells. However, the development plan for BattMo includes extensions to other battery chemistries (e.g. metal-air) and eventually hydrogen systems (i.e. electrolyzers and fuel cells).

BattMo offers users a flexible framework for building fully coupled electrochemical-thermal simulations of electrochemical devices using 1D, 2D, or 3D geometries. BattMo is implemented in MATLAB and builds on the open-source MATLAB Reservoir Simulation Toolbox (MRST) developed at SINTEF. MRST provides a solid basis for finite volume grid generation of complex geometries and advanced numerical solvers that enable fast simulations for large systems.

For the latest information including video tutorials and project gallery, please visit the project webpage: https://batterymodel.com

The documentation is found at the documentation webpage. We try to do our best to keep it up-to-date.

Installation

Before cloning this reposity you must make sure you have Git LFS installed. See https://git-lfs.com for instructions on downloading and installation.

BattMo is based on MRST, which provides a general unstructured grid format, generic MATLAB automatic differentiation tools and Newton solvers. The MRST source code wil be installed directly via git submodules. To install BattMo, you have therefore to clone this repository with the submodule option --recurse-submodules, as follows:

git clone --recurse-submodules https://github.com/BattMoTeam/BattMo.git

Then start MATLAB and in the directory where you cloned the repository, run:

startupBattMo

You can check that that your installation is setup correctly by running one of the example scripts:

runBatteryP2D

Iterative solvers

Iterative solvers are needed to solve large problems with many degrees of freedom. The 2012 open source version of the AGMG iterative solver is provided as a submodule, as well as AMGCL are supported.

Tutorials

Tutorials are presented in documentation.

Acknowledgements

BattMo has received funding from the European Union’s Horizon 2020 innovation program under grant agreement numbers:

  • 875527 HYDRA
  • 957189 BIG-MAP
  • 101104013 BATMAX
  • 101103997 DigiBatt