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
Bieli et al. 2022 (JAMES): "An Efficient Bayesian Approach to Learning Droplet Collision Kernels: Proof of Concept Using “Cloudy,” a New n-Moment Bulk Microphysics Scheme"
D'Aquino et al. 2024 (SoftwareX): "PyPartMC: A Pythonic interface to a particle-resolved, Monte Carlo aerosol simulation framework"
Azimi et al. 2024 (JAMES): "Training Warm-Rain Bulk Microphysics Schemes Using Super-Droplet Simulations"
Arabas et al. 2025 (JAMES): "Immersion Freezing in Particle-Based Aerosol-Cloud Microphysics: A Probabilistic Perspective on Singular and Time-Dependent Models"
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)