Background

The overarching gaol of the project is to develop the equations and the software required to model coupled degradation mechanism in Li-Ion batteries, a qualitative jump from the state of the art of research in this area, integrating the results into PyBaMM. 

To tackle this ambitious goal, a group of 4 researchers from Greg Offer’s, Billy Wu’s and Monica Marinescu’s groups, as well as a research software engineer from our team has been put together under the joint name of Good Enough Model (GEM) team. Each of the researchers is expert in a different degradation mechanism, and have some experience developing research software, although not necessarily in Python, the language used by PyBaMM 

Our Contribution

The contribution of the RSE Team to this project has been two-folded. On one hand, we have trained the researchers on software development good practices, as required by PyBaMM, such as development of Python using object-oriented programming and collaborative software development using Git and GitHub.  

The second aspect was to review and assess the quality of the code being produced by the researchers before it was contributed to PyBaMM, to ensure the appropriate quality standards were followed. The RSE Team also contributed to the PyBaMM codebase on several occasions.

Outcomes

As a result of this work new degradation mechanisms or their feedback effects were added to PyBaMM  (lithium plating, particle cracking due to intercalation in the positive and negative electrode and solid interface growth). For the first time, different degradation paths in lithium-ion batteries could be explored by the research team, thus demonstrating how the coupling leads to different degradation. 

A peer reviewed publication with the direct outcomes of this collaboration has been published in Physical Chemistry Chemical Physics  and has already gathered 60 citations. Also, because of this collaborative effort, the team has gathered sufficient experience adding further degradation mechanisms in PyBaMM, with a further manuscript currently being drafted. 

Dr Simon O’Kane, who led the research aspects of the collaboration is now an official maintainer of PyBaMM, partly due to the learnings from collaborating with the RSE Team. 

Testimonials

Prof. Greg Offer, ESE group leader:

“Our group has really enjoyed working with RSE on this project, it has significantly improved our productivity and quality of our outputs. We used to produce cottage industry style code, useful for the creator to write a paper, but opaque and difficult to use by anyone else. Now we are making significant contributions towards a growing global open-source community that is enabling us to write papers with far reaching impact in our research field, where it is easy for others to reproduce and build upon our work.”

Dr. Monica Marinescu, ESE group co-lead:

“We have benefited immensely from the know-how of Diego’s team, both in terms of immediate research outputs due to what they enabled, and in terms of growing the coding-related skill set of our modelling researchers, which otherwise would not have happened. As a result of the success of this collaboration, we were keen to find funds for further collaboration on other modelling platforms where we need help. When given the opportunity, we costed this support in our grant proposal. We are currently collaborating with Diego’s team on a separate modelling project, in Python, which we are confident will lead to equally strong impact in our research outputs and personal development.”

Dr. Simon O’Kane, lead author of the resulting research article:

“This work was a significant step forward from the state of the art. The paper was presented at three international conferences and two domestic conferences, and has been cited 60 times. The number of emails and Slack messages I get from people trying to reproduce my results is further testimony to the impact of the work. The support from RSE has been helpful in two ways. Firstly, the group had very limited experience with Python and Git when the project began and being in regular contact with someone familiar with both was important it getting the project moving. Secondly, the PyBaMM-GEM repository allowed us to share code without risk of it being plagiarized or being incorporated into an AI platform before publication. The repository is still being used to host code for two follow-up articles by the ESE group.”