有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step
(原创,转载请注明出处)
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图1]()
==概述==
本系列文章研究成熟的有限元理论基础及在商用有限元软件的实现方式,通过
(1) 基础理论
(2) 商软操作
(3) 自编程序
三者结合的方式将复杂繁琐的结构有限元理论通过简单直观的方式展现出来,同时深层次的学习有限元理论和商业软件的内部实现原理。
有限元的理论发展了几十年已经相当成熟,商用有限元软件同样也是采用这些成熟的有限元理论,只是在实际应用过程中,商用CAE软件在传统的理论基础上会做相应的修正以解决工程中遇到的不同问题,且各家软件的修正方法都不一样,每个主流商用软件手册中都会注明各个单元的理论采用了哪种理论公式,但都只是提一下用什么方法修正,很多没有具体的实现公式。商用软件对外就是一个黑盒子,除了开发人员,使用人员只能在黑盒子外猜测内部实现方式。
一方面我们查阅各个主流商用软件的理论手册并通过进行大量的资料查阅猜测内部修正方法,另一方面我们自己编程实现结构有限元求解器,通过自研求解器和商软的结果比较来验证我们的猜测,如同管中窥豹一般来研究的修正方法,从而猜测商用有限元软件的内部计算方法。我们关注CAE中的结构有限元,所以主要选择了商用结构有限元软件中文档相对较完备的Abaqus来研究内部实现方式,同时对某些问题也会涉及其它的Nastran/Ansys等商软。为了理解方便有很多问题在数学上其实并不严谨,同时由于水平有限可能有许多的理论错误,欢迎交流讨论,也期待有更多的合作机会。
自主结构有限元求解器iSolver介绍视频:
http://www.jishulink.com/college/video/c12884
==第26篇:编写线性VUMAT Step By Step ==
相对隐式分析,显式分析无需再计算单元刚度矩阵,因此也无需再计算应力应变关系矩阵,因此只需要根据应变增量计算当前的应力状态即可。本章将以一个Abaqus中的Step by step例子来说明VUMAT从零开始的操作过程。
Abaqus规定了VUMAT的输入输出,下表就是一些关键变量的符号说明。
![0.png 0.png](https://img.jishulink.com/upload/202007/af0b17d162024e5bb97c81f7ef7a97cf.png)
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图9]()
1.1 Abaqus建模
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图11]()
1.1.1 创建模型
打开一个Abaqus,双击左侧模型树的Parts,选择3D,Solid,Extrude进行模型创建。
![1.png 1.png](https://img.jishulink.com/upload/202007/a2d67c6017ff465a91e9b2c7d0a613d1.png)
图 1 创建模型
点击Continue进入草绘界面,点击如下图所示Create Lines:Rectangle功能按钮进行草图绘制。
![2.png 2.png](https://img.jishulink.com/upload/202007/aeb7548beb214cd38e1bec6ef3f83076.png)
图 2 草图绘制
在下图所示输入框中分别输入(0,0)和(5,1)创建一个长方形。
![3.png 3.png](https://img.jishulink.com/upload/202007/4766f273d54741199088cb76f69e7cf0.png)
图 3 创建长方形
输入完成以后点击鼠标中间完成长方形的创建。
![4.png 4.png](https://img.jishulink.com/upload/202007/4ab38718bb0a403798522dd0b6d1dc2b.png)
图 4 完成创建
点击如下图所示Done按钮或者鼠标中间完成草图绘制。
![5.png 5.png](https://img.jishulink.com/upload/202007/12ea97a7d8c8448c8dab42e70c158261.png)
图 5 完成草图
在弹出的Edit Base Extrusion界面中的Depth输入框中输入0.1,点击OK完成模型的创建。
![6.png 6.png](https://img.jishulink.com/upload/202007/7910819423234ba6bb4098322197c071.png)
图 6 设置深度
创建以后的模型如下图所示。
![7.png 7.png](https://img.jishulink.com/upload/202007/0048d0c4f2eb48738ffa5f770ad71a4e.png)
图 7 创建以后的模型
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图26]()
1.1.2 设置用户自定义材料
切换Abaqus模块到Property,点击
![1.png 1.png](https://img.jishulink.com/upload/202007/c498e3d885e249998ae5916495882d42.png)
创建名为Material-VUMat的材料。设置属性如图所示:
![8.png 8.png](https://img.jishulink.com/upload/202007/11edb208fce3499b954378f9d4fc37a4.png)
图 8 设置用户自定义材料
通过
![9.png 9.png](https://img.jishulink.com/upload/202007/6d982096dfa8488eb8060045caa82384.png)
创建名为Section-1材料属性,在Edit Section对话框中。将里面的材料选择我们刚刚创建的Material-VUMat。
![10.png 10.png](https://img.jishulink.com/upload/202007/7218328924464772a3fdcf247bce6e66.png)
图 9 设置section属性
接着点击
![11.png 11.png](https://img.jishulink.com/upload/202007/e99a90185f1d44d6a0e823155aec65ae.png)
,单击选中我们创建的part,在弹出的对话框中选中我们刚刚创建的Section-1。
![12.png 12.png](https://img.jishulink.com/upload/202007/d969551acaac4d9d8152696d110cbd72.png)
图 10 设置section属性
最后点击OK完成材料属性附加
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图41]()
1.1.3 创建装配体
切换Abaqus模块到Assembly,点击
![0.png 0.png](https://img.jishulink.com/upload/202007/b5dc951334fa4ce7ada5e3a6ce62f78d.png)
导入Part-1
![14.png 14.png](https://img.jishulink.com/upload/202007/328b338182c64fa4ba78bcccb69ec7c0.png)
图 11 创建装配体
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图47]()
1.1.4 设置分析步
切换Abaqus模块到Step,点击
![15.png 15.png](https://img.jishulink.com/upload/202007/c1830ff600714fd09b338c54ceee2537.png)
创建类型为Dynamic,Explicit的分析步。
![16.png 16.png](https://img.jishulink.com/upload/202007/90ab9c4bb9944adba1ad99c83734bee1.png)
图 12 创建分析步
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图55]()
1.1.5 划分网格
切换Abaqus模块到Mesh, 点击
![17.png 17.png](https://img.jishulink.com/upload/202007/7875e27196bb469698298c2abcb8ba2e.png)
,设置网格大小为5。
![18.png 18.png](https://img.jishulink.com/upload/202007/50f09ab628b14a12bdc1e12169b956e0.png)
图 13 设置网格尺寸
完成网格尺寸设置以后点击
![19.png 19.png](https://img.jishulink.com/upload/202007/62a7e568c9174c439dedca9ee325e8e3.png)
,进行网格划分。
图 14 网格划分以后的模型
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图65]()
1.1.6 创建载荷
切换Abaqus模块到Load, 点击
![13.png 13.png](https://img.jishulink.com/upload/202007/16a0ad9c5a704ee3bd36a130843a552b.png)
创建载荷,选择Concentrated force类型。然后如下图所示选择对面4个顶点作为载荷施加位置,设置值为1.6e8。
![22.png 22.png](https://img.jishulink.com/upload/202007/cb1a210ebcc147ae9b7f8b52bd669bc1.png)
图 15 选择载荷施加点
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图71]()
1.1.7 创建job并计算
切换到Abaqus的Job模块下,创建Abaqus的Job,名为Job-VUMat。
![23.png 23.png](https://img.jishulink.com/upload/202007/1ddb869e37274d868b45f9126fb2568f.png)
图 16 创建Job
1.2 VUMAT编写与运行
1.2.1 VUMAT编写
创建VUMAT.for文件,编辑文件。
计算应力,并更新到stressNew变量中,应力与应变增量关系如下图所示:
![24.png 24.png](https://img.jishulink.com/upload/202007/52dc758e19ab4eb3bdb928f19029e6dc.png)
图 17 应力与应变增量关系
已实现的VUMAT.for文件在技术邻视频《Abaqus用户子程序UMat详解与开发工具》中的附件中下载,同时应力更新理论和算法也可参考视频中的讲解。
![25.png 25.png](https://img.jishulink.com/upload/202007/ff119fea142e4e2683518cfb9ab6a4f3.png)
http://www.jishulink.com/college/video/c13034
1.2.2 VUMAT运行
编辑1.1.7中创建的Job,使用1.2.1中创建的VUMAT.for文件。
![26.png 26.png](https://img.jishulink.com/upload/202007/7ad536b6196a4eaaa6158817fa6ef359.png)
图 18 编辑Job
单击鼠标选择需要计算的Job,然后点击Submit,进行计算。
1.2.3 查看结果
点击Results,对选中的Job,打开计算生成的文件。
此时会自动切换到Visualization模块显示云图,得到位移结果如下。
![27.png 27.png](https://img.jishulink.com/upload/202007/b1533768ee674cd09f48328f13a5c514.png)
图 19 计算结果
1.2.4 Abaqus自带材料结果比较
1.2.4.1 最后一个增量步应力比较
![28.png 28.png](https://img.jishulink.com/upload/202007/d7de7c9b867f432aafa7f7fd3219537a.png)
图 20 应力比较,左侧为VUMAT结果,右侧为Abaqus材料结果
1.2.4.2 最后一个增量步位移比较
![29.png 29.png](https://img.jishulink.com/upload/202007/1ef2d09d257145acba5ddf54e5a352be.png)
图 21 位移比较,左侧为VUMAT材料结果,右侧为Abaqus材料结果
1.3 联系方式
如果有任何其它疑问或者项目合作意向,也欢迎联系我们:
snowwave02 From www.jishulink.com
email: snowwave02@qq.com
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图92]()
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图93]()
1.4 以往的系列文章
以往的系列文章:
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图95]()
1.4.1 ========第一阶段========
第一篇:S4壳单元刚度矩阵研究。
http://www.jishulink.com/content/post/338859
第二篇:S4壳单元质量矩阵研究。
http://www.jishulink.com/content/post/343905
第三篇:S4壳单元的剪切自锁和沙漏控制。
http://www.jishulink.com/content/post/350865
第四篇:非线性问题的求解。
http://www.jishulink.com/content/post/360565
第五篇:单元正确性验证。
https://www.jishulink.com/content/post/373743
第六篇:General梁单元的刚度矩阵。
https://www.jishulink.com/content/post/403932
第七篇:C3D8六面体单元的刚度矩阵。
https://www.jishulink.com/content/post/430177
第八篇:UMAT用户子程序开发步骤。
https://www.jishulink.com/content/post/432848
第九篇:编写线性UMAT Step By Step。
http://www.jishulink.com/content/post/440874
第十篇:耦合约束(Coupling constraints)的研究。
https://www.jishulink.com/content/post/531029
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图97]()
1.4.2 ========第二阶段========
第十一篇:自主CAE开发实战经验第一阶段总结。
http://www.jishulink.com/content/post/532475
第十二篇:几何梁单元的刚度矩阵。
http://www.jishulink.com/content/post/534362
第十三篇:显式和隐式的区别。
http://www.jishulink.com/content/post/537154
第十四篇:壳的应力方向。
https://www.jishulink.com/content/post/1189260
第十五篇:壳的剪切应力。
https://www.jishulink.com/content/post/1191641
第十六篇:Part、Instance与Assembly。
https://www.jishulink.com/content/post/1195061
第十七篇:几何非线性的物理含义。
https://www.jishulink.com/content/post/1198459
第十八篇:几何非线性的应变。
https://www.jishulink.com/content/post/1201375
第十九篇:Abaqus几何非线性的设置和后台。
http://www.jishulink.com/content/post/1203064
第二十篇:UEL用户子程序开发步骤。
https://www.jishulink.com/content/post/1204261
![有限元理论基础及Abaqus内部实现方式研究系列26: 编写线性VUMAT Step By Step的图99]()
1.4.3 ========第三阶段========
第二十一篇:自主CAE开发实战经验第二阶段总结。
https://www.jishulink.com/content/post/1204970
第二十二篇:几何非线性的刚度矩阵求解。
http://www.jishulink.com/content/post/1254435
第二十三篇:编写简单面内拉伸问题UEL Step By Step。
http://www.jishulink.com/content/post/1256835
第二十四篇:显式求解Step By Step。
https://www.jishulink.com/content/post/1261165
第二十五篇:显式分析的稳定时间增量。
查看更多评论 >