带有 CUDA 的 OpenFOAM 演示示例

计算科学 流体动力学 显卡 开放式泡沫 库达
2021-12-25 03:29:35

我正在寻找 OpenFOAM + CUDA 的简单使用示例/演示,并想了解 OpenFOAM 如何从 CUDA 中受益。问题是我没有流体动力学方面的任何背景,因此很难对这个问题有一个高层次的理解。

感谢您是否可以将我指向相关链接。我认为一种“Hello World”就足够了。

2个回答

我建议从这个页面开始,在那里你可以找到与使用 GPU 的 OpenFoam 相关的不同项目。

请记住,OpenFoam 的诞生旨在解决应用问题中的实际案例,将其视为工程师的典型用户。在这种程序中开发一个隐藏实现的层是正常的,所以用户的主要工作是设置选项。实际上,如果您尝试使用 OpenFoam,本质上您设置了选项:描述网格属性,选择求解器,ecc.. 在其语法中,但这并不是您在普通语言中所做的真正的编程任务。

想象一下 OpenFoam 作为前端,通过 cpu 或 gpu 实现作为后端。因此,当您使用 gpu 时,目标是不要注意到与前端的区别。

另一个考虑是在这种程序中知道你在做什么很重要,即知道有入门级障碍的软件,但更重要的是知道物理和 CFD。例如,多年来开发了许多求解器,每个求解器都针对特定情况。此外,要意识到使用它,了解OpenFoam 使用的有限体积法也很重要。

最后,我报告了Rapid CFD的链接,即 OpenFoam 的 gpu 版本,因此您可以导航到代码中。

我宁愿直接使用与 GPU 兼容的库重写有限体积代码。事实上,OpenFOAM 是用 C++ 编写的,并针对 CPU 并行使用进行了优化。

在我看来,最好要么使用针对 GPU 使用优化的现有有限体积代码,要么从零开始重写一个,同时注意可能的优化。