lungo999 发表于 2011-10-19 17:13:28

UMAT开发过程小结

本帖最后由 lungo999 于 2011-10-19 22:56 编辑

本人前几个月一直在编写UMAT的一个子程序,中间明白了很多问题,也经常碰壁,不过得到了坛友的支持,在此一并谢过,并给来者介绍下经验。从开始想到最后模型校核结束,中间经历了3-4个月的时间,虽然现在还在对模型的参数进行部分的修改,但大体已经完成。
我想主要报告下UMAT的编写过程,如果您是一个人在折腾的话,如果模型比较复杂,而您又不是弹塑性力学高手的话,那么看了这篇小小的报告,可能会让您少走些弯路。

一、编写过程
1. 选定模型;(自己有数,多余了)

2. 熟悉弹塑性力学本构方面的基本知识;选10本左右的书,通读,后精读三本,推荐读Simo,清华大学庄拙老师翻译的那本连续体的书,另外的应该在置顶的帖子里有说明了,最好看英文原版书籍。这个过程可能要一个多月。磨刀不误砍柴工。

3. 对弹塑性本构基础知识有了深刻了解后,开始熟悉自己的本构模型,期间要经常返回看前面的书籍。

4. 从弹性的UMAT开始编写,再到abaqus手册给出的线性随动强化和各向同性强化的例子,自己每句都搞懂,同时熟悉fortran编程,注意fortran77和90都可以用。

5. 搜索论坛里面UMAT的相关帖子,注意UMAT的写作规范和一些固定的规则,如abaqus应力应变在最近的版本早已旋转过了,UMAT里面采用的是工程剪应变等等。

6. 查找论文,推导模型的DDSDDE和应力更新算法。如果没有显式的DDSDDE(牛顿迭代刚度矩阵),那么要考虑使用近似的DDSDDE或者采用数值法计算DDSDDE,具体方法见本人以前发过的例子和论文。注意,尽量使用准确的DDSDDE,因为对于复杂的本构模型,DDSDDE不仅影响收敛速度,更会导致结果错误甚至根本就不收敛。我的模型是有精确的DDSDDE的,只是在刚开始阶段以为DDSDDE不准确,才去研究数值法的,数值法也有问题,可能需要控制塑性应变增量,否则不容易收敛,本人仅仅试过abaqus里面的两个自带的弹塑性模型。

7. 张量算法如何转换为矩阵运算在编程过程特别重要,不小心就容易导致错误。最重要的一点就是了解张量算法,然后按照张量的结果对矩阵进行修正,方法可以看相关帖子的讨论,在此谢过给过我很多有益提示的坛友。

8. 在上述工作都准备好了后,着手开始编写UMAT,注意可以套用abaqus手册的模板,以免出现不必要的错误。编写过程中,从弹性开始校核,不要一下子都写了,不然错误肯定会很多。每做一步,如果能校核,就尽量校核。注意校核的时间可能是写UMAT最花时间的地方。

9. 关于校核的方法,论坛已用,就是看下fortran的write语句。先在fortran编译器看是否有错误,然后再在abaqus里面用一个单元进行校核。校核过程主要有单个单元单向拉伸,单向剪切等,以及最后的较大模型的校核。

10. 关于错误,可以说99.999%是编程的错误,或者是公式推导的错误。注意fortran的一些默认变量名的类型也可能导致错误。

11. 在遇到问题时,最重要的应该是回到起点,每次回到起点,可能都会发现些许问题,不能光盯着程序,如果公式推错了,再怎么编也无法运行。
另外,提一下DDSDDE,刚开始大家可能都不清楚它是用来干嘛的。我们在UMAT里面完成了积分点的应力更新,但是需要将应力更新的结果返回到abaqus进行全局平衡的迭代,DDSDDE就是提供全局平衡迭代的刚度矩阵。看了数值法求解的过程就会有更深的体会了,DDSDDE是为了后续的全局迭代服务的。

啰嗦了这么多,希望能让需要的人少走些弯路。写UMAT很花时间,但因为涉及到很多知识,所以做好后还是很有收获的,不仅仅是程序,更是对连续体以及有限元计算方面的一些深刻一点的理解。


way_nation 发表于 2011-10-19 20:05:23

非常感谢楼主写这篇总结,楼主能否再推荐几本介绍弹塑性本构比较好的书?

lungo999 发表于 2011-10-20 11:50:02

way_nation 发表于 2011-10-19 20:05 static/image/common/back.gif
非常感谢楼主写这篇总结,楼主能否再推荐几本介绍弹塑性本构比较好的书? ...

Nonliear finite elements for continua and structures   by Ted Belytschko
Non-linear Finite Element Analysis of Solids and Structures- by M.A. Crisfield
Introduction to Computational Plasticity-by Fionn Dunne and Nik Petrinic
Computational Inelasticity-by Simo
这几本够经典了,应该够用了。

zixian 发表于 2011-10-20 12:04:52

x谢谢楼主的分享哈,正在学习中,恰到好处的帮助

way_nation 发表于 2011-10-20 14:31:48

lungo999 发表于 2011-10-20 11:50 static/image/common/back.gif
Nonliear finite elements for continua and structures   by Ted Belytschko
Non-linear Finite Element ...

多谢楼主

juliette 发表于 2011-10-20 15:35:06

支持一下:)

个人觉得关键是弄清楚本构模型, 写umat不过是翻译的过程,把材料行为转换成代码表达,我总是用print *, '   ' 夹在程序里看执行到哪里。


sanxiarenshi 发表于 2011-10-20 20:16:35

谢谢楼主,我想做球头铣刀铣削曲面的三维热力耦合仿真,感觉难度有点大,工件材料是MoCrFe,刀具是硬质合金,本构模型主要看了J-C模型与Armstrong模型,基本知道怎么回事了。但就是感觉公式很难推导,看了一些人的推导过程,没完全看懂。还有塑性增量理论,大变形等,有问题可以向你请教吗?

lungo999 发表于 2011-10-21 09:36:10

sanxiarenshi 发表于 2011-10-20 20:16 static/image/common/back.gif
谢谢楼主,我想做球头铣刀铣削曲面的三维热力耦合仿真,感觉难度有点大,工件材料是MoCrFe,刀具是硬质合金 ...

热力耦合方面的不了解,你说的模型应该已经很经典了,先好好看看经典塑性本构的书,看懂了,再到论坛发帖问具体的问题。

emtfemtf 发表于 2011-10-23 17:57:48

我想把材料的Hall-Petch关系整合到材料中去模拟,还在设想中。

yazhouqin 发表于 2011-10-23 20:45:57

同意6L观点,编程不重要,本构理论才是重要的。

wangyingyongle 发表于 2011-10-24 09:54:50

楼主,你的本构是一维的吗?你本构方程是什么?能否贴出来,大家更容易明白和探讨以及学习楼主的经验

lungo999 发表于 2011-10-24 11:28:38

wangyingyongle 发表于 2011-10-24 09:54 static/image/common/back.gif
楼主,你的本构是一维的吗?你本构方程是什么?能否贴出来,大家更容易明白和探讨以及学习楼主的经验 ...

论文尚未发表,不便贴出,请见谅。

lungo999 发表于 2011-10-24 11:39:21

wangyingyongle 发表于 2011-10-24 09:54 static/image/common/back.gif
楼主,你的本构是一维的吗?你本构方程是什么?能否贴出来,大家更容易明白和探讨以及学习楼主的经验 ...

好像材料本构一般都是三维的或两维的。我的是三维的,也可以用于两维的平面应变和轴对称问题。

neuru 发表于 2011-10-24 15:20:28

请问
call GETOUTDIR( DIRNAME, 256 )
子程序永不了请问是什么问题?

zhangqun0949 发表于 2011-11-7 21:19:16

楼主,能不能问你一些程序的问题呢?我的QQ:148305732,在论坛问也可以

yoyoxu98 发表于 2011-11-7 21:54:42

最近正在看本构,希望可以在这个月内把本构大致了解下,总之看的很晕乎很慢
可以问下斑竹您是学什么专业的吗

donghuaubc 发表于 2015-5-13 13:28:03

多谢楼主!

suzypp 发表于 2015-6-6 11:14:24

感谢分享

lanlongerlrl 发表于 2015-7-14 20:41:11

多谢,学习了

panqinxue 发表于 2015-7-18 10:41:26

学习中:)
页: [1] 2
查看完整版本: UMAT开发过程小结