  PySDM is an open-source Python package for simulating the dynamics of
particles undergoing condensational and collisional growth, interacting with a
fluid flow and subject to chemical composition changes. It is intended to serve
as a building block for process-level as well as computational-fluid-dynamics
simulation systems involving representation of a continuous phase (air) and a
dispersed phase (aerosol), with PySDM being responsible for representation of
the dispersed phase. The PySDM package core is a Pythonic high-performance
implementation of the Super-Droplet Method (SDM) Monte-Carlo algorithm for
representing collisional growth, hence the name. PySDM has two alternative
parallel number-crunching backends available: multi-threaded CPU backend based
on Numba and GPU-resident backend built on top of ThrustRTC. The usage examples
are built on top of four simple atmospheric cloud modelling frameworks: box,
adiabatic parcel, single-column and 2D prescribed flow kinematic models. In
addition, the package ships with tutorial code depicting how PySDM can be used
from Julia and Matlab.
