如何加速压力求解器收敛
-
使用interFoam计算气泡槽道流,发现压力求解器的收敛速度比较慢。
已经使用过两种方法:第一种是GAMG求解器,在大部分情况下效率都比较好。但是在一些算例中,气泡贴近壁面,很多气泡间产生了斥力,斥力是作为一个源项添加到动量方程UEqn当中的,见 https://cfd-china.com/post/37476。
斥力在许多气泡之间产生之后,可以明显感觉到GAMG求解器迭代次数增加,消耗时间变长。p_rgh { solver GAMG; tolerance 1e-09; relTol 0.002; smoother GaussSeidel; } p_rghFinal { $p_rgh; tolerance 1e-8; relTol 0; }
于是使用了第二种PCG求解器,仅在“斥力在许多气泡之间产生”这一情况下表现好一些。
p_rghFinal { solver PCG; preconditioner { preconditioner GAMG; tolerance 1e-8; relTol 0; nVcycles 2; smoother DICGaussSeidel; nPreSweeps 2; } tolerance 1e-08; relTol 0; }
比如下面这张图,在将GAMG求解器替换为PCG之后,迭代次数大大减小,计算速度也变大(子图上面的紫色线,在10000迭代步之前有个转折,转折之前,每计算一步需要的执行时间ExecutionTime越来越大,转折之后紫色线斜率基本固定,每计算一步需要的执行时间基本固定)。
我的问题是:
-
我现在的库朗数和界面库朗数都是0.5,敢放松库朗数的限制以使用大时间步长吗?
-
有什么方法可以加快压力求解器的收敛吗?有什么推荐压力求解器?或者PIMPLE算法的一些设置?目前的PIMPLE设置是这样的:
PIMPLE { momentumPredictor no; nOuterCorrectors 1; nCorrectors 3; nNonOrthogonalCorrectors 0; }
求各位大佬指教!🙏🙏
-