Developer Training - Oxford 17th of April 2024
Schedule
9:00-10:30 | Introduction (L5) |
10:30-11:00 | Coffee & Tea (Mezzanine) |
11:00-12:30 | Building a simple ODE/PDE (L5) |
12:30-13:30 | Lunch (Mezzanine) |
13:30-15:00 | Building the SPM model (L5) |
15:00-15:30 | Coffee & Tea (Mezzanine) |
15:30-17:00 | Adding acid dissolution (L5) |
18:00 - | Dinner - St Annes College |
Overview of the project and folder structure
Install locally
Develop
Try online
Python Battery Mathematical Modelling
PyBaMM's mission is to accelerate battery modelling research by providing an open-source framework
for multi-institutional, interdisciplinary collaboration.
PyBaMM has fostered an active community with almost
40 contributors and hundreds of users. Our most recent training workshop attracted almost 400 participants,
over 100 of which were from industry.
www.pybamm.org users
Dec ‘21- Dec ‘22
Python Battery Mathematical Modelling
PyBaMM's mission is to accelerate battery modelling research by providing an open-source framework
for multi-institutional, interdisciplinary collaboration.
PyBaMM has fostered an active community with over 40 contributors and hundreds of users. The project attracts users and developers from around the world.
www.pybamm.org users
Dec ‘21- Dec ‘22
The PyBaMM community has seen rapid growth over the last 3 years. Our most recent training workshop attracted almost 400 participants,
over 100 of which were from industry.
Python Battery Mathematical Modelling
An open-source framework for predicting battery behaviour, a virtual physics lab to explore new mechanisms, a quality control environment to compare models, and a testing ground to validate model predictions.
Temperature [K]
COMMUNITY-DRIVEN STATE-OF-THE-ART MODELS
EXTENSIBLE, MODULAR FRAMEWORK
INCORPORATE “PLUG AND PLAY” PHYSICS
USER-FRIENDLY INTERFACE
Who is PyBaMM?
A maintainers team and steering council oversee the growth and direction of the project
Valentin
Sulzer
Martin
Robinson
Robert
Timms
Tom
Tranter
Ferran�Brosa Planella
Jon
Chapman
Scott
Marquis
Saransh
Chopra
Priyanshu
Agarwal
Jacqueline
Edge
Maintainers
Team
Gregory Offer
Ferran�Brosa Planella
Valentin
Sulzer
Saransh
Chopra
Martin
Robinson
Steering Council
Eric G. Kratz
Simon O'Kane
Agriya Khetarpal
Arjun Verma
PyBaMM structure�https://github.com/pybamm-team/PyBaMM�
PyBaMM structure�https://github.com/pybamm-team/PyBaMM�
PyBaMM structure�https://github.com/pybamm-team/PyBaMM�
PyBaMM infrastructure
The infrastructure is a series of tools that allow us to maintain the package standard, and let us know when it’s not the case.
The most important ones are:
Tests
Check that the code does what it is meant to do.
Docs
Documentation automatically generated and hosted at https://docs.pybamm.org
Coverage
Percentage of the code covered by the unit tests (should be 100% for any new code).
Benchmarks
Check how fast the code runs (under development/improvement).
Workflows
“Bots” that perform routine tasks automatically, e.g. run tests, publish new version to PyPI…
Accessing support
PyBaMM doesn’t do something you think it should?
Not sure how to use existing features or implement your own model?
Interested in commercial or academic collaboration?
Please get in touch!
Get in touch on Slack or email
Use the #technical-questions channel, send a direct message, or send us an email
Create an issue or discussion
Head over to GitHub and post an issue or start a discussion
Developer Meetings
Monthly developers meetings discussing/assigning open issues, technical roadmap etc. See #general for info
Further information – pybamm.org
Follow us on twitter - @pybamm_ and @battbot_
Star us on GitHub - PyBaMM
Join us on Slack
Try our online examples - colab.pybamm.org
PyBaMM Contribution Workflow:
Getting started with Git/GitHub
Workflow to contribute to PyBaMM
Step 0: fork the PyBaMM repository (see How to Sync a fork)
Open an issue
Create a new branch (issue-XXXX-name)
Write code
Open pull request
(PR)
Review PR
Implement changes
(if needed)
Merge PR
Colour code:
Discuss proposed changes
What is Git?
https://www.diagrams.net/blog/gitflow-diagram
What is GitHub?
GitHub Issues
Branches
https://the-turing-way.netlify.app/reproducible-research/vcs/vcs-git-branches.html
PyBaMM branches
Forks
https://www.tomasbeuzen.com/post/git-fork-branch-pull/
Branches vs Forks vs Clone
https://flatironinstitute.github.io/sciware-git-collaborative/01-remotes/
GitHub Pull Requests
How to review a PR?
Tips to review a PR
Git conflicts
Workflow to contribute to PyBaMM
Colour code:
Open an issue
Create a new branch (issue-XXXX-name)
Write code
Open pull request
(PR)
Review PR
Implement changes
(if needed)
Merge PR
Discuss proposed changes
Questions?
Model Development
Schedule
9:00-10:30 | Introduction (L5) |
10:30-11:00 | Coffee & Tea (Mezzanine) |
11:00-12:30 | Building a simple ODE/PDE (L5) |
12:30-13:30 | Lunch (Mezzanine) |
13:30-15:00 | Building the SPM model (L5) |
15:00-15:30 | Coffee & Tea (Mezzanine) |
15:30-17:00 | Adding acid dissolution (L5) |
18:00 - | Dinner - St Annes College |