本系列文章研究成熟的有限元理论基础及在商用有限元软件的实现方式。有限元的理论发展了几十年已经相当成熟,商用有限元软件同样也是采用这些成熟的有限元理论,只是在实际应用过程中,商用CAE软件在传统的理论基础上会做相应的修正以解决工程中遇到的不同问题,且各家软件的修正方法都不一样,每个主流商用软件手册中都会注明各个单元的理论采用了哪种理论公式,但都只是提一下用什么方法修正,很多没有具体的实现公式。商用软件对外就是一个黑盒子,除了开发人员,使用人员只能在黑盒子外猜测内部实现方式。
一方面我们查阅各个主流商用软件的理论手册并通过进行大量的资料查阅猜测内部修正方法,另一方面我们自己编程实现结构有限元求解器,通过自研求解器和商软的结果比较来验证我们的猜测,如同管中窥豹一般来研究的修正方法,从而猜测商用有限元软件的内部计算方法。我们关注CAE中的结构有限元,所以主要选择了商用结构有限元软件中文档相对较完备的Abaqus来研究内部实现方式,同时对某些问题也会涉及其它的Nastran/Ansys等商软。为了理解方便有很多问题在数学上其实并不严谨,同时由于水平有限可能有许多的理论错误,欢迎交流讨论,也期待有更多的合作机会。
iSolver介绍视频:
http://www.jishulink.com/college/video/c12884
==Abaqus几何非线性的设置和后台 ==
上一章从数学上介绍了几何非线性的应变度量,由于数学公式不够直观,这章将具体介绍Abaqus这款商软中几何非线性的设置后台采用的这些应变度量,同时针对简单的例子将理论、iSolver结果和Abaqus结果对比,证明Abaqus中几何非线性的各个应变度量的内部计算和我们上一章的数学公式是完全一致的。
上一章中介绍的三种常用应变是:
1) 工程应变:用于线性问题
2) 真实应变:应用于所有真实的几何非线性问题
3) Green应变:用于几何非线性中的大位移、大转动、小应变的特殊几何非线性问题。因为Green应变计算量比真实应变简单。
有限元程序计算效率是一个非常重要的方面,所以一般把几何非线性简单的分为两类:
1) 大位移、大转动,但应变非常小。譬如下方的右侧矩形其实只是左侧矩形的一个大的转动加上一个小的应变。
2) 大位移、大转动,大变形问题。譬如下方的右侧矩形已经从一个正方形变为了一个大的斜角一般四边形。
如何区分是小应变还是大应变,除了预估,可以直接查看计算后的应变值,如果<<1,就是小应变,否则就只能算大应变问题,而如果你一开始把模型当做小应变来计算,但计算完毕后发现应变值较大,那么模型设置就有问题了。类似沙漏问题的考虑一样,除了预判是否会出现沙漏完,还可以查沙漏产生的人工应变能是否超过了一定范围,如果超过了就得改你的模型了,譬如采用完全积分单元等。具体可看
为了有限元编程的方便,Abaqus和ansys等商用有限元程序将几何非线性的设置和小应变/大应变设置完全分开的。
1)几何非线性开关的设置:在Abaqus中只要简单的在Step中勾选NL Geom这个开关就行。
2)单元的设置:在Mesh的Assign Element Type单元中设置,但有时Abaqus的设置完全看不出到底采用哪种几何非线性,譬如下面梁的设置,大家能找到哪地方设置小应变和大应变吗?
而有些时候不得不说Abaqus界面上和后台计算方法之间的关联还是非常精准的,譬如壳单元只有membrane strain才有small(小应变)和finite strain(大应变)之分,为什么不直接来一个:Strain选择small和finite呢?因为Abaqus把平面应变的贡献分为了两部分:membrane和bending部分,而后台计算时只有membrane才是采用的真实应变的方式计算,也就是类似对数方式,而bending部分的应变后台并不是采用对数方式计算的,这也是为何Abaqus的S4的设置中只有membrane strain的设置原因。
在Abaqus中第一个几何非线性开关的设置将控制后面的单元设置采用线性和非线性。相当于几何非线性的开关就是总闸,如果总闸关闭,那么后面的单元设置无论是小应变还是大应变单元都只会采用工程应变来计算,开启后,才会根据你选择的小应变还是大应变单元来决定采用Green应变还是真实应变。其实,如果Abaqus做得更人性化一点,应该在几何非线性开关关闭时,S4单元等的设置界面上Membrane strains:应该变灰才正常。整个的逻辑如下图所示:
Abaqus所有单元都支持几何非线性,由于Abaqus单元类型太多,我们只列出最常用的梁壳体而且因为iSolver编程而研究过的几种单元,按几何非线性的两个大类分类如下:
类型 | 小应变 | 大应变 |
梁单元 | B33,B23 | B31,B21 |
壳单元 | S4R5、STRI3、STR65、S4RS、S8R5、S3RS | S4/S4R、S3/S3R、S8R、CPS4/CPS4I、CPS4R |
体单元 | 没有小应变单元 | C3D8/C3D8R、C3D4、C3D10/C3D10M、C3D6、C3D20 |
注意:Abaqus没有类似S4R5的完全积分的小应变几何非线性单元。同时,Abaqus的小应变和大应变单元很多时候与其它的理论是关联的,譬如S4R5是薄壳理论,S4/S4R是厚壳理论,具体的壳单元理论和分类可以看下方视频:
https://www.jishulink.com/college/video/c14948
通过上面的分类,可知在Abaqus中梁和壳分别有小应变单元和大应变单元,我们以壳单元的简单算例来验证Abaqus几何非线性采用的应变和上一章的理论的区别,可以发现采用理论、Abaqus和iSolver三者在线性、小应变几何非线性和大应变几何非线性三种情况下都完全一致。
参数如下:
尺寸:5X1,厚度0.1。
材料:Young’s Modulus 1e8, Poisson Ratio 0.3。
左侧两个节点固支。
右侧两个节点每个加集中力1e5,x方向。
划分为一个单元。
几何非线性开关NLGeom=Off,同时设置单元类型为S4R5。得到的1方向的位移如下:
那么上一章的拉伸比例r=(L0+U1)/L0=(5+0.1)/5=1.02;
线性下采用工程应变
Strain=r-1=0.02
采用Abaqus求解器,得到的应变在1方向下:
在Job模块中,选择Plug-ins->iSolver->Engine,采用iSolver求解器
得到的应变如下:
几何非线性开关NLGeom=On,同时设置单元类型为S4R5,只迭代一步。
S4R5在几何非线性下采用Green应变
Strain=0.5*(r^2-1) =2.02
几何非线性开关NLGeom=On,同时单元类型改为S4R。
S4R在几何非线性下采用真实应变
Strain=ln(r) =0.0198
本文首先介绍了几何非线性一般的分类,然后详细说明了Abaqus中几何非线性的设置方式和常用单元的分类,最后以一个壳单元的简单算例为对象,可以发现应变理论、Abaqus结果和iSolver三者在线性、小应变几何非线性和大应变几何非线性三种情况下都完全一致,从而验证Abaqus几何非线性后台采用的应变和我们的预想一致。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删