PyBaMM

Introduction

This is the first blog of a series of 6 blogs that I will be writing throughout every two weeks of Google Summer of Code (GSoC). My proposal got accepted under the parent organistaion NumFOCUS and sub-organisation PyBaMM.

About my organisation PyBaMM

PyBaMM (Python Battery Mathematical Modeling) is an open-source Python module for the simulation of battery models. PyBaMM aims to provide a flexible, user-friendly, and high-performance platform for researchers, engineers, and developers working in the field of battery modeling and electrochemical simulations. It provides inbuilt battery models and parameter sets to visualise, simulate and analyse the overall interpretability of a battery model.

About my project

My project under PyBaMM in GSoC-2024 is a medium-sized project (175 hours) and it aims to build and publish PyBaMM-cookiecutter as a template for new PyBaMM-based projects. A cookiecutter template is designed to simplify the setup process of the development environment for researchers and scientists interested in utilizing PyBaMM for battery modeling who may lack familiarity with managing Python environments or repositories. The project intends to enhance the accessibility and usability of PyBaMM for newbies and experienced users alike. Providing a standardized template with best practices and automation tools would lower the barrier to entry for adopting PyBaMM in battery modeling projects. This would in turn make battery modeling more accessible, efficient, and collaborative for the research community. The project also intends to implement Model entry points, allowing community contributors to create and share models of their repositories using the cookiecutter template without directly adding them upstream. This would not only let community contributors retain ownership and choose license terms but also grant flexibility to the PyBaMM team in supporting models, Including all of GitHub’s functionality and infrastructure contained within the template.

Contributions

During the community bonding period, I tackled some of the listed issues, before the acceptance of my proposal I worked on the development of docker images of PyBaMM (PR) which further led me to work on some tweaks in the docker Linux environment and fix the permissions and roles of a user (PR). Later I worked on docker releases and reduced the number of multi-platform docker images to just one (PR) and worked on hosting the data of pybamm results in a separate repository and only fetching them whenever needed to reduce the .whl size of the overall package (PR).

Footnotes

I am grateful for this opportunity and really excited to work on my project and I am thrilled to be mentored by Saransh Chopra, Agriya Khetarpal, Ferran Brosaplanella, and Arjun Verma.