网格收敛 (Mesh Convergence) — CAE术语解释
网格收敛的定义
我的师傅问我"确认网格收敛了吗?",但我不太明白什么是网格收敛。只要细化网格就可以了吗?
简单说,就是逐步减小单元尺寸,观察所关注的物理量(如应力、位移等)基本不变的过程。无论是FEM还是CFD,网格都是对连续体的离散逼近,过于粗糙的网格会导致不精确的解。但细化过度会使计算时间爆炸增长。网格收敛研究就是找到精度和计算成本的平衡点。
比如什么情况下会遇到问题呢?
常见的是在应力分析中查看圆角部分的最大应力。用粗网格时应力是200MPa,细化为2倍时变成280MPa,再细化就是310MPa……这样结果不断变化。我们说这时"解未收敛"。这种状态下的结论不可信,不能放在报告中。
从数学的角度讲,单元尺寸 $h$ 趋向于零时,数值解就趋向于精确解,对吗?
完全正确。数值解 $f_h$ 与精确解 $f_{\text{exact}}$ 之间存在截断误差关系:
这里 $p$ 是精度阶数(order of accuracy),$C$ 是常数。当 $h \to 0$ 时,误差收敛到零,这在理论上是有保证的。但实际中不能让 $h=0$,所以需要用有限个网格来判断"是否充分收敛"。
Richardson外推法
我听说过Richardson外推法这个名字。真的可以推断真实值吗?
不是推断精确的真实值,而是求出"真实值的更好近似",叫做外推解(extrapolated solution)。思路很简单,就是从两个以上不同网格尺寸的解出发,消除截断误差项。
比如,用网格尺寸 $h_1$ 和 $h_2$($h_2 < h_1$)得到的解分别为 $f_1$ 和 $f_2$,如果精度阶数 $p$ 已知,则:
$$f_{\text{ext}} = f_2 + \frac{f_2 - f_1}{r^p - 1}$$这里 $r = h_1 / h_2$ 是网格细化比(refinement ratio)。通常用 $r=2$(单元尺寸减半)。
如果不知道精度阶数 $p$ 怎么办?能直接用二阶单元对应的 $p=2$ 吗?
理论精度阶数可以作为参考,但实际问题中由于边界条件、单元扭曲等因素,结果往往与理论不符。最佳做法是准备3个网格水平(粗、中、细),从测量得到 $p$。设网格尺寸为 $h_1 > h_2 > h_3$,对应解为 $f_1, f_2, f_3$,则:
这里 $r = h_1/h_2 = h_2/h_3$(等比细化时)。用这个 $p$ 进行外推,可得更可靠的估计值。
要跑3次计算有点麻烦啊……值得吗?
虽然麻烦,但这正是"对数值解品质进行保证"的本质。在学术论文和企业V&V(验证与确认)报告中,没有Richardson外推法的收敛性分析,很难声称结果可信。特别是ASME V&V 20规范中,数值解不确定度评估的标准做法就包括Richardson外推法。
GCI(网格收敛指数)
什么是GCI?与Richardson外推法有什么不同?
GCI(网格收敛指数)是Roache在1994年提出的量化网格收敛不确定性的指标。它是在Richardson外推的基础上,乘以一个安全系数 $F_s$,来给出误差的信任区间。
细网格侧的GCI计算公式为:
$$\text{GCI}_{\text{fine}} = \frac{F_s}{r^p - 1} \left| \frac{f_2 - f_1}{f_2} \right|$$建议的安全系数为:2水平比较时 $F_s = 3$,3水平结合Richardson外推时 $F_s = 1.25$。也就是说,正确做3水平的工作可以降低安全系数,误差范围会更紧。
能用具体数值说明吗?GCI多少算是合格?
虽然没有绝对的合格线,但实务中的惯例是:
- GCI < 1%:收敛性非常好。论文和规范符合性足够
- GCI = 1~5%:工程可接受。多数实务情况属于这个范围
- GCI > 5%:收敛性还不够。需要进一步细化网格或重新审视模型
比如,在汽车碰撞分析中,变形量的GCI为2%就被认为"足够好了"。但在核电等安全规范严格的领域,可能要求GCI < 1%。
听说要确认GCI是否在"渐近范围内",那是什么?
好问题。渐近范围(asymptotic range)是指截断误差被 $C \cdot h^p$ 形式支配的区域,也是Richardson外推有效的前提。确认方法是用3水平的GCI计算下面的比值:
如果这个比值接近1,说明在渐近范围内(=收敛过程顺利)。如果偏离1很大,可能是网格还太粗,或者存在解的特异性等问题。
h-细化与p-细化
听说细化网格有h-细化和p-细化两种方法,区别是什么?
大体分为两种方法:
- h-细化:减小单元尺寸 $h$。也就是增加单元数量。这是最普遍的做法,网格收敛研究中"细化网格"通常就是指这个
- p-细化:保持单元尺寸不变,提升形状函数的次数 $p$。比如从一次单元改为二次单元
实务中h-细化更常见,原因很简单——任何求解器都能通过指定单元尺寸方便地实现。而p-细化仅在某些商用求解器(如StressCheck、NX Nastran的p-element)中支持。
还有hp-细化吗?
有的。hp-细化结合了两种方法:在特异点附近用h-细化减小单元,在光滑区域用p-细化提升阶数。理论上能达到指数级收敛速度(exponential convergence)。但实现复杂,支持的求解器有限。目前还主要在研究阶段,实务应用还要等一段时间。
收敛性研究步骤
实际做网格收敛研究时,步骤是什么?能分步骤教我吗?
好的,典型的步骤如下:
- 确定关注的物理量 — 最大应力、位移、压力损失、热流量等。可以有多个,但要明确"以什么来判断收敛"
- 准备3个或以上网格水平 — 粗(Coarse)、中(Medium)、细(Fine)至少3种。单元尺寸比 $r$ 建议1.3~2.0。理想情况 $r=2$(单元数约8倍增加),但实际往往用 $r \approx 1.5$ 以控制计算成本
- 用相同条件进行计算 — 边界条件、物性、求解器设置保持一致。仅改变网格
- 对比结果 — 将关注物理量整理成表格,按网格尺寸绘图
- 计算Richardson外推和GCI — 实测精度阶数 $p$,求外推解和GCI
- 检验渐近范围 — 确认GCI比接近1
- 记入报告 — 清晰说明使用的网格参数、结果表、GCI值
是全局统一细化,还是只在关注区域细化?
严格的收敛性研究应该全局统一细化。因为如果只在局部细化,远处粗网格的影响可能被隐藏,无法排除其对结果的贡献。不过实务中考虑计算成本,经常会在关注区域为主进行细化,这种情况下需要另外验证远处网格的影响足够小。
网格细化的终止条件
我听说有的情况下,无论怎么细化网格应力都在发散。这是什么情况?
这是应力特异点(stress singularity)的情况。比如尖锐的转角(R=0的无圆角角部)、集中荷载施加点、异种材料界面端部。这些位置理论上应力趋于无穷大,所以网格越细,应力值越大,无法收敛。
那这种情况下网格收敛研究就不适用了?怎么判断结果?
特异点处的应力确实与网格有关,不存在"网格收敛值"。应对方法有几种:
- 评估远离特异点的应力 — 距离1~2个单元之外,影响就明显减弱
- 用位移或反力代替应力 — 这些在特异点也能收敛
- 修改模型消除特异点 — 实际零件不存在R=0的角,加上合理的圆角
- 破坏力学方法 — 用应力强度因子 $K$ 代替点应力
除特异点外,什么时候可以停止细化?实务的判断标准是什么?
实务中的判断标准如下:
- 变化率在1~2%以内 — 前后网格的结果变化1~2%以内,工程上就足够
- GCI < 5% — 大多数产业规范都接受这个范围
- 相对其他不确定性 — 如果网格误差相对于材料物性、边界条件的不确定性已经很小,就可以停止
- 与安全系数的关系 — 设计安全系数为2.0,网格误差3%就远小于安全系数,可以接受
关键思想不是追求"零误差",而是确保"网格误差相对于其他不确定性足够小"。
明白了。Richardson外推→GCI计算→渐近范围检验,这就是定量评估网格收敛的标准路线。
完全正确。补充一下,NovaSolver的网格收敛自动计算工具可以帮你一键完成这些计算——只需输入3个网格水平的结果,就能自动算出Richardson外推、GCI和渐近范围检验。不用自己推导公式,强烈推荐试试。
关联术语
- Richardson外推法(Richardson Extrapolation):从不同网格尺寸的解推断真值的方法
- GCI(Grid Convergence Index):Roache提出的网格收敛不确定性指标
- h-细化:通过减小单元尺寸提高精度的方法
- p-细化:通过提升多项式次数提高精度的方法
- 渐近范围(Asymptotic Range):截断误差被 $O(h^p)$ 支配的区域
- 应力特异点(Stress Singularity):应力理论上趋于无穷的位置。网格收敛不适用
- V&V(Verification & Validation):验证数值解正确性和物理模型合理性的过程
对CAE术语的准确理解是团队沟通的基础。 — NovaSolver项目致力于支持实务人员的学习。
分享你在网格收敛实务中遇到的问题
NovaSolver项目致力于解决CAE工程师每天面临的问题——建模繁琐、计算成本高、结果解释困难。你的实务经验将是推动更好工具开发的原动力。
联系我们(筹备中)相关话题
更多细节
报告