4. 大型模型网格质量评价指标体系

在大型有限元模型中,网格质量不是“看起来整齐”这么简单。它直接决定求解器能否收敛、刚度矩阵是否病态、应力结果是否可信。HyperMesh 提供了一整套可批量计算的单元质量指标,理解每个指标的几何含义、阈值来源以及它们之间的耦合关系,是质量诊断与优化的前提。本节围绕翘曲(Warpage)、长宽比(Aspect Ratio)、雅可比(Jacobian)、扭曲度(Skew)四个核心指标展开,并给出在 HyperMesh 中批量评估的完整方法。

一、四个核心指标的几何含义

翘曲(Warpage)衡量四边形单元偏离平面的程度。理想四边形四个节点共面,翘曲为 0。当四个节点不共面时,单元被“折”成两个三角形,翘曲值反映这两个三角形法向的夹角或节点到最佳拟合平面的最大距离。壳单元翘曲过大,会在弯曲工况下产生虚假的膜应力,并让积分点位置偏离真实中面。HyperMesh 默认对四边形单元计算翘曲,典型警告阈值为 5°,失败阈值为 10°~15°(视求解器模板而定)。三角形单元本身共面,翘曲恒为 0,因此该指标只对四边形有意义。

长宽比(Aspect Ratio)是单元最长边与最短边(或对应特征尺寸)之比。理想值为 1,即正方形或等边三角形。长宽比过大时,单元在不同方向上的刚度贡献严重失衡,导致刚度矩阵条件数急剧上升,迭代求解收敛变慢甚至失败。HyperMesh 中四边形默认按最长边/最短边计算,三角形按最长边/最短高计算。一般工程建议控制在 5 以内,关键区域控制在 3 以内,超过 10 通常判为失败。

雅可比(Jacobian)描述单元从参数坐标到物理坐标映射的畸变程度,本质是雅可比矩阵行列式在单元内的最小值与理想值的比值(归一化后理想值为 1)。它综合反映了单元的扭曲、塌陷和边中点偏移。雅可比接近 1 表示映射良好;接近 0 表示单元接近退化,积分精度崩溃;为负则表示单元翻转(负体积),求解器会直接报错。HyperMesh 中常用 Jacobian 与 Jacobian Ratio 两种形式,前者对四边形按角点计算,后者对高阶单元更敏感。工程上常要求 Jacobian ≥ 0.6,关键区域 ≥ 0.7。

扭曲度(Skew)衡量单元偏离理想形状的角度偏差。对四边形,通常取两组对边中线的夹角与 90° 的偏差,或按角点角度偏离 90° 的最大值计算;对三角形,取最大角偏离 60° 的程度。扭曲度大的单元在剪切工况下表现异常,且容易与长宽比、雅可比同时恶化。一般建议四边形 Skew ≤ 45°,三角形 Skew ≤ 60°。

四类网格质量指标的几何判据与阈值区间 翘曲 Warpage 四边形偏离平面的程度 共面 · 翘曲=0 节点离面 · 翘曲>0 长宽比 Aspect Ratio 最长边 / 最短边 1:1 5.3:1 方向刚度失衡 雅可比 Jacobian 映射畸变 · 归一化理想=1 J ≈ 0.95 J ≈ 0.25 接近退化 · 积分精度崩溃 扭曲度 Skew 角度偏离理想值 90° Skew ≈ 38° 剪切响应异常 典型阈值参考(以 OptiStruct / Abaqus 模板为例) 翘曲 ≤5° 良好 5°~10° 警告 >10° 失败 长宽比 ≤3 良好 3~5 警告 >10 失败 雅可比 ≥0.7 良好 0.6~0.7 警告 <0.6 失败 扭曲度 ≤45° 良好 指标间的耦合关系 • 长宽比恶化 → 雅可比下降 → 刚度矩阵条件数上升 • 翘曲过大 → 壳单元中面偏移 → 虚假膜应力 + 雅可比降低 • 扭曲度与长宽比同时超标 → 单元接近退化,求解器直接报负体积

二、指标之间的耦合关系

这四个指标并非彼此独立。一个被拉长的四边形,其雅可比往往同步下降;一个翘曲的壳单元,其最佳拟合平面上的投影会改变角点位置,从而影响扭曲度计算;而扭曲度大的单元在剪切变形下,雅可比行列式的最小值会出现在角点附近。因此,在 HyperMesh 中做质量诊断时,不应只看单一指标是否超标,而应观察多个指标是否在同一批单元上同时恶化。如果某区域长宽比和雅可比同时报警,说明该区域网格在方向性和映射质量上都存在问题,需要优先重划。

三、在 HyperMesh 中批量评估

HyperMesh 的质量评估入口在 Check Elements 面板(快捷键 F10)。批量评估的典型流程如下:

  1. 打开 Check Elements,选择 2D 或 3D 页签,按单元类型选择评估范围。
  2. 在指标列表中勾选 Warpage、Aspect Ratio、Jacobian、Skew,并分别设置警告值与失败值。
  3. 点击 Check,HyperMesh 会按颜色分级显示:绿色为合格,黄色为警告,红色为失败。
  4. 使用 Save Failed 将失败单元保存为独立组件,便于后续定位和重划。
  5. 对失败单元使用 Quality Index 面板做综合评分,快速判断优先处理区域。

对于大型模型,逐一面板操作效率很低。更实用的做法是使用 Tcl 脚本批量执行质量检查并导出报告。下面是一段可直接在 HyperMesh 命令窗口中运行的示例脚本,用于统计各指标的失败单元数量:

# 批量质量评估示例(Tcl)
set failWarp 0
set failAspect 0
set failJac 0
set failSkew 0

# 获取所有 2D 单元
set elemList [hm_getentitylist elems "config=104"]

foreach eid $elemList {
    set warp   [hm_getvalue elems id=$eid dataname=warpage]
    set aspect [hm_getvalue elems id=$eid dataname=aspect]
    set jac    [hm_getvalue elems id=$eid dataname=jacobian]
    set skew   [hm_getvalue elems id=$eid dataname=skew]

    if {$warp   > 10.0} { incr failWarp }
    if {$aspect > 10.0} { incr failAspect }
    if {$jac    < 0.60} { incr failJac }
    if {$skew   > 45.0} { incr failSkew }
}

puts "Warpage 失败: $failWarp"
puts "Aspect  失败: $failAspect"
puts "Jacobian失败: $failJac"
puts "Skew    失败: $failSkew"
上述脚本中的阈值(10°、10、0.60、45°)是示例值,实际项目应根据求解器模板、单元类型和结构关键程度调整。例如疲劳关键区可将雅可比阈值提高到 0.7,长宽比收紧到 5。

四、结果判读与处理优先级

批量评估完成后,面对成千上万个失败单元,不能盲目全部重划。合理的处理优先级是:先处理雅可比为负或接近 0 的单元,这类单元会导致求解器直接报错;再处理长宽比和扭曲度同时超标的区域,这类单元对刚度矩阵条件数影响最大;最后处理仅翘曲超标的壳单元,可通过局部投影或节点调整快速修复。对于大型模型,建议按组件或按材料区域分批处理,每批修复后重新运行质量检查,确认失败数量单调下降,避免修复操作引入新的畸变。

注意:HyperMesh 中不同求解器模板对同一指标的计算公式可能不同。例如 OptiStruct 与 Abaqus 对 Jacobian 的归一化方式存在差异,切换模板后必须重新确认阈值,不能直接沿用上一套模板的判定结果。

掌握这四个指标的含义、耦合关系和批量评估方法后,下一步就是根据诊断结果制定具体的网格优化策略。质量指标是“诊断”,优化是“治疗”,两者必须配合使用,才能让大型模型在求解精度和计算效率之间取得平衡。