/Ampere

A python package for battery models

Primary LanguageCMIT LicenseMIT

Ampere - Advanced Model Package for ElectRochemical Experiments

Ampere is a Python module for working with battery models.

Using a scikit-learn-like API, we hope to make visualizing, fitting, and analyzing impedance spectra more intuitive and reproducible.

Ampere is currently in the alpha phase and new features are rapidly being added. If you have a feature request or find a bug, please feel free to file an issue or, better yet, make the code improvements and submit a pull request! The goal is to build an open-source tool that the entire electrochemical community can improve and use!

Ampere currently provides:

  • A simple API for fitting, predicting, and plotting discharge curves
  • A simple API for generating data, or fitting with arbitrary charge / discharge patterns.

Installation

Dependencies

Ampere requires:

  • Python (>=3.5)
  • SciPy (>=1.0)
  • NumPy (>=1.14)
  • Matplotlib (>=2.0)
  • Cython (>=0.29)

Several example notebooks are provided in the examples/ directory. Opening these will require Jupyter notebook or Jupyter lab.

User Installation

The easiest way to install Ampere is using pip:

pip install ampere

Examples and Documentation

Examples and documentation will be provided after my Defense, which is set for the end of May.

On the Horizon

  • Currently, all models are solved with Finite Difference discretization. I would love to use some higher order spatial discretizations.
  • Currently, the results have not been verified with external models. That is still on the to-do list, and to incorporate those values into the test suite would be excellent.
  • Some of my published work regarding surrogate models for solving and fitting will be implemented once they are fully fleshed out.