网格质量指标——影响数值精度的六项评估标准
理论与物理
什么是网格质量
老师,网格质量要看哪些指标呢?指标太多了,有点混乱…
我理解你的困惑。但在实际工作中,最重要的只有三个:纵横比(理想是1:1,容许3:1以下)、偏斜度(0为理想,0.95以上为NG)、正交性(0.1以下是NG)。只要掌握这三点,通常就不会出大问题。
只要三个就行了吗?但我还听说过雅可比、翘曲度之类的…
当然,雅可比、翘曲度、锥度也很重要,但它们通常是“在上述三个指标不佳时连带变差”的。也就是说,只要保证三大指标良好,其他指标大多也会自然变好。
网格质量指标,是将有限元或有限体积单元偏离理想形状(正三角形、正方形、正四面体、立方体等)的程度进行数值化的评价标准。低质量单元的存在会导致形函数近似精度下降,并引发以下连锁问题。
- 局部离散化误差增大 → 应力/流速的过高/过低评估
- 刚度矩阵条件数恶化 → 迭代求解器收敛不良
- 雅可比矩阵奇异化 → 计算本身崩溃(负雅可比错误)
- CFD中数值扩散增大 → 涡结构和边界层分辨率不足
纵横比(Aspect Ratio)
纵横比是指单元的“细长程度”吧?为什么它如此重要呢?
简单来说,是因为“只在单一方向上极端细长的单元,无法很好地捕捉该方向的变化”。例如,在模拟汽车前立柱时,如果厚度方向只有一个单元且纵向非常细长(纵横比20:1之类),就无法正确计算弯曲应力的分布。
纵横比定义为单元最长边与最短边(或最大尺寸与最小尺寸)之比。
| 纵横比 | 质量等级 | FEM结构分析 | CFD流体分析 |
|---|---|---|---|
| 1.0 | 理想 | 最高精度 | 最高精度 |
| 1.0 〜 3.0 | 良好 | 推荐范围 | 推荐范围 |
| 3.0 〜 5.0 | 容许 | 需要注意 | 容许(一般区域) |
| 5.0 〜 10.0 | 需注意 | 精度可能下降 | 边界层以外NG |
| 10.0以上 | 不良 | 必须修正 | 边界层网格以外NG |
诶,但是CFD的边界层网格,不就是在壁面堆积薄单元吗?那个纵横比不是非常大吗?
问得好!边界层网格的纵横比有时会超过100,但那是有意为之的。为了解析壁面法线方向的急剧速度梯度,需要将单元做薄。而流动方向几乎是均匀的,所以高纵横比也没问题。也就是说,“符合物理方向的纵横比”是可以接受的。
偏斜度(Skewness)
偏斜度以0〜1的范围表示单元偏离理想形状的“扭曲”程度。代表性的定义是等角偏斜度(equiangle skewness)。
其中 $\theta_e$ 是理想单元的内角(三角形为60°,四边形为90°),$\theta_{\max}$, $\theta_{\min}$ 是单元的最大、最小内角。
| 偏斜度 | 质量 | 实际处理 |
|---|---|---|
| 0 〜 0.25 | 优秀 | 完全没问题 |
| 0.25 〜 0.50 | 良好 | 一般容许范围 |
| 0.50 〜 0.75 | 容许 | 局部存在尚可(应力集中部位除外) |
| 0.75 〜 0.90 | 不良 | 精度下降。建议改善 |
| 0.90 〜 0.95 | 极差 | 可能导致收敛不良 |
| 0.95 〜 1.0 | 退化单元 | 必须修正。计算崩溃风险大 |
偏斜度0.95以上,具体是什么样的单元呢?
以三角形单元来说,就是三个顶点几乎排列在一条直线上的“扁平”单元。四面体则是四个顶点几乎在同一平面上的状态。这种单元的面积/体积趋近于零,雅可比也会退化,导致计算崩溃。
原来如此…形状被压扁的单元,连物理量的插值本身都无法进行了呢。
正交性(Orthogonal Quality)
正交性是评价单元面的法向量与连接单元中心的向量之间正交程度的指标,尤其在CFD(有限体积法)中最为重要。在Ansys Fluent中,它以正交性(Orthogonal Quality)的形式在0〜1范围内报告。
其中 $\vec{A}_i$ 是单元面的法向量,$\vec{f}_i$ 是从单元中心指向面中心的向量,$\vec{c}_i$ 是连接相邻单元中心的向量。
我在Fluent里检查网格时,出现了“Minimum Orthogonal Quality = 0.008”,这没问题吗?
那不行。 在Fluent的网格检查中,如果存在最小正交性低于0.01的单元,必须修正。低于0.01可以认为计算结果的可靠性为零。理想情况是最小值在0.1以上,平均值在0.9以上。首先要定位问题单元的位置,然后对网格进行局部修正。
| 正交性(OQ) | 质量 | Fluent/Star-CCM+中的处理 |
|---|---|---|
| 0.95 〜 1.0 | 优秀 | 最高精度 |
| 0.70 〜 0.95 | 良好 | 一般分析中没问题 |
| 0.20 〜 0.70 | 容许 | 局部存在尚可 |
| 0.10 〜 0.20 | 不良 | 精度下降。建议改善 |
| 0.01 〜 0.10 | 极差 | 收敛不良、数值振荡的原因 |
| 0.01以下 | 不可用 | 必须修正。可能导致计算崩溃 |
雅可比(Jacobian)
在有限元法中,物理坐标 $\mathbf{x}$ 和自然坐标 $\boldsymbol{\xi}$ 之间的映射由雅可比矩阵定义。
雅可比必须在单元内所有积分点处为正($J > 0$)。负雅可比意味着单元“翻转”,计算会输出物理上无意义的结果。
雅可比比是什么?值不是1.0就不行吗?
雅可比比是单元内雅可比最小值与最大值的比值。理想形状下所有积分点值相同,所以比值是1.0。实际工作中推荐0.3以上。如果出现0.0以下(负雅可比),该网格就不能用于计算。Abaqus或Nastran检测到负雅可比会报错停止。
啊,我有过移动二次单元(比如10节点四面体)的中间节点后出现负雅可比的经历…
这是二次单元的常见问题。如果中间节点偏离边的中点太多,映射会变得非线性,导致单元内部雅可比符号反转。在贴合曲面的网格中尤其容易发生。对策是限制中间节点的位置靠近边的中点,或者在曲率大的地方细化网格。
翘曲度与锥度
翘曲度(Warpage) 以角度评价四边形单元(QUAD/HEX)面的非平面性。如果4个顶点在同一平面上,则为0°(理想),扭曲越大,值越大。
锥度(Taper) 表示四边形单元对边长度比偏离理想(1:1)的程度。像梯形那样收窄的单元具有高锥度值。
| 指标 | 理想值 | 容许值 | 影响 |
|---|---|---|---|
| 翘曲度 | 0° | < 15°(严格: < 5°) | 壳单元弯曲精度下降 |
| 锥度 | 0 | < 0.5 | 应力对称性被破坏 |
翘曲度在什么情况下会成为问题?
典型的是使用壳单元进行车身面板或飞机蒙皮的建模。在曲面上贴附QUAD单元时,曲率大的部分四个节点会不在同一平面上。如果翘曲度超过15°,弯曲刚度的计算精度会急剧下降。对策是混用TRIA(三角形,总是平面)代替QUAD,或者细化网格使曲率能被平面近似。
数值解法与质量的关系
网格质量对求解精度的影响
网格质量差,具体会导致计算的哪个部分出问题呢?说“精度下降”太笼统了…
问得好。有限元法的精度取决于形函数能多准确地插值物理量。我们来看看单元刚度矩阵的计算。
其中 $B$ 是应变-位移矩阵,$D$ 是本构矩阵,$J$ 是雅可比,$w_g$ 是积分点权重。
单元扭曲会在三个阶段导致精度下降。
- 第一阶段(形函数扭曲):纵横比大时,短边方向的梯度占主导,无法捕捉长边方向的变化
- 第二阶段(数值积分误差):偏斜度大时,高斯积分点的配置不再最优,积分精度下降
- 第三阶段(条件数恶化):质量差的单元会恶化刚度矩阵的条件数,减慢迭代求解器的收敛速度(最坏情况不收敛)
CFD也一样吗?
CFD(有限体积法)中问题更严重。正交性低的单元,扩散通量的近似需要非正交修正。修正量过大则无法隐式处理,迭代会变得不稳定。在Fluent中出现“Divergence detected”时,很多时候原因就是存在最小正交性低于0.05的单元。
单元类型对质量的敏感度
并非所有单元类型都同样受网格质量影响。以下总结了它们对质量下降的敏感度。
| 单元类型 | 质量敏感度 | 质量下降时的主要问题 | 推荐最大AR |
|---|---|---|---|
| 一次四面体(TET4) | 非常高 | 剪切自锁+精度下降同时发生 | 3 |
| 二次四面体(TET10) | 高 | 中间节点偏移 → 负雅可比 | 5 |
| 一次六面体(HEX8) | 中等 | 翘曲度 → 弯曲精度下降 | 5 |
| 二次六面体(HEX20) | 低 | 高阶函数容易吸收扭曲 | 10 |
| 壳单元(QUAD4) | 高 | 翘曲度 → 弯曲刚度误差 | 3 |
| 多面体 | 低 | 多面体对扭曲具有鲁棒性 | 10 |
也就是说,一次四面体对质量最敏感,多面体最宽容。Star-CCM+推荐多面体网格也有这个原因吧…
没错。多面体网格因为面数多,每个面的非正交性影响被分散了。但它并非万能,边界层网格基本还是要用棱柱(六面体)来堆积。
CFD中的y+与网格质量
y+也能算是一种网格质量吗?
正是如此。y+是壁面第一层单元的无量纲高度,可以看作是判断是否满足湍流模型要求的质量指标。
| 湍流模型 | 所需y+ | 第一层单元高度参考 |
|---|---|---|
| k-omega SST(壁面解析) | y+ < 1 | 数μm〜数十μm |
| k-epsilon + 壁面函数 | 30 < y+ < 300 | 数百μm〜数mm |
| Spalart-Allmaras | y+ < 1(推荐) | 数μm〜数十μm |
| LES / DNS | y+ < 1(必须) | 极薄的第一层单元 |
为了满足y+而把第一层单元做得太薄,纵横比会爆炸吧?如何平衡呢?
边界层网格的纵横比可以有意提高。但要注意增长率(Growth Ratio)。相邻单元间的尺寸比推荐在1.2以下。超过1.5,非正交性会急剧恶化,演变成正交性问题。也就是说,y+和纵横比不是权衡关系,增长率和正交性才是瓶颈。
实践指南
质量检查的实际工作流程
生成网格后,质量检查应该按什么顺序进行?
我来教你实际工作中使用的5步质量检查流程。
- 确认全局统计 — 整体确认纵横比、偏斜度、正交性的最小/最大/平均值。用直方图查看分布
- 定位最差单元 — 可视化质量最差的单元位于何处。通常集中在形状边缘或曲率大的部位
- 确认与结构重要区域是否一致 — 检查质量差的单元是否与应力集中区域或尾流区域重叠。远处的质量不良影响较小
- 实施局部修正 — 仅修正有问题的单元。无需对整个模型重新划分网格
- 修正后再次检查 — 确认修正是否导致其他位置的质量恶化
质量改善技巧
请告诉我修正质量差的网格的具体方法!
质量改善的武器有这六种。按顺序尝试是常规做法。
なった
詳しく
報告