
PYSDM是用于模拟颗粒群体动力学的包装。它旨在用作模拟系统建模涉及分散阶段的流体流的构建块,而PYSDM负责代表分散阶段。目前,该开发集中在大气云物理应用上,特别是使用基于粒子的(又称超级滴滴)方法来建模浸入潮湿空气中的颗粒动力学,以代表气溶胶/云/雨雨微物理学。该软件包采用了用于代表碰撞增长的超级流行法(SDM)蒙特 - 卡洛算法的Pythonic高性能实现(Shima等,2009),因此该名称。
PYSDM文档维护在以下位置:https://open-atmos.github.io/pysdm
有一组越来越多的示例jupyter笔记本示例如何使用PYSDM执行各种类型的计算和模拟。大多数示例笔记本都从文献中复制结果和绘图,有关示例和链接的列表,请参见下文(可以在云中执行或查看)。
还有一组越来越多的教程,也有jupyter笔记本的形式。这些教程旨在用于教学目的,并包括对云微物理概念以及使用PYSDM运行交互式模拟的小部件配对的云微物理概念的简短解释。每个教程还带有一组问题,可以用作作业问题。像示例一样,这些教程可以在“云中”执行或查看,这是学生开始开始的一种特别简单的方法。
PYSDM有两个可用的替代并行数字迫使后端:基于numba和GPU居住的后端基于Thrustrtc顶部的多线CPU后端。 Numba后端(Aliased CPU )具有多核CPU的多线程并行性,它使用基于LLVM基础架构的即时汇编技术。 ThrustRTC后端(Aliased GPU )提供了PYSDM的GPU居住操作,利用SIMT并行模型。使用GPU后端需要NVIDIA硬件和CUDA驱动程序。
有关PYSDM功能的概述(以及在论文中引用PYSDM的首选方法),请参阅我们的Joss论文:
PYSDM包括SDM方案的扩展,以表示De Jong,Mackay等人中描述的碰撞分裂。 2023。
有关PYSDM上的会谈和其他材料的列表,以及包含PYSDM模拟的已发表论文列表,请参见Wiki项目。
PYSDM依赖性为:Numpy,Numba,Scipy,Pint,Chempy,Pyevtk,Thrustrtc和Curandrtc。
要使用pip安装PYSDM,请使用: pip install PySDM (或pip install git+https://github.com/open-atmos/PySDM.git以获得最新版本以外的更新)。
Conda用户也可以使用pip ,请参阅Conda文档中的“安装非CONDA软件包”部分。 PYSDM的依赖性可在以下CONDA渠道上找到:
出于开发目的,我们建议使用pip -e克隆存储库并安装它。可以使用pip -e .[tests]安装测试时间依赖项。
PYSDM示例构成了PySDM-examples包。这些示例在PySDM_examples包装setup.py文件中列出了其他依赖项。运行示例jupyter笔记本需要安装PySDM_examples软件包。建议的安装和启动步骤是:
git clone https://github.com/open-atmos/PySDM.git
pip install -e PySDM
pip install -e PySDM/examples
jupyter-notebook PySDM/examples/PySDM_examples
另外,也可以通过使用pip install PySDM-examples从pypi.org安装示例软件包(请注意,这不适用于笔记本本身,仅适用于支持.py文件)。
向项目提交新代码,最好使用github拉动请求 - 它有助于记录代码作者身份,跟踪和存档代码审查工作流程,并允许从连续的集成设置中受益,该设置可以通过新添加的代码自动执行测试。
假定代码贡献意味着版权转移。如果需要例外,请在创建拉动请求或以任何其他方式贡献代码时表示。无论如何,贡献代码的许可必须与GPL V3兼容。
制定代码,我们遵循Python和Kiss原则的方式。代码库大大受益于Pycharm代码检查和Pylint,Black和Isort代码分析(这都是CI工作流程的一部分)。
我们还使用前签名挂钩。在我们的情况下,钩子修改文件并重新格式化它们。可以在本地运行预密码挂钩,然后在进行提交之前需要进行所得更改。要在本地设置钩子,请通过pip install pre-commit ,并通过pre-commit install设置GIT钩子(每次您克隆项目时都需要完成此操作)。要运行所有预制挂钩,请运行pre-commit run --all-files 。如果要添加新挂钩或需要更改现有的挂钩,则可以修改.pre-commit-config.yaml文件。
在PYSDM开发人员和Python-dev Hints Wiki和Pysdm Howtos中,还将在PYSDM开发人员和PYSDM Howtos中保持进一步的提示。
关于PYSDM的任何不正确,不直觉或无证的Bahaviour的问题,最好在GitHub问题跟踪器上报告。功能请求记录在“创意...” PYSDM Wiki页面中。
我们鼓励使用GITHUB讨论功能(而不是问题跟踪器)来寻求支持,使用和扩展PYSDM代码。
我们期待您的贡献和反馈。
版权所有:Jagiellonian大学(2019-2023)&AGH克拉科夫大学(2023 -...)
许可证:GPL V3