残差曲线解读:结果诊断与可信度验证
讲清 OpenFOAM 残差的归一化来源,用每个数量级所需迭代数与全局连续性误差两条独立证据判断收敛,并给出停滞、锯齿、假收敛三类曲线的定位路径。
残差曲线解读:结果诊断与可信度验证
残差曲线的形状比它的绝对值更有诊断价值。OpenFOAM 打印的 initial residual 是归一化后的相对残差,各方程的归一化因子量级不同,把 p 的 和 U 的 直接比大小没有意义。本文给出归一化因子的来源、把残差与全局守恒对照的判定方法,以及残差停滞、周期性锯齿、假收敛三类曲线各自的定位路径。
归一化因子决定了残差的量纲基准
求解器每个外层迭代打印的残差来自 solverPerformance,定义为当前线性系统残差与该方程归一化因子之比:
归一化因子由对角系数与源项的量级构成,量纲是 而不是 。这正是残差无量纲、可跨网格规模比较的原因,也是它不能直接当作物理误差的原因。
在 fvSolution 中收敛判据分两层:线性求解器的 tolerance/relTol 管内迭代,residualControl 管外层迭代何时退出。
solvers
{
p
{
solver GAMG;
tolerance 1e-7;
relTol 0.01;
}
U
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-8;
relTol 0.1;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 1;
residualControl
{
p 1e-4;
U 1e-5;
k 1e-5;
omega 1e-5;
}
}
relTol 0.1 表示内迭代只要把残差降到上一外迭代的 10% 就停,因此日志里的 final residual 常是 initial residual 的十分之一左右,这不是停滞。
用下降速率判断残差是否健康
比绝对值更可靠的指标是每个数量级所需的迭代数。某二维翼型算例中 U 的 initial residual 从第 50 步的 降到第 450 步的 :
即约 133 次迭代下降一个数量级。同一算例把 nNonOrthogonalCorrectors 从 0 提到 2 后降到每 60 次一个数量级,说明原来的非正交修正不足。这个量把"下降快慢"变成了可比较的数,也便于在两次网格或格式改动之间做对照。
把残差与全局守恒放在一起看
残差小不等于解正确,必须同时读日志中的连续性误差行:
time step continuity errors : sum local = 4.7e-09, global = -2.1e-10, cumulative = -8.4e-08
global 是全域通量不平衡的瞬时值,cumulative 是从 起的累积值。以入口质量流率 为基准,累积值 对应的相对不平衡为
低于 ,与残差 自洽。若残差已到 而 仍在 量级,问题几乎一定出在压力—速度耦合或边界通量上,而不是线性求解器。
三类异常曲线对应不同的根因
- 平台停滞:残差降到某值后水平不动,且
cumulative连续性误差不降。常见于压力全域无参考(p 边界全为 fixedValue)。 - 周期性锯齿:残差随外层迭代周期起伏,周期与某个松弛因子或
nOuterCorrectors相关,多见于 PIMPLE 中nOuterCorrectors 1却被当作瞬态求解。 - 假收敛:残差达标但目标量(升力、压降)仍在漂移。此时应延长迭代并把目标量写进监控,而不是降低
residualControl阈值。
失败模式
| 现象 | 根因 | 判定试验 |
|---|---|---|
| p 残差停在 不再下降 | 全域压力无参考、p 边界全为 fixedValue | 把一个出口改为 fixedFluxPressure 重跑 50 步 |
| U 残差每 3~5 步锯齿一次 | nOuterCorrectors 1 配 PIMPLE、松弛因子过大 |
把 nOuterCorrectors 提到 2、U 松弛降到 0.7 对比曲线 |
| 残差 但压降振荡 5% | 目标量未收敛,残差判据过松 | 关掉 residualControl 多跑 500 步,看压降是否平移 |
| 首步残差就 | 场初值与边界自洽、方程无驱动 | 检查 0/ 目录初值是否已等于边界值 |
| 连续性误差随步数线性累积 | 某出口通量符号或 phi 边界错误 |
用 surfaceFieldValue 对进出口分别积 phi 求和 |
参考文献
- OpenFOAM Foundation, OpenFOAM User Guide, §4.5 Solution and algorithm control.
- S. V. Patankar, Numerical Heat Transfer and Fluid Flow, Hemisphere Publishing, 1980.
- R. Peyret, T. D. Taylor, Computational Methods for Fluid Flow, Springer-Verlag, 1983.
- D. A. Anderson, J. C. Tannehill, R. H. Pletcher, Computational Fluid Mechanics and Heat Transfer, Hemisphere Publishing, 1984.
- H. Jasak, Error Analysis and Estimation for the Finite Volume Method with Applications to Fluid Flows, PhD thesis, Imperial College London, 1996.