并行和串行结果不一样。。
-
有没有大神遇到过串行和并行结果不一样的情况(同一个solver,同一个case,设置都一样)?
-
遇到过,目前也暂不清楚如何处理 :cheeky:
-
差别蛮大
-
并行结果
串行结果
不知道为什么,相同的算例,相同的solver,并行和串行的结果如此之大(算例为气泡在静止流体中,无重力)
-
遇到过,尤其是前几天试了下动网格并行。。结果简直感人。建议试一下不同的decompose method,减少一点分区个数。
-
@cyw 网格多少?
-
@txwwbz 四十二万左右。。。
-
@cyw 这个我也算了下,气泡静止扩散。
-
串行并行不一致的原因通常有两个:
- 数值截断误差
- 自研求解器或边界条件未对并行情况做特殊处理
-
我也遇到过。用的simple 前期还好,计算到后期,分块越多某一点的速度的差别越大。
有一个大神说要检查一下分块交界面的通量,然而并不会处理 -.- -
@cyw 可以在场变量更新的地方添加correctBoundaryConditions();如U.correctBoundaryConditions();目的是可以让进程间边界面上的值更新;具体可以参考 https://www.cfd-online.com/Forums/openfoam-programming-development/88050-how-handel-fields-parallel-computation.html 。希望有用
论坛登录问题反馈可联系 li.dy@dyfluid.com