网格质量指标 — 影响数值精度的6个评价标准
网格质量指标的理论基础
什么是网格质量
老师,网格质量要看什么指标呢? 指标那么多我有点懵…
理解你的感受。但实务中最关键的只有3个。纵横比(理想是1:1,许可≤3:1)、偏斜度(0为理想,≥0.95不行)、正交性(≤0.1不行)。掌握这三个,通常不会有大问题。
那雅可比行列式和翘曲呢? 我也经常听到这些词…
雅可比行列式、翘曲、锥形也很重要,但往往是"上面三个坏时跟着坏"。也就是说,三大指标控制好,其他的通常也会好。
网格质量指标是指有限元或有限体积单元与理想形状(正三角形、正方形、正四面体、立方体等)的偏离程度用数值表示的评价标准。低质量单元混在一起会导致形状函数近似精度下降,进而引发连锁问题:
- 局部离散化误差增大 → 应力、流速被高估或低估
- 刚性矩阵的条件数恶化 → 迭代求解器收敛不良
- 雅可比矩阵特异化 → 计算本身破裂(Negative Jacobian错误)
- CFD中的数值扩散增大 → 涡结构和边界层分辨率不足
纵横比(Aspect Ratio)
纵横比就是单元的"细长程度"对吧? 为什么这么重要?
简单说,"一个方向特别细长的单元"不能好好捕捉那个方向的变化。比如给汽车A柱建模,如果竖向有一排细长单元(纵横比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以上,是什么样的单元?
三角形单元的话,3个顶点几乎在一条线上"扁"了。四面体就是4个顶点基本共面。这样的单元面积、体积接近零,雅可比也退化了,计算会崩溃。
明白了…形状垮掉的单元根本补不了物理量。
正交性(Orthogonal Quality)
正交性评价单元面的法向量与单元中心连线的正交程度,在CFD(有限体积法)中特别关键。Ansys Fluent中用0~1范围的Orthogonal Quality表示。
其中 $\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)的面非平面性,用角度表示。四顶点共面理想时为0°,扭曲越大越增加。
锥形(Taper)表示四边形单元的对边长度比偏离理想(1:1)的程度。像梯形那样两端变细的单元有高锥形值。
| 指标 | 理想值 | 许可值 | 影响 |
|---|---|---|---|
| 翘曲 | 0° | < 15°(严格: < 5°) | 壳单元弯曲精度下降 |
| 锥形 | 0 | < 0.5 | 应力对称性破坏 |
翘曲什么时候成问题?
典型是用壳单元做车身面板或飞机外壳建模。四边形单元贴曲面,大曲率部分的4个节点无法共面。翘曲超15°,弯曲刚度计算精度大幅下降。办法是用三角形(TRIA,总是平面)代替QUAD,或细化网格让曲率接近平面。
数值求解方法与质量的关系
网格质量对解精度的影响
网格质量坏了,计算哪里会出问题? "精度下降"太笼统…
好问题。有限元精度取决于形状函数能多精确地插值物理量。看看单元刚性矩阵计算。
其中 $B$ 是应变-位移矩阵, $D$ 是本构矩阵, $J$ 是雅可比, $w_g$ 是积分点权重。
单元变形会分三步破坏精度。
- 第1阶段(形状函数歪曲):纵横比大时,短边方向的梯度支配,长边方向的变化捕捉不了
- 第2阶段(数值积分误差):偏斜度大时,高斯积分点位置不最优,积分精度下降
- 第3阶段(条件数恶化):质量坏的单元破坏刚性矩阵的条件数,迭代求解器收敛变慢(最坏不收敛)
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+是壁面第1层单元的无次元高度,是否满足乱流模型要求的质量指标。
| 乱流模型 | 需要的y+ | 第1层高度目安 |
|---|---|---|
| k-omega SST(壁面分解) | y+ < 1 | 数微米~数十微米 |
| k-epsilon + 壁函数 | 30 < y+ < 300 | 数百微米~数mm |
| Spalart-Allmaras | y+ < 1(推荐) | 数微米~数十微米 |
| LES / DNS | y+ < 1(必须) | 极薄第1层 |
为了y+,第1层薄得不行,纵横比不是爆炸了吗? 怎么平衡?
边界层网格的纵横比故意高也没关系。关键是增长率(Growth Ratio)。相邻层厚度比推荐≤1.2。超1.5的话非正交性急剧恶化,反而成了正交性问题。所以y+和纵横比不矛盾,成长率和正交性才是瓶颈。
网格质量指标的实务应用
质量检查的实务流程
生成网格后,质量检查按什么顺序来?
我用的实务5步质量检查流程给你。
- 全局统计确认 — 整体上纵横比、偏斜度、正交性的最小/最大/平均值,直方图看分布
- 最坏单元位置特定 — 质量最差的单元在哪,可视化。多数情况集中在形状边缘或大曲率处
- 与结构关键区一致性确认 — 质量坏的单元是否与应力集中或尾迹区重合。远方质量差的影响小
- 局部修改施行 — 只修问题单元,全体不用重新网格
- 修改后再检查 — 修改后别的地方质量没变坏
质量改善技术
质量坏的网格怎么直啊? 具体办法教一下!
质量改善的武器这6个。从上往下试是套路。
| 技术 | 对哪个指标有效 | 具体操作 |
|---|---|---|
| 拉普拉斯平滑 | 偏斜度、AR | 节点移到周围节点重心。大多工具可自动执行 |
| 边翻转 | 偏斜度 | 三角形的共享边互换方向来改善质量。2D/表面网格效果大 |
| 边并合 | AR、偏斜度 | 短边合并消除退化单元 |
| 局部细分化 | 全指标 | 质量坏的区域网格变小再生成 |
| 几何修改(去特征) | 全指标 | 极小倒角、倒面、孔洞除去,清除网格生成的障碍 |
| 单元类型变更 | 全指标 | HEX困难区用TET或多面体代 |
几何修改这项,网格问题不单纯是网格啊…
实务上这招最有效。CAD原本残留的0.1mm小倒角会周围生成极小单元,质量暴雷。分析不相关的微观形状去掉("去特征")就是网格质量改善的王道。
质量保证检查清单
生成后投入求解器前,下列项目全部确认。
| 检查项目 | FEM结构 | CFD流体 | 基准 |
|---|---|---|---|
| 负雅可比单元 | 必须 | 必须 | 0个 |
| 纵横比 | 必须 | 必须 | 最大值在指南内 |
| 偏斜度 | 必须 | 必须 | 最大 < 0.95、平均 < 0.33 |
| 正交性(OQ) | 推荐 | 必须 | 最小 > 0.01(推荐 > 0.1) |
| 翘曲 | 必须(壳) | — | 最大 < 15° |
| 锥形 | 推荐 | — | 最大 < 0.5 |
| 孤立边、孤立面 | 必须 | 必须 | 意图外的0个 |
| 重复节点 | 必须 | 必须 | 0个(意图的除外) |
| y+(壁网格) | — | 必须 | 满足乱流模型要求 |
| 增长率 | 推荐 | 必须 | 相邻单元大小比 < 1.5 |
软件别检查方法
Ansys Mechanical / Fluent
Ansys检查网格质量的方法教一下。Mechanical和Fluent不一样吗?
完全不同。分别说。
Ansys Mechanical(Workbench):
Mesh→Statistics→Mesh Metric选指标(Element Quality、Aspect Ratio、Skewness、Orthogonal Quality等)- 出现直方图,质量分布一目了然
- 质量阈值设定后NG单元高亮
Element Quality是0~1的综合指标(1为理想)。0.1以下是红信号
Ansys Fluent:
Mesh→Check一括表示最小正交性、最大偏斜度、最小体积Report Quality输出单元别质量直方图- 最小正交性<0.01的单元存在一定要修,之后才能跑求解器
Mesh→Improve自动平滑(Fluent网格生成器限定)
Abaqus
Abaqus的网格质量检查在哪里看?
Abaqus/CAE的Mesh模块按这步骤。
Mesh→Verify Mesh打开质量检查对话- 检查项:Shape Factor、Aspect Ratio、Min/Max Angle、Geometric Deviation等
- NG单元红色(Warning)或橙色(Error)高亮
- 特别重要:
Analysis Checks的Element warnings检出负雅可比 - Python脚本可把质量数据导CSV(大模型批量检查便利)
Abaqus运行时也做质量检查,.dat文件中输出***WARNING: element XXX has bad shape。grep一批查很实用。
Nastran / Patran / HyperMesh
汽车业界常用HyperMesh,质量基准和Nastran一样吗?
HyperMesh是前处理,质量基准用户自设。但汽车OEM别有各自内部基准,一定要确认相关方的基准书。一般汽车业界基准如下。
| 指标 | 汽车业界一般基准 | HyperMesh设置位置 |
|---|---|---|
| 纵横比 | < 5(壳)、< 8(实体) | Quality Index → Aspect |
| 翘曲 | < 15°(严格: < 5°) | Quality Index → Warpage |
| 偏斜度 | < 60°(内角基准) | Quality Index → Skew |
| 雅可比 | > 0.6 | Quality Index → Jacobian |
| 最小内角(TRIA) | > 20° | Quality Index → Min Angle |
| 最大内角(TRIA) | < 120° | Quality Index → Max Angle |
| 最小内角(QUAD) | > 45° | Quality Index → Min Angle |
| 最大内角(QUAD) | < 135° | Quality Index → Max Angle |
Nastran本身有质量检查命令吗?
Nastran求解器本身运行时有质量警告。USER WARNING 5291(单元质量不良)和FATAL 2012(刚性矩阵特异)是典型。但实务上Patran、HyperMesh等前处理在投Nastran前就得保证质量。求解器警告发现太晚了。
OpenFOAM / Gmsh
开源的呢? OpenFOAM有网格质量检查吗?
OpenFOAM有checkMesh工具,性能超强。
checkMesh:非正交性(Non-Orthogonality)、偏斜度、纵横比、最小体积、面积比一括检checkMesh -allTopology -allGeometry:更详细的几何检查- 非正交性70°以上单元标
***。65°以上推荐加非正交补正次数(nNonOrthogonalCorrectors) - Gmsh中
Tools→Statistics看伽玛值(0-1,1为理想)和Eta值
nNonOrthogonalCorrectors什么意思? 加大就能用坏网格算吗?
这是扩散项的非正交补正迭代次数。默认0,非正交性高(40°以上)网格设1~3。但用补正来掩盖坏网格是有限的。非正交80°以上补多少次也发散。改进网格本身才是正途。
网格质量指标的先进研究
自适应网格与自动质量改善
有自动检查和改善网格质量的技术吗? 每次手工修很累…
最新求解器质量改善功能充实了。
- AMR(自适应网格细分):根据解误差估计自动细分、粗化网格。不达质量基准的单元自动重分
- Ansys Fluent Mosaic Mesh:自动选多面体、六面体、四面体的混合网格。质量最优化自动进行
- Star-CCM+ Automated Mesh Pipeline:表面修复 → 体积网格 → 质量检查 → 自动改善全流程一键执行
- 等几何分析(IGA):CAD的NURBS基函数直接用分析。不需生成网格,网格质量问题根绝(研究阶段)
机器学习网格质量预测
最近论文看到"机器学习预测网格质量",实用了吗?
研究活跃,实用化初期。注目的办法如下。
- 图神经网络(GNN):网格作图结构,预测质量不良单元位置。网格生成参数最优化应用
- 物理约束神经网络(PINN):网格自由法求偏微分方程。网格概念本身消失可能
- 强化学习网格最优化:代理反复改节点位置、连接。Hex网格自动生成期待
但现状传统网格质量检查+手工修改还是主流。理论掌握依然最重要。
网格质量指标故障处理
网格质量引起的收敛失败
计算不收敛,怎么判断是网格质量的问题?
网格质量起因的收敛失败有典型模式。判别法总结如下。
| 症状 | 网格质量原因可能 | 判别法 | 对策 |
|---|---|---|---|
| 残差在特定值卡住 | 高 | 残差大的单元/单元位置特定 → 是否与质量不良重合 | 该区域重新网格 |
| 残差发散(持续增加) | 非常高 | 发散开始直前的残差分布 → 局部发散位置特定 | 负雅可比/最低质量单元修正 |
| 计算直后报错退出 | 确定 | 错误信息含"Negative volume"或"Negative Jacobian" | 问题单元删除再网格 |
| 收敛但结果非物理 | 中等 | 质量不良区域与异常值位置一致? | 网格改善后再算,对比 |
| 并算特定rank慢 | 低~中 | 该rank区域有质量不良集中? | 区域分割改善或网格改善 |
先"哪里问题"特定、再看"质量坏的地方"一致,这样就能判断吗。
正是。调试铁则是"一次改一个,再跑"。网格修、边界改、求解器设也改…一下改多个,啥起效都不知。
求解器别错误信息与对策
实际错误出现时,信息里看出网格质量问题吗? 教一下!
主要求解器的网格质量关连错误总结。壁貼价値。
Abaqus:
***WARNING: element XXX is distorted. Either the isoparametric or the Jacobian...→ 雅可比不良。中间节点位置修或改一阶单元***ERROR: Excessive distortion at a total of N integration points→ 大变形单元潰。网格细化或用ALE自适应网格***WARNING: THE SYSTEM MATRIX HAS N NEGATIVE EIGENVALUES→ 座屈不安定可能、质量不良单元原因
Nastran:
USER WARNING 5291: ELEMENT XXX HAS A BAD QUALITY→ 单元质量Nastran内部基准下回。前处理网格修正FATAL 2012: SINGULAR STIFFNESS MATRIX→ 拘束不足主原因、退化单元(面積零)原因的場合SYSTEM FATAL 3008: INSUFFICIENT MEMORY→ 直接不足、不要细原因
Ansys Fluent:
Negative cell volume detected→ 負的体積。网格再生成必要Divergence detected in AMG solver→ 网格質量(特正交性)原因可能性大。Mesh → Check最小正交性确認Reversed flow in N faces→ 直接的网格質量的問題、出口近傍粗発生
OpenFOAM:
#0 Foam::error::printStack in sigFpe→ 浮動小数点例外。非直交性的高中的拡散項计算原因的場合多Maximum number of iterations exceeded→ 反復不収束。checkMeshMax non-orthogonality70°以上nNonOrthogonalCorrectors1~3設定
助! 今「全部直」対策的、原因絞込的大。
网格质量是"見所分析精度支配基盤"。地味、疎必痛目見。逆言、网格質量確実管理、CAE的8割的問題未然防。
帮助
更详
错误