2. 网格畸变导致求解不收敛的排查与网格重划

畸变如何把非线性求解拖入死循环

大变形分析中,单元畸变不是“精度略差”这么简单:它会让单元雅可比行列式趋近于零甚至为负,等参变换失效,刚度矩阵出现病态或非正定,牛顿迭代的残差不再单调下降,最终在增量步上反复切分仍无法收敛。排查的关键是把“不收敛”这个笼统现象拆成可观测的指标链:增量步收敛历史 → 单元雅可比/畸变指标 → 畸变单元空间分布 → 局部重划 → 收敛性复验。

增量步收敛历史(示例) 残差 迭代 正常:单调下降 畸变:残差振荡不降 切分增量步 单元质量指标(阈值参考) 雅可比行列式 det J < 0 或 → 0 单元畸变比(最长/最短边) > 5 内角偏离(四边形) < 30° 或 > 150° 翘曲度(壳/实体面) > 0.15 体积/面积负值单元数 > 0 任一指标越限 → 优先怀疑畸变 畸变区域定位(局部网格示意) det J→0 绿色:局部加密重划后 红色:畸变单元 局部重划与收敛性复验 冻结畸变区 提取边界节点 局部重划网格 保持边界一致 映射状态量 应力/应变/损伤 复验:同一增量步 残差单调下降 通过:继续加载 未通过:再查材料/接触 注:指标阈值为工程经验参考,需结合单元类型与材料模型调整

第一步:从收敛历史判断“是不是畸变”

先看求解输出中的增量步迭代记录。典型畸变特征是:前几个增量步正常收敛,进入大变形阶段后残差在 2~3 次迭代内反复升降,增量步被自动切分到极小值仍失败。这与“约束不足导致刚度矩阵奇异”不同——后者通常在第一个增量步就报错,且残差直接发散而非振荡。记录下首次失败的增量步号与载荷比例,作为后续复验的基准点。

第二步:用质量指标锁定畸变单元

在失败增量步的结果文件上(多数求解器支持输出最后收敛状态的单元质量),逐项检查下表指标。对二维四边形单元重点看内角与雅可比;对三维六面体重点看畸变比与体积负值;对壳单元重点看翘曲度。

指标计算/查看方式异常判据(示例)对应风险
雅可比行列式 det J单元积分点处输出≤ 0 或最小值/最大值 < 0.05等参变换失效,刚度矩阵病态
畸变比最长边/最短边> 5(大变形区可放宽至 8)形函数梯度失真
内角四边形四角< 30° 或 > 150°剪切自锁、沙漏
翘曲度壳单元四节点偏离平面距离/特征长度> 0.15弯曲刚度虚高
负体积单元数体积/面积符号统计> 0网格翻转,必然不收敛
若求解器不直接输出 det J,可用“单元体积/面积随时间步变化率”间接判断:某单元面积在单步内缩小超过 60%,基本可判定为畸变候选。

第三步:局部重划而非整体重划

整体重划会破坏已收敛的接触状态与历史变量,代价高且易引入新误差。正确做法是冻结畸变区、提取其边界节点坐标、在边界内重新生成网格、再把应力/应变/损伤等状态量映射回新单元。操作要点:

  1. 以畸变单元为中心,向外扩 2~3 层单元作为重划区,保证过渡区网格尺寸渐变。
  2. 重划区边界节点坐标保持不变,避免与周围网格出现悬挂节点或缝隙。
  3. 新网格在畸变核心区加密,畸变比控制在 3 以内,内角控制在 45°~135°。
  4. 状态量映射优先用单元形函数插值;对损伤等不可逆变量,取重划区旧单元的体积加权平均,避免映射后数值跳变。

第四步:复验收敛性

回到首次失败的增量步,用相同载荷增量重新求解。通过判据:该增量步残差在 5 次迭代内单调下降至收敛容差(如 1e-4 相对残差),且后续增量步不再出现增量步切分。若仍不收敛,说明畸变只是表象,需转查材料本构、接触刚度或边界条件——此时应保留重划后的网格作为新基线,避免在旧畸变网格上反复试错。

重划后务必检查重划区与周围网格的节点连接关系。若出现自由边或重复节点,会在后续增量步引入新的奇异,表现为“重划后反而更早失败”。