有关p_rgh收敛的问题
-
大家好,有关p_rgh我有一个疑问:
在使用PIMPLE算法进行计算的后输出残差曲线会出现两个p_rgh(p_rgh0,p_rgh1),我查阅资料了解到是因为在图中nCorrectors中设置的,网上有人说是p_rgh循环了两次的原因。
我的问题是:假如我将nCorrectors的数值改为3,在计算后输出残差曲线发现p_rgh0,p_rgh1的收敛的标准比较低在0.1多一点,而p_rgh的收敛数值就会达到1e-5. 这样的压力能算做收敛吗?
这张图是我计算后输出的残差曲线,当nCorrectors的数值写为2时,在0.1那收敛,是不是收敛标准太低了呀,不能算作收敛呀。
第一次在论坛发帖,希望大家能理解我的疑问,谢谢大家啦。 -
@dingcy 抱歉我之前的解释可能有误。
(1)残差的定义是: r=Ax-b, 即当前步的解代入当前步的线性方程组时,产生的偏差。所以如果要判断是否收敛,应该看的是p_rgh0,即第一次迭代时的残差。
(2)比如为什么下一个时间步第一个压力残差不是接着上一个时间步最后一个压力残差而是接着上一个时间步第一个压力残差值呢
。至于这个问题,因为下一个时间步的线性方程组系数(A,b)已经更新了,所以残差不会跟上一步的最后残差。
(3)这里说的时间步是外循环,你设定里的nCorrectors,其实是在一个时间步中的内迭代。
(4)用foamLog会把每一个内迭代的残差都生成单独的文件(p_rgh0即对应第一个内迭代,p_rgh1对应第二个内迭代),所以你画图的时候,其实是对每个内迭代的残差画曲线。最后,需要强调的是,
残差并不是收敛的判断标准
。收敛是指两个相邻时间步的结果不再变化,而残差只是在当前时间步内的线性方程组的残值。