网格独立性验证模拟器 返回
验证·确认 (V&V)

网格独立性验证模拟器

在CFD和有限元分析中必不可少的"网格独立性",用5阶段网格一次性评估的工具。只需输入粗→最细网格得到的解,就能瞬间算出相邻阶段的相对变化、独立达成阶段、观测收敛次数 p、Richardson外推值,可作为V&V(验证与确认)的证据使用。

参数设置
粗网格解 u₁
第1阶段(最粗网格)得到的代表解
中等网格解 u₂
代表尺寸减半的第2阶段的解
细网格解 u₃
进一步减半(基准尺寸 ÷4)的第3阶段
更细网格解 u₄
基准尺寸 ÷8 的第4阶段
最细网格解 u₅
基准尺寸 ÷16 的第5阶段(最精细)
收敛容限 ε_tol
%
相对变化小于此值时判定为独立
计算结果
ε₂₁ (%)
ε₃₂ (%)
ε₄₃ (%)
ε₅₄ (%)
网格独立达成阶段
观测收敛次数 p
5阶段网格细化的可视化

从左到右网格逐阶段细化的过程动画显示。各阶段上方显示解 u_k 和相邻相对变化 ε(%)。独立达成阶段显示绿色标记,未达时显示红色提示。

解 u_k 的网格阶段收敛
相对变化 ε(%) 与容限值
理论·主要公式

$$\varepsilon_{k+1,k}=\frac{|u_{k+1}-u_k|}{|u_{k+1}|}\times 100\%,\quad p=\frac{\ln(\varepsilon_{32}/\varepsilon_{43})}{\ln r},\quad u_{ext}=u_n+\frac{u_n-u_{n-1}}{r^{p}-1}$$

通常 r=2 进行顺次倍细化。观测 p 理想上接近设计次数(1阶、2阶等),Richardson外推 u_ext 给出网格无限细分时的推定真值。

$$\text{独立判定: } \varepsilon_{k+1,k} < \varepsilon_{tol}\ \text{(典型 1\%)}$$

相邻阶段的相对变化低于容限值时判定为"网格独立达成"。容限值根据对象量和要求精度在 0.1~2% 范围内选择。

$$\text{推定离散化误差: }e_n \approx \frac{u_n-u_{ext}}{u_{ext}}\times 100\%$$

从最细网格解 u_n 与外推值 u_ext 的差估算当前网格的离散化误差。报告中应同时提示外推值、观测 p、GCI。

网格独立性验证 (Mesh Independence Study) 是什么

🙋
CFD结果给上司看时,他总是问"这个做了网格独立性吗?"。要看什么才对呢?
🎓
这是常问的问题。CFD和有限元分析,单元越细得到的解就越接近真值。反过来说,"用当前网格得到的数字再细化一点后是否会改变?"若不确认这一点,那个结果可能是网格的偶然值。所以要用粗→中→细→…等几个阶段的网格来解同一个问题,观察关注的量(最大应力、阻力系数、出口温度等)如何随网格大小变化。这就是"网格独立性验证"。
🙋
那要做几个阶段呢?有的报告书只用2个阶段就说"差异小所以OK"。
🎓
2阶段的话无法区分"碰巧接近"还是"真正独立"。最少3阶段,最好5阶段。原因是用Richardson外推反算观测收敛次数 p 需要最少3个解(最细的3个点)。p 知道后,"无限细网格时的推定值"也能反算出来。这个工具就是要你输入5个阶段,算出ε₂₁~ε₅₄的相对变化,再从最细的3个点算出 p。
🙋
我用默认值算了,ε₅₄ 还有3%,verdict 显示红色"未达"。为什么?
🎓
观察得好。u=[50,75,90,95,98] 的话,相邻差依次为33%→17%→5.3%→3.1%,下降还在继续。1%的容限值还没到。这说明"还没进入渐近收敛区",需要再细化1~2个阶段,或重新检查网格细化方法(是均一的还是边界层集中的)。观测 p 也是0.78,小于1,远离理论的2阶精度(p≈2)。这是边界层或需要捕捉的急梯度区域还未充分解析的典型例子。
🙋
那我试试把 u₅ 改成99或99.5,verdict 会不会变绿?
🎓
试试看。u₅=99.5 的话 ε₅₄=|99.5-95|/99.5×100=4.52%,还是到不了。u₅=95.5 的话是0.52%,小于1%,就变成独立达成(阶段5)了。重点不是"编数字来达到独立",而是"实际细化结果确实画出那条曲线"。实务中应同时报告观测 p 和Richardson外推值,写成"当前网格的离散化误差概在2%以内"这样的定量表述,这才是正规的V&V作法。
🙋
最后一个。有边界层的问题(比如翼型周围)要取网格独立有没有诀窍?
🎓
边界层问题要特别注意。全域均一细化不行,如果壁面附近的 y+ 没变,那就没意义。窍门是"全体按 r=2 顺次倍细化"和"边界层网格 y+ 单独控制"这两轴并行。比如全体细化是 r=2 顺序,同时第一层 y+ 分别设为1→0.5→0.2,做2轴参数研究。这个工具处理的是单参数系统,但现场的做法就是把全体细化轴的收敛曲线输入这里就可以了。

常见问题

在CFD和FEM中,逐步细化网格时,解(应力、温度、阻力等)会趋向真值收敛。当相邻阶段的解的相对变化小于容限值(典型为1%)时,判定为"更细的网格不会改变结果",该阶段称为网格独立达成阶段。没有这种验证的解析结果可能取决于网格大小,从V&V角度被认为不充分。
当网格尺寸按 r 倍(通常 r=2,即代表寸法减半)顺次细化时,观测收敛次数由 p = ln(ε₃₂ / ε₄₃) / ln(r) 得出。其中 ε_{k+1,k} 是相邻解的相对变化,用最细的3个解计算。理想情况下 p ≈ 设计次数(1阶精度方案则 1,2阶精度方案则 2)。若 p 明显小于设计值,说明网格还未进入渐近收敛区,或存在不连续性、边界层未充分解析。
Richardson外推是从有限网格解列反推"无限细网格时的推定真值"的方法。公式为 u_ext = u_n + (u_n − u_{n−1}) / (r^p − 1),可从有限网格计算中消除网格依赖误差而获得参照值。即使实际分析未达网格独立,也可用该外推值与最细网格解的差定量化"离散化误差",用作论文或报告的V&V证据。这也是GCI(网格收敛指数)的基础。
要求观测收敛次数 p,需要相邻2阶段的相对变化(ε₃₂ 和 ε₄₃)的比,其计算需要最少3阶段(即 u_粗·u_中·u_细)的解。为了"外推值的可靠性",最好有5阶段。现场中有人为了省时省力,只用2阶段就说"基本一样所以独立",但这无法排除两点碰巧接近的可能性,作为网格独立的证明是不充分的。

实际应用

飞机·汽车空气动力学分析:翼型周围或车体周围的CFD(RANS / LES)中,阻力系数 Cd 或升力系数 Cl 对网格大小很敏感。通常定义为"Cd 的变化控制在1%以下的阶段"为独立达成,用该网格进行设计研究。观测 p 或Richardson外推值在SAE等学术论文投稿时总是作为附加资料要求的。

核反应堆·压力容器的FEM应力分析:焊接接嘴的应力集中等局部最大应力主导的问题中,网格独立性证明是向监管机构提交的必要条件。ASME BPVC规范中也明确规定"最大应力点相邻细化对应的相对变化小于容限值"是必须要件,所以本工具的相对变化追踪成为分析报告的必备部分。

注射成形·铸造的热流体分析:在金模内充填和凝固分析中,焊缝线位置或浇口附近流速峰值都对网格有依赖。用粗网格制定的成形条件在实机上常常失效,没有独立性验证的结果直接用于量产设计很危险。把3个以上阶段的细化研究作为最少V&V步骤纳入工作流程。

大学教育·自学:CFD/FEM初学者常卡在"结果的信任度"上。本工具即使不实际运行分析,也能把教科书例题的收敛曲线输进去,直观体验 p 和外推值,适合作为讲座或练习的辅助教材。有教员反馈说"学生能立刻理解网格独立性的含义"。

常见误解与注意事项

最大的陷阱是"只报告总网格数,省略独立性验证"。"总单元500万"不说明粗细,与独立性无关。学会发表或论文总会问到"收敛履历"和"观测 p"。比如翼的 Cd 分析应该提示"网格200万→500万→1000万→2000万→4000万,Cd 分别为 0.0312→0.0298→0.0291→0.0289→0.0288"这样的细化阶段序列。本工具的5阶段格式正是对应这种提交格式。

其次是"观测 p 应该等于设计次数"的思想。即使用的是2阶精度方案,若网格还未进入渐近收敛区,p 也会呈现 0.5~1.5 的分散。反过来,若 p 极大(>3),多数是解的振动或随机噪声导致ε碰巧接近,不可信。理想的 p 应该是"充分进入收敛区、设计次数的 ±50% 范围内"。超出范围要么进一步细化网格,要么怀疑收敛履历本身。

最后是"把外推值 u_ext 当成真值"。Richardson外推只是"基于当前网格列直线外推的推定值",不是真实的真值。乱流模型近似误差或边界条件的不确定性这个外推消不了。报告应写成"网格离散化误差相对外推值推定~%",而不是说"真值"。GCI(网格收敛指数)标准做法中会给外推误差再乘以安全系数 1.25。

使用指南

  1. 输入粗·中·细·极细·超微细5阶段网格大小(u1Range~u5Range)和对应的解析结果值(u1Num~u5Num)
  2. 自动计算相邻网格间的相对误差ε₂₁、ε₃₂、ε₄₃、ε₅₄(%)
  3. 判定相对误差收敛到3%以下的阶段为"网格独立达成阶段"
  4. 从连续的误差比用GCI(网格收敛指数)法算出观测收敛次数p
  5. 用Richardson外推法推定理论值(h→0时的极限值)进行信用度评估

具体计算例

圆柱周围气流(Re=100)CFD分析:粗网格8000单元时drag=1.285N,中(16000单元)1.156N,细(32000单元)1.098N,极细(64000单元)1.075N,超微细(128000单元)1.068N。ε₂₁=10.1%、ε₃₂=5.3%、ε₄₃=2.1%、ε₅₄=0.7%,超微细网格达到独立性。观测p值=1.94(近似2阶收敛)。Richardson外推推定drag理论值≈1.062N。

实务中的注意事项

  1. 网格比(细/粗的单元数比)推荐1.5~2.0的均一系列。小于1.3会使误差判定过松,超过2.5会爆炸计算负荷
  2. 相对误差非单调递减说明可能有数值振荡。检查方案、CFL数、迭代精度
  3. 边界层·冲击波等急梯度区域网格依赖性大。考虑局部1.1比的密集细化
  4. FEM比CFD收敛慢的趋势(p=1~1.5)。应力集中部要监视p值来判定