使用RapidCFD运行OpenFOAM算例时是否需要对输入文件做相应修改?



  • 我是一个CFD新手,这几天在尝试用RapidCFD在GPU上跑OpenFOAM算例,然而运行过程很不理想。
    不对算例输入文件做任何修改,使用“simpleFoam -noFunctionObjects”运行OpenFOAM自带算例motorbike时,CPU单核运行成功收敛,在GPU上无法收敛。是不是需要在某些输入文件里面做一些修改,才能真正使用GPU对应的solver?
    有没有谁用过RapidCFD?还望不吝赐教。谢谢!



  • 如果也有人对RapidCFD以及OpenFOAM在GPU上的运行感兴趣,这个是RapidCFD的官网
    https://sim-flow.com/rapid-cfd-gpu/



  • 最近下载试了一下,不过在高分辨率屏幕不适配,我跟他们反馈了一下。说下一版本会改进。

    你这个你觉得是设置错误还是bug?如果是bug可以和他们联系。为什么使用gpu计算?

    另外?能否问一下为什么不用linux的openfoam?周围用windows的多么?



  • @李东岳 我不太确定是我设置问题还是bug,因为我不知道用RapidCFD运行算例是不是需要做特别的修改,所以想来这里问一下有没有人有相关的经验。
    我之所以使用GPU,是因为我们公司想弄一个集群跑模拟,我现在是在一个插了GPU加速卡的工作站上作测试,看看GPU加速效果是不是明显,以帮助判断要不要在集群上布置GPU。不过我个人是倾向于只用CPU并行加速就好了,GPU数目很少的话,感觉也挺鸡肋的。。。
    我是在Ubuntu 16.04上编译的RapidCFD源码,从github上面下载的 https://github.com/Atizar/RapidCFD-dev
    你说的高分辨率屏幕不适配我不是很清楚,你是说sim-flow的GUI吗?



  • 我之前说对输入文件没有修改也不尽然,system/fvSchemes里面grad(U)后面的“cellLimited Gauss Linear 1” 被我改成了“Gauss Linear”,不然rapidcfd会报错。当然,在cpu上运行的时候也做了这样的修改,以保证二者输入文件相同。
    此外,我用icoFoam运行了一下cavity算例,不作任何修改,CPU与GPU上都可以运行并收敛,然而屏幕输出里可以看到对于pressure solver,RapidCFD使用了“AINVPCG”,而非OpenFOAM的“DICPCG”, 同时,在每一时间步长内,RapidCFD需要更多的迭代次数来收敛。



  • 没用过这个,不过GPU计算只是在矩阵求解上比较快。如果你的算例矩阵求解是瓶颈可以一试。`AINVPCG``估计是他们自己写的矩阵求解器。话说回来,好像论坛用外挂的少。



  • @baojd42 据我所知,RapidCFD的代码是在非常底层做了修改,大部分都是直接在GPU上运行的,所以,你说在CPU上单核运行成功收敛,这个不知是何意?按理说RapidCFD是无法在只有CPU的环境下运行的,必须要用到GPU。



  • @xpqiu 抱歉,我之前的表述有问题。我同时安装了OpenFOAM-2.3.1和RapidCFD以比较两者性能,CPU运算是用的OF231的求解器。RapidCFD确实是必须得用GPU。


Log in to reply