Skip to main content

A PyBaMM-compatible extension package for advanced battery models, research models, and simulation tools.

Project description

PyBaMM-GEM

PyBaMM-GEM is an open, collaborative ecosystem for developing, validating, sharing, and maintaining advanced battery models, submodels, and parameter sets that extend the PyBaMM framework.

PyBaMM has transformed battery modelling by providing a powerful, modular, and open-source framework for electrochemical simulation. As battery research continues to advance, new models are constantly being developed to address emerging scientific questions, explore new physical phenomena, and support industrial innovation. Many of these developments are experimental, highly specialised, or under active research, making them unsuitable for inclusion in the core PyBaMM project during their early stages.

PyBaMM-GEM provides a home for these developments.

Rather than maintaining a separate modelling framework or encouraging fragmented forks of PyBaMM, GEM extends the PyBaMM ecosystem by providing a common platform where researchers can develop, compare, validate, publish, and maintain cutting-edge battery models while remaining closely aligned with the design philosophy and user experience of PyBaMM.

Some GEM models may eventually become part of the core PyBaMM project. Others may remain within GEM because they address specialised scientific questions or niche applications. Both outcomes are considered successful.

Our long-term vision is to establish PyBaMM-GEM as a collaborative ecosystem where the next generation of battery models is developed, evaluated, and shared with the wider community.


Why GEM?

Scientific software advances by balancing two complementary objectives: stability and innovation.

PyBaMM rightly prioritises stability, maintainability, and broad community applicability.

Research, however, moves much faster.

Every year, researchers develop new electrochemical models, degradation mechanisms, parameterisations, constitutive laws, numerical approaches, and modelling assumptions. These developments often require years of validation before they are mature enough for inclusion in a widely used scientific software package. Some may never belong in the core library because they address specialised scientific or industrial problems.

PyBaMM-GEM provides an environment where these ideas can be developed openly while remaining fully compatible with PyBaMM.

The goal is not to replace PyBaMM.

The goal is to accelerate battery modelling research around PyBaMM.


What belongs in GEM?

PyBaMM-GEM focuses exclusively on extending the modelling capabilities of PyBaMM.

The project includes:

  • Battery models
  • Battery submodels
  • Parameter sets
  • Modified variants of existing PyBaMM models and submodels
  • Documentation, scripts, and notebooks accompanying each contribution

Every scientific contribution should include runnable examples demonstrating:

  • the scientific motivation,
  • implementation,
  • validation (where available),
  • and how it differs from the corresponding implementation in PyBaMM.

PyBaMM-GEM is not intended to become a general battery software platform. Workflow management, optimisation, digital twins, data analysis, and unrelated utilities are intentionally outside the scope of this project.


Design Philosophy

The philosophy of GEM is simple.

Stay close to PyBaMM. Explore beyond it.

GEM follows the architecture, programming style, and user experience of PyBaMM wherever practical. Existing PyBaMM users should feel immediately familiar with GEM, allowing new scientific developments to be adopted with minimal learning.

Scientific transparency is a fundamental principle. GEM never silently changes the behaviour of an existing PyBaMM implementation. Whenever a GEM implementation differs scientifically from PyBaMM, it is exposed through an explicit GEM-specific model or option so that published research remains reproducible and unambiguous.

Every release of GEM is developed against a defined range of PyBaMM versions and documents its compatibility.


Why "GEM"?

Originally, GEM stood for General Enough Model—a long-standing research vision of developing battery models with the minimum complexity required to explain the physical behaviour of interest.

As the project evolved, this philosophy naturally broadened. GEM also represents the idea of a Good Enough Model: selecting the minimum set of physical processes and governing equations required to accurately describe a given scientific problem without unnecessary complexity.

The name is also inspired by Professor John B. Goodenough, whose pioneering contributions fundamentally shaped modern lithium-ion battery science and continue to inspire battery modelling research today.

While these meanings reflect the origins and philosophy of the project, GEM has grown beyond an acronym. Today, PyBaMM-GEM represents an ecosystem dedicated to advancing battery modelling research through open, collaborative scientific software.


Installation

pip install pybamm-gem
import pybamm_gem

Relationship with PyBaMM

PyBaMM-GEM depends on the official PyBaMM project.

It does not replace PyBaMM, fork PyBaMM, or maintain an independent battery modelling framework.

Instead, GEM extends the PyBaMM ecosystem.

Where appropriate, mature GEM models may eventually be adopted into PyBaMM. Conversely, specialised research models may continue to be developed and maintained within GEM indefinitely.


Contributing

Researchers from academia, industry, and national laboratories are encouraged to contribute new models, submodels, parameter sets, documentation, validation studies, and example notebooks.

Every contribution should improve the scientific capability of the PyBaMM ecosystem while preserving the principles of transparency, reproducibility, and compatibility that underpin both PyBaMM and GEM.


Citation

If you use PyBaMM-GEM in academic work, please cite both:

  • PyBaMM
  • the relevant GEM model or publication

License

PyBaMM-GEM is distributed under the BSD 3-Clause License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybamm_gem-0.1.0.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pybamm_gem-0.1.0-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file pybamm_gem-0.1.0.tar.gz.

File metadata

  • Download URL: pybamm_gem-0.1.0.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pybamm_gem-0.1.0.tar.gz
Algorithm Hash digest
SHA256 271aecb43d10f4a45a488a1758581a9f6a8a3613192005ecac79b2c1b39b28e5
MD5 53b27ab0c4fccb56a061088563e12e36
BLAKE2b-256 9b05ccadc191d26d35a5650f5c814bd57441eb1db55a5bd091383e473b7bd819

See more details on using hashes here.

File details

Details for the file pybamm_gem-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pybamm_gem-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pybamm_gem-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d65a7e07d1def9fce45fc3f8c41bde752549ec1d66745eea2af0cdebc3aa764
MD5 488b037369f247d2e8a987f365d01e9a
BLAKE2b-256 c84cded1a129fe72207e7097691aa0f2fb80c3ecea135874a6cc1ae5f3aaa8ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page