跳转到主要内容

一个通用的光滑粒子流体动力学框架

项目描述

PySPH:一个基于Python的SPH框架

CI Status MPI Build Status Documentation Status

PySPH是一个开源的Smoothed Particle Hydrodynamics (SPH) 模拟框架。它使用Python编写,性能关键部分使用CythonPyOpenCL实现。

PySPH允许用户使用纯Python编写高级代码。此Python代码自动转换为高性能的Cython或OpenCL,然后进行编译和执行。PySPH还可以配置为与OpenMP、OpenCL和MPI无缝协作。

PySPH的最新文档可在pysph.readthedocs.org找到。

这里有一些使用PySPH解决的示例问题的视频

特性

  • 在纯Python中定义任意SPH方程,对粒子进行操作。

  • 在纯Python中定义自己的多步积分器。

  • 高性能:我们的性能与用Fortran编写的手动求解器相当。

  • 使用OpenMP无缝支持多核。

  • 使用PyOpenCL无缝支持GPU。

  • 使用ZoltanPyZoltan无缝支持并行。

SPH公式

PySPH附带各种标准SPH公式和基本示例。一些可用的公式包括

以下论文中的边界条件已实现

以下论文中提出的校正也是PySPH的一部分

  • 校正SPH(Bonet等,《CMAME》,1999,第97–115页)

  • hg校正(Hughes等,《水力学研究杂志》,第105–117页)

  • 张力不稳定性校正(Monaghan J. J.,《JCP》,2000,第2990–311页)

  • 粒子平移算法(Xu等,《JCP》,2009,第6703–6725页),(Skillen等,《CMAME》,2013,第163–173页)

表面张力模型实现自以下文献:

安装

有关如何在Linux/OS X和Windows上安装PySPH的最新详细信息,请参阅此处

如果您想查看一个工作构建/测试脚本,请参阅我们的shippable.yml。对于Windows平台,请参阅appveyor.yml

运行示例

您可以通过探索一些示例来验证安装。一个运行速度相当快的示例(大约需要20秒)如下:

$ pysph run elliptical_drop

这要求安装Mayavi。保存的输出数据可以通过以下命令查看:

$ pysph view elliptical_drop_output/

一个更有趣的例子是一个二维溃坝示例(总共运行大约30分钟)

$ pysph run dam_break_2d

可以通过以下命令实时查看解决方案(在另一个shell中运行)

$ pysph view

生成的输出也可以查看,并且可以在查看器UI上刷新新生成的输出文件。

溃坝问题的三维版本也可用,可以按以下方式运行

$ pysph run dam_break_3d

这运行了三维溃坝问题,它也是一个SPHERIC基准测试2

Three-dimensional dam-break example

PySPH不仅仅是用于波体相互作用的工具:

$ pysph run cavity

这使用Adami等人的传输速度公式运行驱动腔体问题。模拟完成后,输出目录cavity_output还将包含流线和其他后处理结果。例如,流线看起来像以下图像

Lid-driven-cavity example

如果您想使用PySPH进行弹性动力学,可以尝试从pysph.examples.solid_mech包中的一些示例

$ pysph run solid_mech.rings

这运行了两个弹性环碰撞的问题

Collision of two steel rings

示例的自动生成代码位于目录~/.pysph/source中。但是请注意,它不是为胆小者准备的。

还有更多示例,可以通过简单地运行来列出

$ pysph run

使用PySPH的研究论文

以下是一些使用PySPH的工作:

致谢

PySPH 主要由印度理工学院孟买航空航天工程系开发。[点击访问](http://www.aero.iitb.ac.in)。我们对印度理工学院的赞助表示感谢。我们的主要目标是构建一个强大的基于SPH的工具,用于应用和研究。我们希望这可以简化可重复的计算研究。

要查看贡献者名单,请访问GitHub贡献者页面

以下是一些未列出的早期开发者

  • Pankaj Pandey(应力求解器和改进的负载平衡,2011年)

  • Chandrashekhar Kaushik(2009年的原始并行和串行实现)

引用PySPH

您可以使用以下文章正式引用PySPH,下述论文的arXiv免费副本可在https://arxiv.org/abs/1909.04504找到:

  • Prabhu Ramachandran,Aditya Bhosale,Kunal Puri,Pawan Negi,Abhinav Muta,A. Dinesh,Dileep Menon,Rahul Govind,Suraj Sanka,Amal S Sebastian,Ananyo Sen,Rohan Kaushik,Anshuman Kumar,Vikas Kurapati,Mrinalgouda Patil,Deep Tavker,Pankaj Pandey,Chandrashekhar Kaushik,Arkopal Dutt,Arpit Agarwal。“PySPH:基于Python的平滑粒子流体动力学框架”。ACM数学软件交易47,第4期(2021年12月31日):1–38。DOI:https://doi.org/10.1145/3460773

bibtex条目为:

@article{ramachandran2021a,
    title = {{{PySPH}}: {{A Python-based Framework}} for {{Smoothed Particle Hydrodynamics}}},
    shorttitle = {{{PySPH}}},
    author = {Ramachandran, Prabhu and Bhosale, Aditya and Puri,
    Kunal and Negi, Pawan and Muta, Abhinav and Dinesh,
    A. and Menon, Dileep and Govind, Rahul and Sanka, Suraj and Sebastian,
    Amal S. and Sen, Ananyo and Kaushik, Rohan and Kumar,
    Anshuman and Kurapati, Vikas and Patil, Mrinalgouda and Tavker,
    Deep and Pandey, Pankaj and Kaushik, Chandrashekhar and Dutt,
    Arkopal and Agarwal, Arpit},
    year = {2021},
    month = dec,
    journal = {ACM Transactions on Mathematical Software},
    volume = {47},
    number = {4},
    pages = {1--38},
    issn = {0098-3500, 1557-7295},
    doi = {10.1145/3460773},
    langid = {english}
}

支持

如果您对PySPH有任何问题或遇到任何困难,您可以使用PySPH讨论

如果您有错误或问题要报告,请查看PySPH问题跟踪器

您还可以通过以下链接发送电子邮件或发布您的问题:[pysph-users邮件列表](https://groups.google.com/d/forum/pysph-users)

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

PySPH-1.0b1.tar.gz (3.1 MB 查看散列值

上传时间 源代码

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面