DualSPHysics 基于名为 SPHysics 的光滑粒子流体动力学(SPH)模型。该代码旨在研究难以应用欧拉方法的自由表面流动现象,例如波浪或溃坝对离岸结构的影响。DualSPHysics 是一组 C++、CUDA 和 Java 代码,旨在处理现实生活中的工程问题。
DualSPHysics 以 C++ 和 CUDA 语言实现,分别在 CPU 或 GPU 上执行数百万粒子的模拟。新的 CPU 代码具有一些优势,例如更优化的内存使用。面向对象的编程范式提供了易于理解、维护和修改的代码,并对可用的错误进行了复杂的控制。此外,实现了更好的优化,例如重新排序粒子以更快地访问内存,并实现了创建 neighbour list 的最佳方法 [Domínguez et al., 2011]。CUDA 语言管理 GPU 上线程的并行执行。最好的方法被认为是作为 C++ 代码的扩展来实现的,因此实现了在 GPU 上并行化粒子交互的最合适的优化 [Domínguez et al., 2013a; 2013b]。[Crespo et al., 2011] 提出了第一个严格的验证。代码的 3.0 版在 [Crespo et al., 2015] 中有完整记录。
SPHysics 是一个光滑粒子流体动力学 (SPH) 代码平台,其灵感来自于 Monaghan(1992)的公式,由约翰霍普金斯大学(美国)、维哥大学(西班牙)、曼彻斯特大学(英国)和罗马大学La Sapienza(意大利)的研究人员联合开发。
SPHysics 代码的所有开发人员都是 SPH 欧洲研究兴趣社区 SPHERIC 的成员,该组织力求在学术界和工业界促进 SPH 的开发和使用。
评论