GASPHiA: GPU加速的光滑粒子流体动力学(SPH)代码

GASPHiA是一个高性能的三维SPH代码,使用C++和CUDA编写

GASPHiA: GPU加速的光滑粒子流体动力学代码

GASPHiA 是一个高性能的三维 SPH(光滑粒子流体动力学)代码,由中山大学航空航天学院的叶科奇在其博士研究期间开发。该代码专为模拟复杂的流体动力学问题设计,特别是涉及材料强度、损伤和引力相互作用的问题。

特性

高性能与可扩展性

  • 全并行CUDA加速:充分利用现代NVIDIA GPU的大规模计算能力。
  • Barnes-Hut树算法 [1-4]:实现邻居搜索(O(N log N))和自引力计算的加速,能够高效模拟大规模粒子系统。

可配置与灵活性

  • 可切换精度:轻松切换单精度(float)和双精度(double)计算。可以在消费级GPU上最大化性能(float),或为科学应用确保高精度(double)。
  • 维度:原生支持2D和3D模拟域。

高级物理建模

  • 引力模型:可选均匀外引力场或/和天体物理场景的N体自引力。
  • 强度与屈服模型:一套精细的本构模型来定义固体的弹性极限和后续塑性流动,包括:
    • Von Mises:经典的压无关屈服准则,作为塑性流动的基本模型。
    • Lundborg:具有强度饱和的压相关模型,适用于脆性材料。该实现基于 Lundborg(1968)[6] 最初提出的公式,后被 Collins 等人(2004)[7] 和 Jutzi(2015)[8] 采用。
  • 损伤与断裂模型:基于 Melosh 等人(1992)[9] 提出的概念的可选损伤模型,模拟拉伸应力下的材料弱化和失效。这对于模拟断裂和碎片化至关重要,遵循 Benz & Asphaug(1995)[5] 和 Collins 等人(2004)[7] 等开创的SPH方法。
  • 孔隙率模型:可选的 p-α 孔隙率模型,用于模拟多孔地质材料(如浮石或风化层)的压碎,遵循 Jutzi 等人(2008)[10] 开发的经典框架。

数值方法

  • 时间积分:目前实现了预测矫正积分与自适应 Bogacki–Shampine RK23 [11]。

用户友好工作流

  • INI配置:通过可读的INI文件控制模拟参数,由轻量级 inih 库解析。
  • 标准化输出:结果以广泛采用的HDF5格式写入,并生成配套的XDMF文件,可直接在 ParaView 和 VisIt 等科学软件中可视化。

代码访问与使用政策

GASPHiA 源代码仅向学术研究人员和合作者提供,仅供非商业、教育和研究目的使用。

如需获取源代码,请发送电子邮件至:

  • 叶科奇(作者): yekq6@mail2.sysu.edu.cn | plloningye@gmail.com
  • 刘晓东教授(导师,中山大学航空航天学院): liuxd36@mail.sysu.edu.cn

请在请求中简要介绍您自己、您的机构以及您打算使用该代码的研究应用。

使用本代码必须遵守每个源文件开头版权声明中规定的条款。未经作者事先书面许可,严禁任何形式的再分发、商业目的的修改或使用。

致谢

我要衷心感谢我的导师刘晓东教授在我博士研究期间的支持和指导。

GASPHiA 的开发也得益于开源社区。特别感谢以下项目的作者,他们的工作提供了重要的见解和架构灵感:

本项目使用以下第三方库:

参考资料

[1] Schäfer, C., Riecker, S., Maindl, T. I., Schaal, K., & Speith, R. (2016). A smooth particle hydrodynamics code to model collisions between solid, self-gravitating objects. Astronomy & Astrophysics, 590, A19.

[2] Barnes, J., & Hut, P. (1986). A hierarchical O(N log N) force-calculation algorithm. Nature, 324(6096), 446–449.

[3] Nyland, L., Harris, M., & Prins, J. (2007). Fast n-body simulation with CUDA. GPU Gems, 3, 62-66.

[4] Burtscher, M., & Pingali, K. (2011). An efficient CUDA implementation of the tree-based barnes hut n-body algorithm. In GPU Computing Gems Emerald Edition (pp. 75-92). Morgan Kaufmann.

[5] Benz, W., & Asphaug, E. (1995). Simulations of brittle solids using smooth particle hydrodynamics. Computer Physics Communications, 87(1-2), 253–265.

[6] Lundborg, N. (1968). Strength of rock-like materials. International Journal of Rock Mechanics and Mining Sciences & Geomechanics Abstracts, 5(5), 427-454.

[7] Collins, G. S., Melosh, H. J., & Ivanov, B. A. (2004). Modeling damage and deformation in impact simulations. Meteoritics & Planetary Science, 39(2), 217-231.

[8] Jutzi, M. (2015). SPH calculations of asteroid disruptions: The role of pressure dependent failure models. Icarus, 250, 356-362.

[9] Melosh, H. J., Ryan, E. V., & Asphaug, E. (1992). Dynamic fragmentation in impacts: Hydrocode simulation of laboratory impacts. Journal of Geophysical Research: Planets, 97(E9), 14735-14759.

[10] Jutzi, M., Benz, W., & Michel, P. (2008). Numerical simulations of impacts involving porous bodies: I. Implementing sub-resolution porosity in a 3D SPH hydrocode. Icarus, 198(1), 242-255.

[11] Bogacki, P., & Shampine, L. F. (1989). A 3(2) pair of Runge-Kutta formulas. Applied Mathematics Letters, 2(4), 321-325.

版权

版权所有 (c) 2025 叶科奇。保留所有权利。

🪐 本站总访问量 次 | 📖 本文阅读量
使用 Hugo 构建
主题 StackJimmy 设计