GASPHiA
高性能 CUDA-SPH 三维多物理场引擎
简介
GASPHiA 是一个使用 C++ 与 CUDA 开发的三维 SPH 程序,面向千万级粒子的多物理场模拟。 程序由 CPU 负责流程控制,计算过程在 GPU 上完成,集成物质强度、自引力、损伤与多类材料模型。
该代码用于复杂流体动力学、超高速撞击、碎石堆小行星撞击、孔隙材料压实与星系引力干涉等问题。
主要特性
- CUDA 全并行计算:利用 NVIDIA GPU 的并行能力加速粒子相互作用、状态更新和物理模型计算。
- Barnes-Hut 八叉树:统一支撑 SPH 近邻搜索与自引力计算,树遍历较初始版本加速 10.6 倍,较直接计算加速约 230 倍。
- 多物理模型:包含材料强度、屈服、损伤断裂、孔隙度压实和自引力模型。
- 科学可视化工作流:输出 HDF5 与 XDMF 数据,可直接用于 ParaView 和 VisIt 后处理。
技术细节
计算精度与维度
- 可切换精度:支持单精度(
float)和双精度(double)计算,可根据 GPU 性能和科学计算精度要求选择。 - 模拟维度:原生支持一维、二维(平面应变)和三维模拟域。
物理与数值方法
- 引力模型:支持均匀外引力场与天体物理场景中的 N 体自引力。
- 强度与屈服模型:支持 Von Mises 和 Lundborg 等模型,用于描述固体的弹性极限与塑性流动。
- 损伤模型:可模拟拉伸应力下的材料失效与碎片化。
- 孔隙度模型:支持 p-α 或者 epslion-α 孔隙度模型,用于多孔地质材料的压实与压碎。
- 时间积分:实现了预测-校正积分与自适应RK23。
配置与输出
- INI 配置:通过可读的 INI 文件控制模拟参数,并使用轻量级 inih 库解析。
- 标准化输出:结果写入 HDF5,并生成配套 XDMF 文件,可直接用于 ParaView 和 VisIt 后处理。
代码访问与使用政策
GASPHiA 源代码仅向学术研究人员和合作者提供,仅供非商业、教育和研究目的使用。
如需获取源代码,请发送电子邮件至:
- 叶科奇(作者):
yekq6@mail2.sysu.edu.cn|plloningye@gmail.com - 刘晓东教授(导师,中山大学航空航天学院):
liuxd36@mail.sysu.edu.cn
请在请求中简要介绍您自己、您的机构以及您打算使用该代码的研究应用。
使用本代码必须遵守每个源文件开头版权声明中规定的条款。未经作者事先书面许可,严禁任何形式的再分发、商业目的的修改或使用。
致谢
衷心感谢刘晓东教授在作者博士研究期间给予的支持和指导。
本项目使用以下第三方库:
- HDF5:高性能数据存储(The HDF Group)
- inih:INI 配置文件解析(Ben Hoyt)
参考资料
- 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.
- Barnes, J., & Hut, P. (1986). A hierarchical O(N log N) force-calculation algorithm. Nature, 324(6096), 446–449.
- Nyland, L., Harris, M., & Prins, J. (2007). Fast n-body simulation with CUDA. GPU Gems, 3, 62–66.
- 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.
- Benz, W., & Asphaug, E. (1995). Simulations of brittle solids using smooth particle hydrodynamics. Computer Physics Communications, 87(1–2), 253–265.
- Lundborg, N. (1968). Strength of rock-like materials. International Journal of Rock Mechanics and Mining Sciences & Geomechanics Abstracts, 5(5), 427–454.
- Collins, G. S., Melosh, H. J., & Ivanov, B. A. (2004). Modeling damage and deformation in impact simulations. Meteoritics & Planetary Science, 39(2), 217–231.
- Jutzi, M. (2015). SPH calculations of asteroid disruptions: The role of pressure dependent failure models. Icarus, 250, 356–362.
- 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.
- 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.
- Bogacki, P., & Shampine, L. F. (1989). A 3(2) pair of Runge-Kutta formulas. Applied Mathematics Letters, 2(4), 321–325.
版权
版权所有 © 2026 叶科奇。保留所有权利。