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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
271aecb43d10f4a45a488a1758581a9f6a8a3613192005ecac79b2c1b39b28e5
|
|
| MD5 |
53b27ab0c4fccb56a061088563e12e36
|
|
| BLAKE2b-256 |
9b05ccadc191d26d35a5650f5c814bd57441eb1db55a5bd091383e473b7bd819
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d65a7e07d1def9fce45fc3f8c41bde752549ec1d66745eea2af0cdebc3aa764
|
|
| MD5 |
488b037369f247d2e8a987f365d01e9a
|
|
| BLAKE2b-256 |
c84cded1a129fe72207e7097691aa0f2fb80c3ecea135874a6cc1ae5f3aaa8ee
|