Skip to main content

Packaged battery models and material properties.

Project description

BATMODS-lite

ci   codecov   license  

Summary

Battery Analysis and Training Models for Optimization and Design Studies (BATMODS) is a Python package with an API for pre-built battery models. The original purpose of the package was to quickly generate synthetic data for machine learning models to train with. However, the models are generally useful for any battery simulations or analysis. BATMODS-lite includes the following:

  1. A library and API for pre-built battery models
  2. Kinetic/transport properties for common battery materials

Note that the package focuses on phsics-based models like the single-particle (SPM) and pseudo-2D (P2D) model. If you enjoy the interface but are looking to run equivalent circuit models (ECMs), you should check out thevenin, which is distributed separately, but is developed and maintained by the same team. Consequently, the interface to thevenin models is intentionally similar, allowing for a smooth transition between physics-based and ECM approaches.

Installation

BATMODS-lite is only available via GitHub. Please clone the repo or download the files. Also, make sure you have a Python installation with a version >=3.10. If you are new to Python, we recommend using Anaconda to set up your installation.

Once the files are available on your machine, use your terminal to navigate into the folder and execute one of the following depending on your installation preference.

pip install .             (basic installation)
pip install -e .[dev]     (editable installation with developer options)

The editable installation is useful if you plan to make changes to your local package. It ensures that any changes are immediately available each time the package is imported, without needing to reinstall. The developer options will likely be helpful if you are modifying the package.

If you run into issues with installation due to the scikit-sundae dependency, please submit an issue here. We also manage this solver package, but distribute it separately since it is not developed in pure Python.

Get Started

The API is organized around three main classes that allow you to construct simulations, define experiments, and interact with solutions. Two basic examples are given below. These demonstrate a 2C discharge for both the single particle model (SPM) and pseudo-2D (P2D) model. Note that the experiment class interfaces with all simulations. The simulations and their respective solutions, however, will depend on the model subpackage they are loaded from. For a more detailed tutorial, please check docs/source/examples. If you installed the editable version with developer options, you can also build the documentation locally using nox -s docs.

# Single particle model example
import bmlite as bm

sim = bm.SPM.Simulation()

expr = bm.Experiment()
expr.add_step('current_C', 2., (1350., 10.))

soln = sim.run(expr)
soln.simple_plot('time_s', 'voltage_V')
# Pseudo-2D model example
import bmlite as bm

sim = bm.P2D.Simulation()

expr = bm.Experiment()
expr.add_step('current_C', 2., (1350., 10.))

soln = sim.run(expr)
soln.simple_plot('time_s', 'voltage_V')

Notes:

  • If you are new to Python, check out Spyder IDE. Spyder is a powerful interactive development environment (IDE) that can make programming in Python more approachable to new users.
  • Another friendly option for getting started in Python is to use Jupyter Notebooks. We write our examples in Jupyter Notebooks since they support both markdown blocks for explanations and executable code blocks.
  • Python, Spyder, and Jupyter Notebooks can be setup using Anaconda. Anaconda provides a convenient way for new users to get started with Python due to its friendly graphical installer and environment manager.

Citing this Work

This work was authored by researchers at the National Laboratory of the Rockies (NLR). If you use this package in your work, please include the following citation:

Randall, Corey R. "BATMODS-lite: Packaged battery models and material properties [SWR-25-108]." Computer software, Jun. 2025. url: github.com/NatLabRockies/batmods-lite. doi: 10.11578/dc.20260114.1.

For convenience, we also provide the following for your BibTex:

@misc{randall2025bmlite,
  author = {Randall, Corey R.},
  title = {{BATMODS-lite: Packaged battery models and material properties [SWR-25-108]}},
  url = {github.com/NatLabRockies/batmods-lite},
  month = {Jun.},
  year = {2025},
  doi = {10.11578/dc.20260114.1},
}

Contributing

If you'd like to contribute to this package, please look through the existing issues. If the bug you've caught or the feature you'd like to add isn't already being worked on, please submit a new issue before getting started.

Disclaimer

This work was authored by the National Laboratory of the Rockies (NLR), operated by Alliance for Energy Innovation, LLC, for the U.S. Department of Energy (DOE). The views expressed in the repository do not necessarily represent the views of the DOE or the U.S. Government.

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

batmods_lite-0.0.2rc0.tar.gz (75.1 kB view details)

Uploaded Source

Built Distribution

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

batmods_lite-0.0.2rc0-py3-none-any.whl (96.1 kB view details)

Uploaded Python 3

File details

Details for the file batmods_lite-0.0.2rc0.tar.gz.

File metadata

  • Download URL: batmods_lite-0.0.2rc0.tar.gz
  • Upload date:
  • Size: 75.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for batmods_lite-0.0.2rc0.tar.gz
Algorithm Hash digest
SHA256 3f94e2835e7a1aea94931ea2b33910857cb8b05f507db9c54e67ac11654b9e8c
MD5 ab7f1f54ecc472893b065389d2c07f0e
BLAKE2b-256 e09519dab28a00a0483bf7e301988cfb361d62700d9975b82b85f2ee8081871a

See more details on using hashes here.

File details

Details for the file batmods_lite-0.0.2rc0-py3-none-any.whl.

File metadata

File hashes

Hashes for batmods_lite-0.0.2rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6fac1f0db525aec230b842806f0bd929b4241af968ea5dc32c3950b45b3cf97
MD5 169f186026a798c37fdc1f4e2c89c1cd
BLAKE2b-256 032a3d7c32c4fe3de183020364ea2c9d92fb9a5a60d88f137cdbbf049ef7729b

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