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 的开发也得益于开源社区。特别感谢以下项目的作者,他们的工作提供了重要的见解和架构灵感:
本项目使用以下第三方库:
- HDF5:高性能数据存储(The HDF Group)
- inih:解析INI配置文件(Ben Hoyt)
参考资料
[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 叶科奇。保留所有权利。