有限元理论基础及Abaqus内部实现方式研究系列19: Abaqus几何非线性的设置和后台
(原创,转载请注明出处)
==概述==
本系列文章研究成熟的有限元理论基础及在商用有限元软件的实现方式。有限元的理论发展了几十年已经相当成熟,商用有限元软件同样也是采用这些成熟的有限元理论,只是在实际应用过程中,商用CAE软件在传统的理论基础上会做相应的修正以解决工程中遇到的不同问题,且各家软件的修正方法都不一样,每个主流商用软件手册中都会注明各个单元的理论采用了哪种理论公式,但都只是提一下用什么方法修正,很多没有具体的实现公式。商用软件对外就是一个黑盒子,除了开发人员,使用人员只能在黑盒子外猜测内部实现方式。
一方面我们查阅各个主流商用软件的理论手册并通过进行大量的资料查阅猜测内部修正方法,另一方面我们自己编程实现结构有限元求解器,通过自研求解器和商软的结果比较来验证我们的猜测,如同管中窥豹一般来研究的修正方法,从而猜测商用有限元软件的内部计算方法。我们关注CAE中的结构有限元,所以主要选择了商用结构有限元软件中文档相对较完备的Abaqus来研究内部实现方式,同时对某些问题也会涉及其它的Nastran/Ansys等商软。为了理解方便有很多问题在数学上其实并不严谨,同时由于水平有限可能有许多的理论错误,欢迎交流讨论,也期待有更多的合作机会。
iSolver介绍视频:
http://www.jishulink.com/college/video/c12884
==第19篇:Abaqus几何非线性的设置和后台 ==
上一章从数学上介绍了几何非线性的应变度量,由于数学公式不够直观,这章将具体介绍Abaqus这款商软中几何非线性的设置后台采用的这些应变度量,同时针对简单的例子将理论、iSolver结果和Abaqus结果对比,证明Abaqus中几何非线性的各个应变度量的内部计算和我们上一章的数学公式是完全一致的。
1.1 几何非线性分类
上一章中介绍的三种常用应变是:
(1) 工程应变:用于线性问题
(2) 真实应变:应用于所有真实的几何非线性问题
(3) Green应变:用于几何非线性中的大位移、大转动、小应变的特殊几何非线性问题。因为Green应变计算量比真实应变简单。
有限元程序计算效率是一个非常重要的方面,所以一般把几何非线性简单的分为两类:
(1) 大位移、大转动,但应变非常小。譬如下方的右侧矩形其实只是左侧矩形的一个大的转动加上一个小的应变。
(2) 大位移、大转动,大变形问题。譬如下方的右侧矩形已经从一个正方形变为了一个大的斜角一般四边形。
如何区分是小应变还是大应变,除了预估,可以直接查看计算后的应变值,如果<<1,就是小应变,否则就只能算大应变问题,而如果你一开始把模型当做小应变来计算,但计算完毕后发现应变值较大,那么模型设置就有问题了。类似沙漏问题的考虑一样,除了预判是否会出现沙漏完,还可以查沙漏产生的人工应变能是否超过了一定范围,如果超过了就得改你的模型了,譬如采用完全积分单元等。具体可看
本系列文章第三篇:S4壳单元的剪切自锁和沙漏控制。介绍Abaqus的S4单元如何来消除剪切自锁以及S4R如何来抑制沙漏的。
http://www.jishulink.com/content/post/350865
1.2 Abaqus的几何非线性单元设置
为了有限元编程的方便,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:应该变灰才正常。整个的逻辑如下图所示:
1.3 Abaqus的常用几何非线性单元分类
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操作->matlab编程
1.4 Abaqus几何非线性后台采用的应变验证
通过上面的分类,可知在Abaqus中梁和壳分别有小应变单元和大应变单元,我们以壳单元的简单算例来验证Abaqus几何非线性采用的应变和上一章的理论的区别,可以发现采用理论、Abaqus和iSolver三者在线性、小应变几何非线性和大应变几何非线性三种情况下都完全一致。
1.4.1 算例介绍
参数如下:
尺寸:5X1,厚度0.1。
材料:Young’s Modulus 1e8, Poisson Ratio 0.3。
左侧两个节点固支。
右侧两个节点每个加集中力1e5,x方向。
划分为一个单元。
1.4.2 线性结果
几何非线性开关NLGeom=Off,同时设置单元类型为S4R5。得到的1方向的位移如下:
那么上一章的拉伸比例r=(L0+U1)/L0=(5+0.1)/5=1.02;
注:如果设置为S4R,那么线性下结果是一样的,读者可以自行尝试。
1.4.2.1 应变理论值
线性下采用工程应变
Strain=r-1=0.02
1.4.2.2 Abaqus应变结果
采用Abaqus求解器,得到的应变在1方向下:
1.4.2.3 iSolver应变结果
在Job模块中,选择Plug-ins->iSolver->Engine,采用iSolver求解器
得到的应变如下:
1.4.3 小应变几何非线性结果
几何非线性开关NLGeom=On,同时设置单元类型为S4R5,只迭代一步。
1.4.3.1 应变理论值
S4R5在几何非线性下采用Green应变
Strain=0.5*(r^2-1) =2.02
1.4.3.2 Abaqus应变结果
1.4.3.3 iSolver应变结果
1.4.4 大应变几何非线性结果
几何非线性开关NLGeom=On,同时单元类型改为S4R。
1.4.4.1 应变理论值
S4R在几何非线性下采用真实应变
Strain=ln(r) =0.0198
1.4.4.2 Abaqus应变结果
1.4.4.3 iSolver应变结果
==总结==
本文首先介绍了几何非线性一般的分类,然后详细说明了Abaqus中几何非线性的设置方式和常用单元的分类,最后以一个壳单元的简单算例为对象,可以发现应变理论、Abaqus结果和iSolver三者在线性、小应变几何非线性和大应变几何非线性三种情况下都完全一致,从而验证Abaqus几何非线性后台采用的应变和我们的预想一致。
小应变几何非线性的视频解说及算例操作演示如下:
http://www.jishulink.com/college/video/c12884 20理论系列文章17-几何非线性的物理含义
如果有任何其它疑问或者项目合作意向,也欢迎联系我们:
snowwave02 From www.jishulink.com
email: snowwave02@qq.com
以往的系列文章:
第一篇:S4壳单元刚度矩阵研究。介绍Abaqus的S4刚度矩阵在普通厚壳理论上的修正。
http://www.jishulink.com/content/post/338859
第二篇:S4壳单元质量矩阵研究。介绍Abaqus的S4和Nastran的Quad4单元的质量矩阵。
http://www.jishulink.com/content/post/343905
第三篇:S4壳单元的剪切自锁和沙漏控制。介绍Abaqus的S4单元如何来消除剪切自锁以及S4R如何来抑制沙漏的。
http://www.jishulink.com/content/post/350865
第四篇:非线性问题的求解。介绍Abaqus在非线性分析中采用的数值计算的求解方法。
http://www.jishulink.com/content/post/360565
第五篇:单元正确性验证。介绍有限元单元正确性的验证方法,通过多个实例比较自研结构求解器程序iSolver与Abaqus的分析结果,从而说明整个正确性验证的过程和iSolver结果的正确性。
https://www.jishulink.com/content/post/373743
第六篇:General梁单元的刚度矩阵。介绍梁单元的基础理论和Abaqus中General梁单元的刚度矩阵的修正方式,采用这些修正方式可以得到和Abaqus梁单元完全一致的刚度矩阵。
https://www.jishulink.com/content/post/403932
第七篇:C3D8六面体单元的刚度矩阵。介绍六面体单元的基础理论和Abaqus中C3D8R六面体单元的刚度矩阵的修正方式,采用这些修正方式可以得到和Abaqus六面体单元完全一致的刚度矩阵。
https://www.jishulink.com/content/post/430177
第八篇:UMAT用户子程序开发步骤。介绍基于Fortran和Matlab两种方式的Abaqus的UMAT的开发步骤,对比发现开发步骤基本相同,同时采用Matlab更加高效和灵活。
https://www.jishulink.com/content/post/432848
第九篇:编写线性UMAT Step By Step。介绍基于Matlab线性零基础,从零开始Step by Step的UMAT的编写和调试方法,帮助初学者UMAT入门。
http://www.jishulink.com/content/post/440874
第十篇:耦合约束(Coupling constraints)的研究。介绍Abaqus中耦合约束的原理,并使用两个简单算例加以验证。
https://www.jishulink.com/content/post/531029
第十一篇:自主CAE开发实战经验第一阶段总结。介绍了iSolver开发以来的阶段性总结,从整体角度上介绍一下自主CAE的一些实战经验,包括开发时间预估、框架设计、编程语言选择、测试、未来发展方向等。
http://www.jishulink.com/content/post/532475
第十二篇:几何梁单元的刚度矩阵。研究了Abaqus中几何梁的B31单元的刚度矩阵的求解方式,以L梁为例,介绍General梁用到的面积、惯性矩、扭转常数等参数在几何梁中是如何通过几何形状求得的,根据这些参数,可以得到和Abaqus完全一致的刚度矩阵,从而对只有几何梁组成的任意模型一般都能得到Abaqus完全一致的分析结果,并用一个简单的算例验证了该想法。
http://www.jishulink.com/content/post/534362
第十三篇:显式和隐式的区别。介绍了显式和隐式的特点,并给出一个数学算例,分别利用前向欧拉和后向欧拉求解,以求直观表现显式和隐式在求解过程中的差异,以及增量步长对求解结果的影响。
http://www.jishulink.com/content/post/537154
第十四篇:壳的应力方向。简单介绍了一下数学上张量和Abaqus中壳的应力方向,并说明Abaqus这么选取的意义,最后通过自编程序iSolver来验证壳的应力方向的正确性。
https://www.jishulink.com/content/post/1189260
第十五篇:壳的剪切应力。介绍了壳单元中实际的和板壳近似理论中的剪切应力,也简单猜测了一下Abaqus的内部实现流程,最后通过一个算例来验算Abaqus中的真实的剪切应力。
https://www.jishulink.com/content/post/1191641
第十六篇:Part、Instance与Assembly。介绍了Part、Instance与Assembly三者之间的关系,分析了Instance的网格形成原理,并猜测Abaqus的内部组装实现流程,随后针对某手机整机多part算例,通过自编程序iSolver的结果比对验证我们的猜想。
https://www.jishulink.com/content/post/1195061
第十七篇:几何非线性的物理含义。介绍了几何非线性的简单的物理含义,并通过几何非线性的悬臂梁Abaqus和iSolver的小应变情况的结果,从直观上理解几何非线性和线性的差异。
https://www.jishulink.com/content/post/1198459
第十八篇:几何非线性的应变。首先从位移、变形和应变的区别说起,然后通过一维的简单例子具体介绍了几何非线性下的应变的度量方式,并给出了工程应变、 真实应变、Green应变三者一维情况下在数学上的表达方式。
查看更多评论 >