PySDM

PySDM

pure-Python, open-source implementation of the SDM algorithm

PySDM is built around a Pythonic implementation of the Super-Droplet Method Monte-Carlo scheme for coagulation (Shima et al. 2009). The package features two number-crunching backends: multi-threaded CPU backend using Numba and a CUDA GPU backend using ThrustRTC and CURandRTC. PySDM ships with a set of examples shipped as Jupyter-notebooks, and covering simulation setups spanning box-model cases, adiabatic parcel simulations, single-column and two-dimensional kinematic frameworks (see animation below). Documentation of the package covers the API as well as tutorials exemplifying usage of PySDM from Python, Julia and Matlab. Development of PySDM is hosted on GitHub.

Two-dimensional prescribed-flow warm-rain simulation using PySDM

Release history and papers on PySDM

PySDM v1 constituted the MSc thesis of Piotr Bartman (Jagiellonian University, 2020) who had developed PySDM API, adaptive numerical solvers and package architecture. Features and examples of PySDM v1 are summarised in a Bartman et al. 2022 JOSS paper. Subsequent developments had been largely spearheaded by Emily de Jong and Clare Singer during their PhD studies at the Caltech CliMA team, and are summarised in the de Jong, Singer et al. 2023 JOSS paper. The original collisional breakup scheme (maintaining the key constant-state-vector size trait of SDM) had been defined and validated in de Jong et al. 2023 GMD paper (with section 3 based on MSc thesis of Oleksii Bulenok (Jagiellonian University, 2023)). The original adaptive time-stepping scheme for SDM introduced in PySDM v1 has been the topic of further research by Emma Ware which has been summarised in Ware et al. 2025 arXiv preprint.

Publications using PySDM

🎓 Student project opportunities

Contributors from our team

Piotr Bartman-Szwarc
Completed MSc project in 2020 (major: Computer Science, Jagiellonian Univ.)
Oleksii Bulenok
Completed MSc project in 2023 (major: Computer Science, Jagiellonian Univ.)
Emma Ware
Completed Erasmus+ traineeship in 2024/25 at AGH (from U. California Davis)
Aleksandra Strząbała
Ongoing BEng project (major: Micro- and Nanotechnologies in Biophysics, AGH)
Sanket Bhiogade
PhD student at AGH (2023-2024)
Konrad Bodzioch
Ongoing MSc project (major: Computer Science & Intelligent Systems; prior: BEng in Computer Science & Intelligent Systems, AGH, 2024)
Agnieszka Żaba
Ongoing PhD project co-advised with Mirosław Zimnoch (prior: MSc in Mathematics, AGH, 2023, BEng in Applied Mathematics, Wrocław University of Science and Technology, 2018)
Agnieszka Makulska
Completed a summer internship at AGH in 2023 (from Physics, Univ. Warsaw)
Sylwester Arabas
Team lead (PhD, Physics, U. Warsaw, 2013)