2026-07-23 –, Room 1.19 (Ground Floor, Shannon)
Python excels as a glue language. This tutorial will demonstrate how to harness this strength by combining Fortran-implemented number-crunching (SciPy.odeint), object-oriented dimensional analysis for physical-unit-aware code (Pint), and just-in-time compilation (Numba). The result: a lightning-fast, bug-proof Pythonic codebase for scientific computing.
In this tutorial, we will implement a simple yet non-trivial ODE-based physical model. Rather than relying on unmaintainable code comments to annotate values with units, we will use the Pint package to programmatically attach physical units to scalars and arrays, enabling dimensional analysis of the codebase (e.g., ensuring that adding Newtons to Joules raises an exception). We’ll also explore how Pint handles unit conversions and automatic plot axis labeling. The key challenge we’ll tackle is refactoring the code to make it JIT-compilable with Numba, and compatible with Fortran-implemented ODE solvers from SciPy, all while preserving Pint functionality!
I lead the open-atmos-krk research software engineering team at AGH University in Krakow, where we develop and maintain several Python packages, including Numba-MPI, PySDM, PyMPDATA, and PyPartMC. Before joining AGH, I worked as a postdoc at the University of Illinois Urbana-Champaign and at Jagiellonian University. During a three-year break from academia, I worked as a quant-dev in the financial sector. I completed my MSc and PhD in physics at the University of Warsaw.