观测收敛精度阶——故障排查指南

分类:验证与确认 | 2026-02-20
本文已迁移至集成版
更充实的内容请在 mms-convergence-rate.html 查看。
CAE visualization for mms convergence rate troubleshoot - technical simulation diagram
MMS收敛阶数的计算方法 — 故障排除指南

观测精度阶的计算——基本式与应有的样子

用MMS(制造解法)或精确解基准做代码验证时,最终的合格判定要落在观测收敛阶上。在加密比为 \( r \) 的网格序列上测得误差范数 \( E_h \),观测精度阶为

$$ p_{obs} = \frac{\ln(E_{rh}/E_h)}{\ln r} $$

它渐近到离散格式的名义精度阶(形式阶)即为合格。验证健全时,\( \log h \)-\( \log E \) 图上的点会落在理论斜率的直线上,网格越细斜率越靠近理论值。本页以"误差测量方式本身出错"为主线,按症状逐一排除这个数字"出不来、乱跳、不敢信"的成因。方程一侧的成因(边界、源项、限制器)请一并参考NS篇源项篇

症状0:误差的测量方式本身就错了(最高频)

🙋

我在粗网格和细网格上测了误差,可算出来的阶数一会儿1.3一会儿2.8,每次跑都不一样……


🎓

怀疑方程和代码之前,先审查误差范数的计算流程本身。测精度阶是要分辨误差两到四个数量级变化的精密测量,测法上的粗糙会原样变成阶数的混乱。三个检查点:①精确解的取值位置是否与数值解完全一致(格心?节点?积分点?);②范数里是否加了权重——非均匀网格上取简单平均,会扭曲粗区与细区的贡献;③有没有把单元平均量与点值混用——有限体积的解是单元平均,精确解也必须按单元平均(或含 \( h^2 \) 阶修正)来比,否则单这一条就会叠上二阶的噪声。

离散 \( L^2 \) 范数的标准形式是带体积权重的。

$$ E_h = \left( \frac{\sum_i V_i \, (u_i - u_i^{exact})^2}{\sum_i V_i} \right)^{1/2} $$

正如这个式子所示,只要守住①同位置取值、②体积权重、③解的种类(点值/单元平均)一致这三条,"阶数乱跳"的问题相当一部分就消失了。

症状1:精度阶一贯低于理论值

检查项内容
全周期测试用各方向全周期的制造解只验证内部格式。这里能出阶数,说明元凶是边界处理(低阶的边界外推、边界条件不一致)
范数种类只有 \( L^\infty \) 偏低,说明是局部掉阶(角点、边界层)。\( L^2 \) 正常则整体是健全的
迭代收敛的深度每一级是否把迭代残差压到比离散化误差低两个数量级以上。网格越细误差越小,判据越容易被"蒙混",要留意停滞
源项与初始条件的精度源项的数值积分阶数、初始条件的投影精度,是否低于格式本身的精度阶
解的光滑性若制造解或精确解自身带奇性(角点处解的低正则性),掉阶就是理论所预言的=代码无罪

症状2:精度阶在各级之间振荡、不单调收拢

两点式 \( p_{obs} = \ln(E_{2h}/E_h)/\ln 2 \) 只用相邻两级,因而对噪声敏感。对策分两步。

  1. 增加网格级数做最小二乘拟合——对4~5级的 \( (\ln h_i, \ln E_i) \) 拟合直线,斜率作为精度阶的估计值,残差作为噪声的指标。同时并列给出两点式的"相邻对精度阶",就能看出渐近推进的过程
  2. 缩小噪声源——振荡消不掉时,按(a)网格序列缺乏系统性(自动网格生成器改变了单元排布)、(b)舍入误差地板(见下)、(c)迭代提前截断的顺序排查

其中(a)在非结构网格上尤其高发。仅就验证算例而言,采用结构网格的均匀加密(或同拓扑的相似加密)是稳定精度阶测量最可靠的手段。

症状3:网格越细精度阶先封顶后劣化

误差除离散化误差外,还有舍入误差与迭代截断误差构成的"地板",加密到接近这个地板时表观精度阶就会下降。诊断很简单,看误差的绝对值。若 \( E_h \) 已落到 \( 10^{-10} \) 量级(接近双精度有效位的极限),再细的网格就不能用于测精度阶了。对策是:①加大制造解的幅值,相对压低地板;②在较粗的几级上评估精度阶;③把迭代求解器的判据进一步收紧。"越细越好"在精度阶测量中并不成立——诀窍是在渐近区与地板之间那个"可用窗口"里测。

症状4:精度阶高于理论值

二阶格式测出三~四阶时,先别高兴,该怀疑的是:①还没进入渐近区(在误差高阶项占优的前渐近区,表观精度阶向上向下都可能偏摆);②误差项的偶然相消——对称性很高的制造解、或特定波数下主误差项消失所致的"超收敛"。确认方法是换一个波数与相位都错开的制造解重测。若仍出高阶,那就该反过来审视自己对该格式名义精度阶的理解(截断误差分析)。在报告中附上"换制造解也是同样趋势"的确认,是避免误报超收敛的规矩。

症状5:时间精度阶测不好

非定常问题的时间精度阶测量,难点在于空间误差与时间误差混在一起。

精度阶测量的质量清单

🙋

清单好长……说到底,测精度阶最要紧的心法是什么?


🎓

就是"测精度阶是一场实验"这个心法。实验离不开仪器校准与误差评估,测精度阶同样需要对误差范数做校核(校准仪器)与管控噪声源(控制环境)。图上有点不落线时,先怀疑测量流程,再怀疑代码里的bug——只要守住这个顺序,查因的时间就能缩短一个数量级。等测量流程定型了,就把它脚本化,和源项的自动推导一起做成回归测试。精度阶测量不该是一次性的仪式,做成持续守护代码的自动化安全网,价值才显现出来。

相关文章:MMS概要(整合版)MMS源项的自动推导GCI的故障排查(把同一个观测精度阶用于解验证的场合)。

评价本文
感谢您的反馈!

帮助
想了解
更多
报告
错误
有帮助
0
想了解更多
0
报告错误
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — 网站地图
查看简介