This repository is a Python study port of Michael Honeychurch's Simulating Electrochemical Reactions in Mathematica. Contributions — fixes, clearer explanations, tighter validations, new worked examples — are welcome.
- Every notebook must execute cleanly, end to end. CI runs all notebooks on
each push and pull request (
.github/workflows/ci.yml) and fails on any error or failedassert. A pull request needs to keep CI green. - Keep the validation honest. Each chapter checks itself with
asserts against a closed-form or independently-computed reference. If you change the science, keep (or add) such a check — don't loosen a validation just to make it pass. - Reuse the package. Shared code lives in the
serp/package (solvers, waveforms, filters, plotting, and theechemlibrary of analytic references). Import from it rather than re-implementing.
git clone https://github.com/NGeorgescu/simulating-electrochemical-reactions-in-python.git
cd simulating-electrochemical-reactions-in-python
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/jupyter labReproduce what CI does:
for nb in notebooks/*.ipynb; do
.venv/bin/jupyter nbconvert --to notebook --execute --inplace "$nb"
doneA clean run means every chapter's asserts held.
Open a GitHub issue with the chapter/notebook, what you expected, and the error
or the failing assert. The notebooks render directly on GitHub, so feel free to
link the specific cell.