OpenFOAM交叉编译后的windows版本的效率问题



  • 我根据symscape交叉编译指南对OpenFOAM-v3.0+进行了交叉编译,但是发现在运行tutorials-damBreakWithObstacle时效率很低(事实上运行任何三维案例都一样),比虚拟机要慢很多倍,并且会在运行到0.18s时自动停止。不知道是否有人做过这方面的工作,你们在做这方面的工作时是否有相似的问题?(由于是第一次发帖,如果有什么信息不全面的话请见谅)

    交叉编译指南:https://www.symscape.com/openfoam-plus-v3-0-on-windows
    在windows下运行的log文件: windows.zip
    OpenFOAM版本是:OpenFOAM-v3.0+
    电脑系统与配置是:windows7+i552ooU



  • 我看了一下你的log GAMG: Solving for p_rgh, Initial residual = 2.50286e-006, Final residual = 1.97476e-008, No Iterations 1000 应该不是编译的问题,你的压力求解不对



  • @东岳 首先非常感谢老师的回复,我是使用的OpenFOAM-v3.0+自带的算例,所以还真没有没有去考虑过它求解设置的正确性问题。
    我主要感觉到迷惑的一点是这个算例在Linux下没有经过交叉编译的OpenFOAM-v3.0+计算的时候没有任何问题,但是copy到Windows下之后就会出现莫名其妙停止计算的问题,而且没有报错。



  • 你可以试试其他的tutorials
    我在5年前做过一样的工作,当时没有问题,针对你的,我不太清楚



  • @东岳 好的谢谢老师



  • 我已经找到这个问题的原因了,需要将编译过程中的单精度改为双精度a45344d1-7a74-48b5-a276-beb38aaa055d-image.png ,就是将SP改为DP,但是还是有些小疑问,按道理来说单精度的话效率应该更高才对,怎么在这儿反而更低了呢?



  • 你有没有试试别的tutorials效率如何。首先,应该排除你的压力矩阵求解器的迭代次数影响。

    1. 如果别的tutorials正常,说明问题在压力矩阵求解器迭代次数,为什么迭代1000次,又可能是精度设置的原因。所以下一个方向应该是精度与稀疏线性系统求解器之间的debug

    2. 如果别的tutorials也慢,说明在精度设置,不再压力矩阵求解器迭代次数



  • @东岳 老师你好,非常抱歉回复晚了。我以前只尝试过cavity、dambreak、sloshingTank2D、flange、sloshingTank3D6DoF这几个算例,其余的算例还没试过,除了cavity以外都会出现计算很慢然后莫名其妙停止的情况。现在更改为双精度浮点数之后计算效率与Linux基本差不多。


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2