本文结合查阅到的资料(例如参考[1]),以及自己的实践经验,总结了一些ABAQUS 计算中提高收敛性的技巧,希望对已有初步ABAQUS使用经验的学习者有所帮助。
对于类似钢材的塑性材料 ,复杂分析中材料屈服后的强化段需要定义。若仅定义屈服点,越过以后ABAQUS默认生成平行于横轴的直线,即理想弹塑性。这对于响应较大的分析,会因为零刚度导致变形过大不收敛的问题。
此外,对于非线性弹簧 这类需要输入“荷载—位移”或“应力—应变”的定义中,也需要注意类似的问题,例如最大荷载或应力是否足够大,越过该点后是否需要定义后期刚度等。
对于混凝土 等脆性材料,往往收敛性能更是问题,也可以在材料定义时作适当处理提高收敛性。例如受拉下降段的斜率不宜过大等。
首先声明,ABAQUS官方是不推荐修改默认的分析参数,大多数不收敛的问题是模型本身造成的。只有当对自己的模型足够有把握,且清楚地了解修改参数的目的和原理,才可进行参数修改。
修改的方式主要是“Step模块菜单栏→Other→General Solution Controls→Edit→所要修改的分析步”。最常用且最不需要考虑过多的参数修改是IA,即增量步 连续缩减的最大次数,默认为5,也就是分析失败(Aborted)之前常见的1U-5U的情况。较为复杂的分析可以将此值适当放大,比如10或15,多用在壳或实体单元由于网格在分析中轻微扭曲畸变,所导致的增量步长只有不断缩减到很小值才能计算的问题。
或是在涉及到复杂接触问题打开非连续分析 (discontinuous)开关,ABAQUS会修改平衡迭代相关的参数I0和IR。更详细的介绍可参看相关博文[3]或是ABAQUS帮助文档[2]。
拟静力分析中(即用Dynamic分析步计算准静态问题,显式隐式均可),位移或力幅值曲线的定义可采用smooth step ,ABAQUS即会在两个数据点间采用5次多项式拟合[2],一方面减小动力响应,因为通过简单求导可知每个数据点处的一、二阶导数均为0(对于位移幅值的导数即为速度与加速度,对于力幅值则是加载速率与加速度),另一方面也会增强收敛性。但对于本身就是动力响应的分析,则不能采取smooth step降低实际的动力响应。
对于壳单元或实体单元建模,网格的划分对收敛性能也起到了至关重要的作用,合理的网格划分可以保证局部单元不发生畸变或扭转,将会提高收敛速度和可收敛性。单元划分的合理与否需要不仅初始不报错(Error),也要仔细检查警告(Warning)中的信息,具体方法在之前笔者所写的一篇帖子中有所提及[4],可供参考。
以上仅为笔者认为常用的几点技巧,更详细的可参看以下参考文献和资料,转载请注明出处。
[1] 6 Tips solving non convergence with Abaqus FEA https://info.simuleon.com/blog/6-tips-solving-non-convergence-with-abaqus-fea
[2] ABAQUS帮助文档6.14 http://130.149.89.49:2080/v6.14/ 或 http://wufengyun.com:888/
[3] ABAQUS/Standard vs. 非线性 (高级篇) http://www.jishulink.com/content/post/544722
[4] 支撑钢框架的ABAQUS建模技巧与注意事项 https://zhuanlan.zhihu.com/p/142258289