有限元网格划分是仿真计算中的一个关键问题,对仿真计算的结果有重要的影响。因此,如何优化网格的划分,或者是获取合理的有限元网格,是每一位仿真应用的工程师都应该掌握的关键技术。如果您使用过仿真软件,您会发现现代大多数仿真软件都提供了网格自动划分的功能,这无疑极大地减轻了工程师手动划分的工作量。然而,我们这里打算讨论的主题是如何才能合理划分网格?这是不是听起来有点矛盾?既然都已“自动”了,为什么我们还要谈合理划分呢?
这里可能存在一个误解,其实网格自动划分是根据分析对象的几何模型的形状,将其划分为由多个有限单元组成的网格模型。这是从纯粹几何意义上的划分,而不是仿真计算意义上的合理网格。如果是这样,那么由自动划分的网格模型产生的计算结果是否可用? 我们如何才能得到合理的网格划分呢?
在 SOLIDWORKS Simulation 中,最直接和最流行的方法是您可以通过使用网格控制(Mesh Control)来测试网格的收敛性(Mesh convergence)。您可以设置一个如图1所示设计研究来测试不同的单元尺寸。由此我们可 以计算得到一个计算应力的历程图, 通过这个图您可以验证所采用的网 格是否合理。在图2的实例上可以看 到单元尺寸在第6次设置后,计算的 结果基本稳定在某个数值的范围内 (这个案例,大约在100MPa左右)。 从工程意义上,这个计算已达到收敛。如果您继续细化网格划分,计算 结果变化不大,但可能需要花费更多 的计算时间,这显然没必要。我们的 建议是,您在进行最终仿真计算前应当测试一下您所设 定的网格尺寸是否合理,为了计算的准确性,也为了不浪费计算的时间。

图1设定网格的尺寸变量

图2 计算得到的应力收敛曲线
在SOLIDWORKS 仿真计算中,有很多方法可以来判断网格划分的好坏。如图 3 所示,我们可以用能量范数误差(Energy Norm Error)图来定位未收敛的区域。在图 4 所示的实例中,零件的拐角半径较小,这个区域比较容易产生集中应力。图(a)显示了具有高能量范数 误差,这时的网格划分尺寸较大,其平均误差为 48%,对应的最大应力约为 82.2 MPa。而(b)反映的是较低的能量范数误差,且在这个区域的网格划分较细,其平均值约为 0.3%,对应最大应力约为 100 MPa。显然,后者的结果更符合实际,因为这个零件的拐角半径比较小,容易产生应力集中的现象。如果网格尺寸较大,在模拟这个拐角的几何形状就会产生较大的误差,能量范数误差较大,由此反而导致这样的拐角应力减小。

图 3 能量范数误差
图 4 用能量范数误差判断网格的合理性
当然,我们调整网格的方法还不止这些。在 SOLIDWORKS Simulation 中还有二种自适应网格划分(Adaptive Meshing)的自动方法,分别是 h-Adaptive 和p-Adaptive,如图5所示。
h-自适应选项往往更受欢迎,因为这种方法在直观上对存在较大的高应变能范数误差的区域进行单元细分,即通过增加单元或减少单元来调整计算的误差,而不是调整单元的阶次。但这种方法没有分析对象的位置选项,因此运行这个方法可能会有多次迭代,计算代价可能会比较高。

图5 自适应网格划分选项
图6 所示是带有网格的一个应力分布图。求解器会根据高应变能范数误差的位置,精确地在需要的区域调整网格,从图中可以明显看到网格划分的密度不一样。同样,我们可以从自适应收敛图来查看经过自适应调整后,计算迭代的收敛情况,如图 7 所示。从第 0 次迭代(第一次)开始,该求解在 6 次迭代中达到了小于 2%的目标精度误差。

图6 自适应网格调整后分布图

图7 自适应收敛图
p-自适应方法是通过在高应变误差区域采用更高阶的单元来提升计算的精度。这种技术不会改变网格结构和单元的数量,而是通过提升单元阶次来降低误差。简单来说,就是通过增加用于近似位移场的多项式方程的阶数,在给定一个单元尺寸(体积)的前提下,获得更精确的解。
综上所述,可以看到,简单采用自动网格划分不一定得到的是合理的网格,在进行仿真计算中,最好是研究一下计算的收敛性,保证您的计算结果是可靠的,可信的。同时,尽量节省计算的工作量,因为网格的细化可能带来指数级增长的计算量,对计算的结果可能并没有实质性的改进。

