请问为什么OpenFOAM会比Fluent计算快?



  • 因为方向的需求,仿真对象一般都是物理时间几个小时起步的热实验。之前我们基本都是用Fluent来算,在自己的服务器上算1s大概需要1200s(从论文和交流了解到大家都差不多也都是这个速度),所以开销比较大。最近意外的发现使用OpenFOAM的计算时间缩短为50s左右(网格是使用foam3DMeshToFoam直接转的,计算结果经过调整后也基本相同)。

    我查了一些资料,普遍认为Fluent毕竟是商业软件,在细节的调校上会优于OpenFOAM,因此计算速度也应该更快些。请问有没有大佬能指导一下为什么会这样:ok3:

    物理过程:封闭腔体内气液两相混合物受热的蒸发过程
    使用的OpenFOAM求解器:略微修改的compressibleInterFoam


  • OpenFOAM副教授

    1200s缩短为50s,这个听起来差别太大了吧?我也发现OpenFOAM比FLUENT可能稍微快一点,但不会大到像你这个有两个数量级的差别。说“可能”的原因是,OpenFOAM和FLUENT做不到线性求解器完全相同,没法很准确的去比较。

    FLUENT线性求解器大量采用多重网格技术,OpenFOAM里面选择就多了。我知道的是,如果是并行计算,多重网格因为不同核之间需要交换信息而网格相当于有好几套,反而会拖慢速度。这种情况下OpenFOAM里面的线性求解器反而会快一些。

    说一点不同的意见。我认为商业软件不意味着算得更快,只是说算起来更稳定(或者至少能给你一个结果)。比如FLUENT很多地方只让用迎风格式,大大加强了计算的稳定性。一个算例放到FLUENT里面基本上无脑就可以算,OpenFOAM就没这么灵活。另外,FLUENT里面在你勾选了一些设置之后它接下来只会让你选择它认为更匹配的其他设置,而OpenFOAM没有这个限制,原则上任何设置都可以放在一起用,这也是为什么FLUENT显得稍微好用一些的原因。



  • @cccrrryyy 我确实也觉得这个提升太夸张了,如果不是结果算对了我可能会重新看看求解器有没有写错...

    我完全赞同您的观点,Fluent确实更稳定一些,甚至最开始的时候很多设置明明是错的也能得到结果(当然这也给后期的工作造成了一些误导)。只是在查两者计算速度的时候看到有人提到Fluent似乎“应该”更快一些。

    我的计算都是在组里的小服务器上算的(单节点50核左右),可能确实有交换信息的问题,但是可能没那么突出?我也想到了可能是Fluent可以设置的地方太多了,有些地方可能只是打了一个勾就明显拖慢了计算的速度。除此之外,Fluent计算和保存的数据比OF多一些,因为它是大而全的处理器,所以对我这个计算不那么重要的数据算了一大堆。但是OpenFOAM我就只算了必要的几个场。

    但是我不清楚这些不同会不会让计算时间缩短这么多...


  • OpenFOAM副教授

    @MrZZQi 你在OpenFOAM里面用的是一个修改过的求解器,那在FLUENT里面也要稍微改改吧?会不会是改动的这一块影响了速度。我觉得最好的比较方法是比较现有的求解器,如果哪里稍微改动了一下比如加了udf什么的可能会影响速度。

    不太清楚你这个怎么会影响这么大,特别是你提到了结果是一样的。如果结果一样而计算速度差别这么大,感觉FLUENT的工程师们有活儿干了哈哈:chouchou:



  • Fluent算1200秒出结果,OpenFOAM算50s出结果 :134: :134: :134:



  • 是否都使用了并行。看看fluent并行的udf有没有弄正确



  • @Samuel-Tu 编译层面的问题是没有的,不清楚计算的效率够不够高。但其实我的UDF做的事情不多,不套速度也没有显著提升。:135:
    @东岳 额,之前Fluent跑了1个半月,最近OpenFOAM跑了2天吧...大概是这个比例...如果确实没有道理的话可能我要去重新看一遍“FluentXX天速成宝典”了...:xinlei:



  • @MrZZQi 虽然我是OpenFOAM用户,并且希望大家用OpenFOAM。但也不得不承认好像你Fluent设置的有问题 :135: 我不太懂Ansys的debug,希望有大佬评论评论



  • 刚发现提供的信息有点少,现在把改过的设置都放上来请大家参照一下@ @
    Fluent:
    求解器:
    intelMPI, Pressure-Based, Transient, VOF(evaporation-condensation, 0.1)->(这里是用了UDF的地方,但是不用速度也差不多)
    SST-k omega(默认) SIMPLE, 二阶迎风,松弛因子压力和动量改成了0.2-0.4。变步长最大Co1.0。
    物性:
    气体: PengRobinSonRealGas,其他物性2-3阶多项式拟合;
    液体:2-3阶多项式拟合;
    边界:
    全部都是定热流的wall。

    OpenFOAM:
    compressibleInterFoam(参照interCondensatingEvaporatingFoam和icoReactingMultiPhaseFoam做了蒸发冷凝的功能)
    fvSolution和fvSchemes和教程中depthCharge3D中的基本一致
    边界也都是定热流的wall

    都是比较常规的设置,Fluent单步的步长比OpenFOAM要大,但是每一步计算的时间都长很多。

    附单步迭代的信息:
    OpenFOAM

    PIMPLE: iteration 1
    Tsat min/max: 80.181136, 80.247495
    MULES: Solving for alpha.liquid
    Phase-1 volume fraction = 0.51083031  Min(alpha.liquid) = -3.856554e-19  Max(alpha.liquid) = 1
    Tsat min/max: 80.181136, 80.247495
    MULES: Solving for alpha.liquid
    Phase-1 volume fraction = 0.51083032  Min(alpha.liquid) = -3.8121024e-19  Max(alpha.liquid) = 1
    Tsat min/max: 80.181136, 80.247495
    dmdtNet Min/Max = -14.671404, 0.014690669
    smoothSolver:  Solving for T, Initial residual = 2.1393496e-07, Final residual = 1.5003722e-10, No Iterations 1
    min/max(T) = 77.605204, 205.25453
    Tsat min/max: 80.181136, 80.247495
    GAMG:  Solving for p_rgh, Initial residual = 0.00095227022, Final residual = 1.5511687e-06, No Iterations 2
    Tsat min/max: 80.181149, 80.247508
    GAMGPCG:  Solving for p_rgh, Initial residual = 3.5730969e-05, Final residual = 4.5624732e-08, No Iterations 2
    smoothSolver:  Solving for epsilon, Initial residual = 0.00017132906, Final residual = 6.8634692e-10, No Iterations 2
    smoothSolver:  Solving for k, Initial residual = 5.1282064e-05, Final residual = 5.9328133e-11, No Iterations 2
    ExecutionTime = 38531.31 s  ClockTime = 38630 s
    
    Courant Number mean: 0.0013264008 max: 0.093482513
    Interface Courant Number mean: 0.00010650775 max: 0.086589298
    deltaT = 0.0078032335
    Time = 2371.64461
    

    Fluent:

    Global Courant Number [Variable Time Step Criteria] : 1.000000
    Updating solution at time level N...
    Global Courant Number [Explicit VOF Criteria] : 0.401506
     done.
     physical-dt  7.0533e-03
    
      iter  continuity  x-velocity  y-velocity  z-velocity      energy           k       omega       uds-0       uds-1       uds-2       uds-3     time/iter
     378845  3.4443e-03  7.4834e-08  1.7722e-07  8.4802e-08  2.7444e-11  3.5311e-09  3.4612e-09  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:00   50
     378846  1.7348e+01  6.9973e-03  1.2052e-02  6.9842e-03  9.9895e-06  4.4626e-03  4.0640e-03  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:49   49
    
     Interrupting at the end of timestep.
     378847  3.4815e+00  4.7497e-03  5.4942e-02  5.0623e-03  1.2069e-07  1.4736e-03  3.8117e-03  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:38   48
     378848  2.9977e+00  3.1421e-03  5.6644e-02  3.3267e-03  1.2558e-06  7.9539e-04  1.9987e-03  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:39   47
     378849  1.2080e+00  2.1748e-03  4.8020e-02  2.2187e-03  7.3282e-07  5.9542e-04  1.3687e-03  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:31   46
     378850  8.6966e-01  1.4942e-03  4.0897e-02  1.4858e-03  2.1947e-08  4.6336e-04  7.9309e-04  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:24   45
     378851  6.8811e-01  1.0188e-03  3.3542e-02  1.0270e-03  8.7177e-09  2.9763e-04  3.9274e-04  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:28   44
     378852  5.8073e-01  7.0182e-04  2.7173e-02  7.6750e-04  9.5772e-08  1.8172e-04  1.8759e-04  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:22   43
     378853  5.3692e-01  5.3621e-04  2.2038e-02  6.3227e-04  5.8170e-08  1.0728e-04  9.3101e-05  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:25   42
     378854  4.5448e-01  4.3891e-04  1.7867e-02  5.4102e-04  2.9606e-09  6.1895e-05  5.0058e-05  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:20   41
     378855  3.8447e-01  3.6896e-04  1.4415e-02  4.6896e-04  5.6247e-09  3.6698e-05  3.0128e-05  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:23   40
    
      iter  continuity  x-velocity  y-velocity  z-velocity      energy           k       omega       uds-0       uds-1       uds-2       uds-3     time/iter
     378856  3.3015e-01  3.1262e-04  1.1634e-02  4.0507e-04  4.9572e-09  2.3493e-05  2.0253e-05  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:18   39
     378857  2.7745e-01  2.6668e-04  9.4143e-03  3.4592e-04  1.0535e-09  1.6748e-05  1.4701e-05  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:14   38
     378858  2.3252e-01  2.2920e-04  7.6248e-03  2.9420e-04  1.1210e-09  1.2696e-05  1.1017e-05  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:19   37
     378859  1.9462e-01  1.9401e-04  6.1676e-03  2.4997e-04  1.0988e-09  9.6986e-06  8.2737e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:14   36
     378860  1.6188e-01  1.6209e-04  4.9825e-03  2.0981e-04  4.9028e-10  7.3564e-06  6.2046e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:18   35
     378861  1.3445e-01  1.3550e-04  4.0196e-03  1.7539e-04  4.0848e-10  5.5568e-06  4.6415e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:14   34
     378862  1.1154e-01  1.1313e-04  3.2405e-03  1.4599e-04  4.1076e-10  4.1948e-06  3.4757e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:18   33
     378863  9.2579e-02  9.3990e-05  2.6188e-03  1.2056e-04  5.7101e-10  3.1690e-06  2.6054e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:14   32
     378864  7.6537e-02  7.7585e-05  2.1142e-03  9.9562e-05  2.8031e-10  2.3981e-06  1.9606e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:17   31
     378865  6.3182e-02  6.3877e-05  1.7063e-03  8.2046e-05  2.2622e-10  1.8242e-06  1.4817e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:13   30
     378866  5.2162e-02  5.2492e-05  1.3770e-03  6.7482e-05  2.2715e-10  1.3937e-06  1.1252e-06  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:16   29
    
      iter  continuity  x-velocity  y-velocity  z-velocity      energy           k       omega       uds-0       uds-1       uds-2       uds-3     time/iter
     378867  4.2969e-02  4.3074e-05  1.1112e-03  5.5418e-05  1.3508e-10  1.0696e-06  8.5871e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:12   28
     378868  3.5363e-02  3.5306e-05  8.9661e-04  4.5449e-05  1.0888e-10  8.2461e-07  6.5957e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:09   27
     378869  2.9082e-02  2.8907e-05  7.2347e-04  3.7235e-05  9.2262e-11  6.3807e-07  5.0846e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:12   26
     378870  2.3971e-02  2.3705e-05  5.8154e-04  3.0525e-05  6.6142e-11  4.9811e-07  3.9486e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:10   25
     378871  1.9709e-02  1.9380e-05  4.6905e-04  2.4966e-05  5.3191e-11  3.9020e-07  3.0861e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:12   24
     378872  1.6191e-02  1.5819e-05  3.7877e-04  2.0392e-05  4.7621e-11  3.0595e-07  2.4215e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:09   23
     378873  1.3332e-02  1.2936e-05  3.0475e-04  1.6673e-05  3.4573e-11  2.4177e-07  1.9115e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:12   22
     378874  1.0955e-02  1.0553e-05  2.4611e-04  1.3608e-05  2.7992e-11  1.9173e-07  1.5171e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:09   21
     378875  8.9954e-03  8.6002e-06  1.9901e-04  1.1098e-05  2.3739e-11  1.5253e-07  1.2082e-07  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:07   20
     378876  7.3847e-03  7.0089e-06  1.6101e-04  9.0497e-06  2.0773e-11  1.2127e-07  9.6339e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:09   19
     378877  6.0787e-03  5.7267e-06  1.2972e-04  7.3914e-06  1.4919e-11  9.7050e-08  7.7220e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:07   18
    
      iter  continuity  x-velocity  y-velocity  z-velocity      energy           k       omega       uds-0       uds-1       uds-2       uds-3     time/iter
     378878  4.9943e-03  4.6712e-06  1.0491e-04  6.0301e-06  1.2072e-11  7.7824e-08  6.2116e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:08   17
     378879  4.1015e-03  3.8081e-06  8.4964e-05  4.9174e-06  1.0264e-11  6.2522e-08  5.0093e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:06   16
     378880  3.3681e-03  3.1058e-06  6.8847e-05  4.0110e-06  9.0611e-12  5.0126e-08  4.0364e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:08   15
     378881  2.7743e-03  2.5420e-06  5.5536e-05  3.2794e-06  6.4648e-12  4.0483e-08  3.2706e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:06   14
     378882  2.2820e-03  2.0764e-06  4.4982e-05  2.6779e-06  5.2388e-12  3.2736e-08  2.6560e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:04   13
     378883  1.8769e-03  1.6953e-06  3.6490e-05  2.1863e-06  4.4704e-12  2.6502e-08  2.1599e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:06   12
     378884  1.5441e-03  1.3851e-06  2.9619e-05  1.7860e-06  3.9710e-12  2.1395e-08  1.7541e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:04   11
     378885  1.2745e-03  1.1348e-06  2.3929e-05  1.4616e-06  2.8385e-12  1.7412e-08  1.4340e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:05   10
     378886  1.0507e-03  9.2914e-07  1.9415e-05  1.1960e-06  2.2983e-12  1.4190e-08  1.1754e-08  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:04    9
     378887  8.6644e-04  7.6065e-07  1.5778e-05  9.7847e-07  1.9721e-12  1.1584e-08  9.6529e-09  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:04    8
     378888  7.1490e-04  6.2323e-07  1.2831e-05  8.0127e-07  1.6393e-12  9.4759e-09  7.9462e-09  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:03    7
    
      iter  continuity  x-velocity  y-velocity  z-velocity      energy           k       omega       uds-0       uds-1       uds-2       uds-3     time/iter
     378889  5.9033e-04  5.1121e-07  1.0437e-05  6.5658e-07  1.4488e-12  7.7358e-09  6.5362e-09  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:02    6
    !378890 solution is converged
     378890  4.8934e-04  4.2061e-07  8.4459e-06  5.3920e-07  1.0344e-12  6.3703e-09  5.4173e-09  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0:00:02    5
    Flow time = 106.9029003888784s, time step = 8002
    

    提前谢过各位大佬!


  • OpenFOAM副教授

    @MrZZQi FLUENT时间步长是不是太大了,还是说这个算例一般都这么大?100多秒用了8000个时间步,一步相当于0.0125s。另外加的uds残差一直都是0,相当于没有求解。FOAM那边时间步用的多少?每一个时间步的迭代步数呢?



  • @cccrrryyy 因为整体速度都很小,所以步长设置的都偏大一些,OpenFOAM步长也在0.005-0.01之间。UDS都是0是因为我把UDF的功能都关了,这样方便对比一些:duang:


  • OpenFOAM副教授

    @MrZZQi 那这个感觉挺奇怪,怎么会快这么多。我看OpenFOAM好像外迭代就1步,FLUENT也是这样么?



  • @cccrrryyy 对的,几何比较简单,网格质量还可以。我看计算也收敛了,所以就没有增加迭代次数。Fluent里单步大概迭代40-50次,所以慢很多。

    我把结果整理一下,如果有什么发现甚至错误再在下面更新:xinlei:



  • 我不太懂商软的使用,下周把这个给你在CFD界推一下,帮你争取点关注。



  • @东岳 千万别:wocao: 现在还完全没有搞懂,甚至连什么问题都没弄清楚。您那个公众号我挺多同学关注的,到时候有疏漏就闹笑话了。



  • 也行也行


Log in to reply
 

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