9.2 沙漏模式、剪切闭锁和体积闭锁
在讨论单元性能时经常会涉及到沙漏模式、剪切闭锁和体积闭锁等概念,它们是有限元分析过程中经常遇到的数值问题。本节将对这3种数值现象产生的原因和解决方法进行归纳总结。
9.2.1 沙漏模式
【常见问题9-5】沙漏模式的产生原因和解决方法
沙漏模式(hourglassing)是怎样产生的?应该如何避免?
『解 答』
沙漏模式主要出现在 CPS4R、CAX4R、C3D8R 等线性减缩积分单元的应力 / 位移场分析中。线性单元本身的积分点数目就比较少,减缩积分单元在每个方向上的积分点数目又减少一个,因此可能出现没有刚度的零能模式,即所谓的“沙漏模式”。当网格较粗时,这种零能模式会通过网格扩展出去,使计算结果变得无意义,或者导致严重的网格畸变。
要判断是否出现了沙漏模式的数值问题,最简单的方法是查看单元的变形情况,如果单元变成交替出现的梯形形状,就可能出现了沙漏模式,相关实例见本书第17.3.1节“Abaqus / Standard 接触分析综合实例”中的【综合实例17-1】。
Abaqus 中的伪应变能或“沙漏刚度”主要用来控制沙漏变形能量。在 Visualization 功能模块中选择菜单 Result → History Output,可以绘制伪应变能 ALLAE(artificial strain energy)和内能 ALLIE(internal energy)的曲线,单击窗口顶部工具栏中的(Query information)图标可以查看曲线上各点的值。当伪应变能 ALLAE 约占内能 ALLIE 的1%时,表明沙漏模式对计算结果的影响不大;当伪应变能超过总内能的10% 时,分析结果是无效的,必须采取措施加以解决。
常见的解决方法包括:
(1)细化网格
使用线性减缩积分单元时,一定要避免划分过于粗糙的网格,如果结构会发生弯曲变形,在厚度方向应至少划分4个单元。
(2)设置沙漏控制选项
Abaqus 对线性减缩积分单元提供了多种沙漏控制选项,通过引入少量的人工“沙漏刚度”来限制沙漏模式的扩展。当网格足够细化时,这种方法非常有效,可以获得足够准确的计算结果。
在 Mesh 功能模块中选用线性减缩积分单元时,可以选择下列沙漏刚度控制方式:Enhanced、Relax stiffness、Stiffness、Viscous 和 Combined(图9-1)。
图9-1 设置沙漏控制方式
☆ 提示:选择沙漏控制选项时要慎重,如果所设置的沙漏控制选项数值大于默认值,可能导致沙漏刚度过大而出现数值不稳定。一般情况下,使用系统默认的沙漏控制选项即可。如果采用默认的沙漏控制选项仍然出现了沙漏模式,往往是由于网格太稀疏所致。此时,最好用细化网格的方法解决,而不要随便更改默认的沙漏控制选项。
(3)更换单元类型
非协调单元不会出现沙漏模式的问题,适用于 Abaqus / Standard的各种分析类型,只要在所关心的关键部位划分形状规则的单元网格,就可以达到较高的分析精度。
在 Abaqus / Standard 分析中,二次减缩积分单元(C3D27R 和 C3D27RH 除外)的沙漏模式在普通的网格密度下一般不会向外传播,如果网格足够细化,通常情况下就可以保证计算精度,但是需要注意,在大应变弹塑性问题和接触问题中不能使用二次减缩积分单元。
C3D27R 和 C3D27RH 单元的27个节点都存在时,会包含三个未约束的沙漏模式,只有用边界条件对其施加足够的约束时才可以使用。
(4)避免在1个节点上定义载荷或边界条件
一个独立节点上承受载荷或施加边界条件约束时,由于局部变形太大,应力集中程度很高,往往会出现数值计算问题。此时,可以将点载荷或点上的边界条件定义在包含该点的小区域上,有利于避免沙漏模式的扩展。
提交分析作业时出现下列错误信息,应该如何解决?
***Error in job Job-1: 630 elements have been defined with zero hourglass stiffness. You may use *hourglass stiffness or change the element type. The elements have been identified in element set ErrElemZeroHourGlassStiffness. (模型中有630个单元的沙漏刚度为零)
『解 答』
上述错误信息表明:630个单元出现了沙漏模式的数值问题。打开分析生成的 ODB 文件,单击窗口顶部工具栏中的 (Create Display group)图标,将 Item 设为 Elements,将 Method 设为 Element sets,可以高亮显示错误信息中提到的单元集合ErrElemZeroHourGlassStiffness,按照【常见问题9-5】介绍的解决方法修正模型即可。
虽然 Abaqus / Standard 中的完全积分单元不会出现沙漏模式的数值问题,却可能出现剪切闭锁(shear locking)和体积闭锁(volumetric locking)等数值问题,下面详细介绍二者的相关知识。
【常见问题9-7】产生剪切闭锁现象的原因和解决方法
剪切闭锁现象是怎样产生的?应该采取什么方法解决?
『解 答』
剪切闭锁现象一般发生在出现弯曲变形的线性完全积分单元中(例如 CPS4、CPE4、C3D8)。由于线性单元的直边无法承受弯曲载荷作用,分析过程中可能出现本来不存在的虚假剪应变,使单元的弯曲刚度过大,计算的位移值偏小,即单元的位移场不能模拟由于弯曲而引起的剪切变形和弯曲变形,这就是所谓的“剪切闭锁”现象。当单元长度与厚度的数量级相同或长度大于厚度时,此现象会更严重。
需要注意的是,剪切闭锁现象仅影响受弯曲载荷作用的完全积分线性单元。如果模型受到剪力载荷作用,完全积分线性单元的计算结果则非常好。对于二次单元,由于单元的边上可以发生弯曲变形,一般不会出现剪切闭锁现象。但是如果单元畸变非常严重,或者应力状态非常复杂,存在弯曲应力梯度,二次单元也会出现某种程度的闭锁现象。
只有当载荷所产生的弯矩非常小时,才可以考虑采用完全积分线性单元。如果不能肯定弯曲载荷作用的影响大小,可以尝试使用不同的单元类型,并比较其分析结果,然后选定合适的单元类型。
如果怀疑模型中出现了剪切闭锁现象,可以考虑采用非协调单元或减缩积分单元,但要注意前面几节中介绍过的注意事项。如果模型中网格扭曲非常厉害,仅仅改变单元类型往往不会使计算结果得到很大的改进,划分网格时应尽可能保证单元形状是规则的。
体积闭锁现象是怎样产生的?应该采取什么方法解决?
『解 答』
体积闭锁是完全积分单元受到过度约束(overconstraint)时的一种闭锁现象。如果材料为不可压缩或近似不可压缩,完全积分单元可能变得特别刚硬而不会产生体积变形,即所谓的“体积闭锁”。
体积闭锁的一个显著特征是:各个积分点之间或各个单元之间的静水压应力出现急剧变化。在 Visualization 功能模块中绘制静水压应力的云纹图时,如果看到静水压应力从一个积分点到另一个积分点的变化很大,呈棋盘形分布,就有可能出现了体积闭锁的数值计算问题。
如果模型中出现了体积闭锁的数值问题,可以采用下列方法解决:
(1)选取适当的单元类型
如果 Abaqus / Standard 分析中包含不可压缩材料,当塑性应变与弹性应变在同一个数量级上时,二次完全积分单元容易出现体积闭锁现象,往往还伴随着沙漏模式的数值问题。因此不能用于弹塑性分析中。如果必须采用完全积分的二次实体单元,则需要选择这种单元类型的杂交单元形式,但其计算费用将大大增加。
如果使用二次减缩积分单元(例如 C3D20R),当应变大于20% ~ 40%时,需要划分足够密的网格才不会产生体积自锁。
建议使用的单元类型为:非协调单元、线性减缩积分单元或修正的二次四面体单元(C3D10M)。
(2)细化网格
在塑性应变较大的区域应划分足够细化的网格。
(3)引入少量的可压缩性
对于不可压缩材料(泊松比 ),适当引入少量的可压缩性可以减轻体积闭锁现象。由于几乎不可压缩材料和完全不可压缩材料的计算结果很接近,因此可以将不可压缩材料的泊松比取为0.475~0.5之间的值。