PyBaMM Logo

PyBaMM (Python Battery Mathematical Modelling)

PyBaMM is a unique and versatile battery modelling package for python produced by a consortium of academics connected through the Faraday Institution. PyBaMM’s development has been driven by a need within the battery community for a modelling software that is reliable, flexible, and efficient. The Oxford Battery Modelling group has played a central role in the development of PyBaMM, drawing upon our unique skill base to satisfy the key requirements of the battery community.


  • modern professional software engineering techniques
  • test driven development
  • modular code base for easy updating and testing
  • professional software engineers within the core PyBaMM development team
  • well documented


  • many inbuilt models and solvers to provide user with choice
  • submodel structure allows for simple integration of new physics
  • modular code base separates models, discretization and solver so that each can be selected independently (e.g. easy to include your own solver)
  • open source
  • user-friendly python codebase


  • passes computationally expensive operations to lower level programming languages (e.g. C)
  • includes accurate reduced-order models suitable for many applications
  • uses automatic differentiation to compute the Jacobian for any model, greatly improving solver performance


Please visit the PyBaMM website for more information, including a getting started guide. The source code is available on Github. We are always open to contributions, so please feel free to submit an issue or fork the repository and submit a pull request to add to the codebase.