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.
翻译:PySDM 是一个开源的 PySDM 软件包包,用于模拟正在凝聚和碰撞增长的粒子的动态,与流体流相互作用,并受到化学成分变化的影响。其目的是作为过程级和计算-流体-动力模拟系统的一个构件,包括连续阶段(空气)和分散阶段(气溶胶)的表示,由PySDM 系统负责代表分散阶段。PySDM 软件包核心是超滴方法(SDM) Monte-Carlo 运算法(SDM) 的Python- 高性能执行,以代表碰撞增长,因此名称。 PySDM 有两种平行的平行数字扫描后端:基于 Numba 和 ThruustRTC 顶端的多读的CPU 和 GPU- 常住后端(气相) 。使用的例子建在四个简单的大气云建模框架的顶端上: 箱、 直交包包包包包、单柱和2D 指定的流动流动模型。此外, 套船用解码描述了朱利亚- SDMDM 。