对ABAQUS中的umat和vumat的一些理解【转发】

2017-06-15  by:CAE仿真在线  来源:互联网

1.
If UMAT is used with reduced-integration elements or shear flexible shell or beam elements, the hourglass stiffness and the transverse shear stiffness must be specified with the *HOURGLASS STIFFNESS and *TRANSVERSE SHEAR STIFFNESS options, respectively.

2.
1/The difficulty for passing SDV with UMAT or VUMAT is exactly the SAME ! Only slight differences ! The syntax is always : SDVNew=SDVOld+dSDV or SDVNew=function(blablabla) But you already know that !!!!! 2/There are no conveniences except using your little fingers to transform a UMAT to a VUMAT. 3/VUMAT is easier to code because it doesn't require the Jacobian computation DDSDDE(i,j). BenZ. --- In ABAQUS@xxxxxxxxxxxxxxx, "meyh2002" wrote: > Hi, Benz, > > What you said are hundred percent correct and I agree with them.I > disscuss the viscos progrm with you just wanting to get the hints of > how to pass and update variables in UMAT.I got confused because I used > UMAT instead of VUMAT, which seems easier to pass and update stress > and variable.Maybe I should change my UMAT into VUMAT.I will chek the > manual on the difference of the user subroutines. So far I think at > least I should change the integration scheme and user subroutine > interface. Is there a convenience way to do that? > > By the way, you really have a sharp head and are familar with ABAQUS? > How long have you been working on it, if you don't mind to tell? > Because sometimes I feel frustrated because BAQAUS is so complicated > that you can not understand the whole view of it.This make people > waste time and strength. > > > meyh ------------------------ Yahoo! Groups Sponsor --------------------~--> $9.95 domain names from Yahoo!. Register anything.http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/PMYolB/TM--------------------------------------------------------------------~->
Next Message by Date:
Re: problem during running UMAT

--- In ABAQUS@xxxxxxxxxxxxxxx, "benjamin_hagege" wrote: Thanks.I am working on it now.Hope I can get it done soon. meyh > 1/The difficulty for passing SDV with UMAT or VUMAT is exactly the > SAME ! Only slight differences ! The syntax is always : > SDVNew=SDVOld+dSDV or SDVNew=function(blablabla) > But you already know that !!!!! > 2/There are no conveniences except using your little fingers to > transform a UMAT to a VUMAT. > 3/VUMAT is easier to code because it doesn't require the Jacobian > computation DDSDDE(i,j). > > > BenZ. > > > --- In ABAQUS@xxxxxxxxxxxxxxx, "meyh2002" wrote: > > Hi, Benz, > > > > What you said are hundred percent correct and I agree with them.I > > disscuss the viscos progrm with you just wanting to get the hints of > > how to pass and update variables in UMAT.I got confused because I > used > > UMAT instead of VUMAT, which seems easier to pass and update stress > > and variable.Maybe I should change my UMAT into VUMAT.I will chek > the > > manual on the difference of the user subroutines. So far I think at > > least I should change the integration scheme and user subroutine > > interface. Is there a convenience way to do that? > > > > By the way, you really have a sharp head and are familar with > ABAQUS? > > How long have you been working on it, if you don't mind to tell? > > Because sometimes I feel frustrated

3.stateold是上一步的状态变量,如果你没有用到状态变量,这个一直就是0,不是应变。vumat和umat不一样。
vumat本构更新是这样的:stressnew=stressold+D*straininc,不会自动保存应变
而umat里面是这样的:stress=C*strain,应变是作为一个变量保存起来的。
http://forum.simwe.com/forum.php?mod=viewthread&tid=1009357&highlight=VUMAT

4.LS-Dyna的本构子程序,把输入,输出变量的名称改一下就直接可以用在Vumat上,不会有任何问题,甚至你都可以用Matlab测试你的本构子程序。
我对于您的问题是这样认为的
1.首先是stressnew的问题,对于小变形来说,基本是stress算到多少,后处理现实的就是多少,如果存在旋转的话,那么可能两者不一致,因为应力=应力+应力增量,这个是简单的公司、、公式,可是在vumat中你计算的只是这个应力增量的一部分,还有一部分是共旋所引起的,这个你可以参考一下应力客观率的介绍,比如Jaumann率,这个时候应力增量有三部分组成第一部份为变形导致的应力增加,后面两部分为旋转导致的,这两个部分应力增量abaqus会在你计算完stressnew以后给你增加上。
2.一般对于使用vumat的还都到载荷作用的区域,我会选择将这一位置设置为弹性体,这是个比较常用的方式,如果你的计算感兴趣区域不再载荷作用位置。这个解释起来很简单,圣维南原理解释得很清楚,还有这个一般不会影响你的计算结果,如果你想问为什么,这个其实可以开个帖子来说,这里不详细说明了。
3.这个问题就是个人观点了,首先对于下降段出现的问题,本身就是控制函数发生了变化,从椭圆问题退化到双曲问题,我是只这个函数在空间上的控制方程的变化,这个时候一般会有震颤(因为存在间断解),但是存在震颤并不是人家abaqus计算的不对,而是本来就应该有震颤,好比流体激波行为,差分出来的解本来就是有震颤的。但是这个震颤可以消除就是通过数值耗散的方法,但是数值耗散其实是一中数值误差,他将原本正确的震荡解变为了平滑的解。但是这样曲线看起来好看多了。至于为什么abaqu的只带模型好使,就是因为人家增加了数值耗散。
这个问题我在这个帖子中回了,你可以看看http://forum.simwe.com/viewthrea ... F0��&page=2
http://forum.simwe.com/forum.php?mod=viewthread&tid=995145&highlight=VUMAT

5.http://forum.simwe.com/forum.php?mod=viewthread&tid=1112102&highlight=VUMAT
VUMAT中如何调用或表示初始弹性刚度矩阵

————————————————————————————————————————
2015年1月25日 周日

非线性静态不稳定问题:
http://forum.simwe.com/forum.php?mod=viewthread&tid=1083142&highlight=不稳定

"如果结构局部变形不稳定的话,我看到abaqus help里提到会施加阻尼"
关于这个前段时间我也碰到过这样的问题,两个模型,有一个尺寸不同,改变了载荷后其中一个不收敛了,后来找别人解决的,就是添加了个稳定因子,contact control ,,,,stabilization=1。就收敛了,结果还比较符合
后来查了些资料,说是增加了阻尼,让结构尽快的稳定,在这个过程中误差小于默认的值,才会收敛的。

本构模型中需计算各个时刻积分点的真实应变,也就是对数应变 logarithmic strain。楼主说的true strain 就是应该是 logarithmic strain,所以没有任何问题的
与这些相对应的应该是engineering strain or nominal strain

-----------------------------
2015年1月25日 周一 阴
1.
静力问题选择了explicit算法的求解时间预估
http://forum.simwe.com/forum.php?mod=viewthread&tid=1106152&highlight=Explicit
由于模型较复杂,接触较多,虽然是静力问题,但是我选择了explicit算法,模型的详细参数如下:单元数量约30W,最小单元尺寸为1.4mm,为了保证单元质量,没办法在增大了,我使用了质量缩放,但是时间步长也仅仅是2.8e-7,模型的加载为3个集中力、3个弯矩、1个重力载荷。我想问问有做过类似案例的同仁,这样的模型计算时间需要设定多久?我说的是inp文件里面总的计算时间设定多少秒合适?我第一次采用explicit算法计算静力问题,没经验,所以咨询一下,谢谢!
自问自答吧,1.首先求解出系统的第一阶频率(系统最低频率),根据频率算系统的周期,这就是准静态显式求解的最小求解时间要求,如果条件允许,将求解时间放大10倍,求解绝对精准。我已经实践过了,没问题。

2.
[高级讨论区] 采用能量判断Explicit拟静力分析结果的方法总结及疑问
http://forum.simwe.com/forum.php?mod=viewthread&tid=1117632&highlight=Explicit
在用Explicit开展一个具有多个接触关系模型的拟静力分析,理想的情况当然是使用implicit,但是如果接触很多且接触关系在不断变化的弹塑性屈曲分析,implicit收敛就很困难,因此选用implicit,毕竟每一步不是力的平衡计算,总感觉需要对结果进行严格的判别后才能使用,因此在论坛和Manual上找了一下相关准则,现总结如下:(声明:本帖内容不属于原创,仅是总结,论坛里已有很多大侠对这一问题进行过论述,对我帮助很大,但由于看了很多帖子,就不一一注明出处了,在此一并谢过!)
分析类型:具有多个接触的弹塑性拟静力分析,采用Abaqus/explicit模块
1、Etotal应保持常量,或近似常量(1%变化幅度);
问题:我的模型始终没有达到,一直为负且变化幅度大于1%,且在计算的某一时刻会突然变正,且持续增大到一个很大的量级(伴随着ALLVD的突然增大),增加Linear Bulk Viscosity后,情况会好点,能够算更多的步数,但是增加这个参数后对结果的影响还有疑问,是否应该判断ALLVD/ALLIE的比值,比如小于5%?
2、如果采用缩减积分单元,应控制沙漏能,ALLAE/ALLIE应控制在一定范围(5%);
问题:Manual里讲ALLAE应该和ALLSE或ALLKE相比是可以忽略的,那么这个可以忽略的应该如何控制呢?我认为应该比5%有所放宽吧,毕竟ALLIE与ALLSE相比要大很多,另外当拟静力分析时,ALLKE本来控制的就很小,此时不应该再用ALLKE来控制了。
3、如是拟静力分析,应控制ALLKE/ALLIE小于1%,我觉得这一条还是相对容易达到的。
4、Manual上提到,ALLCW和ALLPW应该接近于零;
问题:我的模型中ALLCW可以保持始终为零,但是ALLPW却为负值,且绝对值在增大,我认为我的Etotal为负也可能与这一原因有关(论坛上说,Etotal为负的一个可能原因是沙漏能导致模型能量损失),有什么办法可以减少ALLPW呢?
5、关于Manual里提到的Etotal应当恒定为一个常数,我的理解是:
1)对于初始就有应变能,动能的系统,Etotal的值应该从分析开始时就等于这一应变能/动能的值(从Manual的Benchmark模型的结果可以看出);
2)如果系统初始没有能量存在,那么Etotal在分析过程中应该接近于0;
3)关于实际计算时,Etotal不能保持恒定,而是始终在变化,我猜想可能是数值计算引起的误差(误差产生后,其值可正可负);
4)具体到我的模型,我认为由于模型在分析过程中出现多次的屈曲,每一次屈曲可能带来计算误差的累积,造成Etotal的值在变化,每次屈曲后,Etotal都会在新的平衡值附近震荡;
以上是我对采用能量输出判断Explicit进行拟静力分析结果的方法总结以及一些还未解决的问题,尤其是第5条,属于个人猜想,还没找到理论依据,希望各位高手指点迷津!

3.[土木] 素砼梁位移加载下降段-Stabilization/Riks/Explicit(呼唤大神@敦诚)
http://forum.simwe.com/forum.php?mod=viewthread&tid=1069815&highlight=Explicit

---------------------------------------
2015年1月30日

本构模型有较为强烈的下降段时,计算容易表现出部化效应(损伤、塑性变形、或者应变在局部单元集中)导致计算不稳定,出现所谓网格依赖特性,就是网格划分少时计算结果好,划分多时表现出局部化效应计算不稳定,打个比方来说,对于一个truss单元,承受受压荷载,如果其材料本构有明显下降段,在explicit分析中如果划分1-3个单元,计算能稳定性好,能计算出比较好的承载力曲线,如果划分10个以上单元,在计算时构件中的一个单元会率先进入下降段,其压缩应变迅速增长,其它单元会出现拉伸(虽然此时构件总体还是处于压缩状态),计算根本得不到下降段曲线,一旦越过最高点,构件的承载力就迅速降为0,理论上要通过所谓的梯度理论才能解决这个问题,但梯度理论目前很不成熟,需要颠覆传统有限元的单元构建方式,使用困难,目前能较好解决方法就是如敦诚版主版主所说的引入粘滞。对于你的情况,建议你将模型中的损伤变量粘滞化使之能考虑应变率效应,看效果是不是好一些。给一篇文献希望对你有帮助。
[子程序] 损伤在vumat中的实现
损伤在vumat中的实现
http://forum.simwe.com/thread-966598-1-1.html
(出处: Simwe仿真论坛(forum.simwe.com),CAE/CAD/CAM/,FEA/FEM/有限元分析论坛---(手机验证注册))

http://forum.simwe.com/forum.php?mod=viewthread&tid=966598&highlight=VUMAT

关于step,increment,attempt,iteration的关系的认识
http://forum.simwe.com/thread-795512-1-1.html
(出处: Simwe仿真论坛(forum.simwe.com),CAE/CAD/CAM/,FEA/FEM/有限元分析论坛---(手机验证注册))

step,increment,attempt,iteration,的关系
1)step 分析步
2)increment 时间增量步
3)attempt 减小增量步的尝试,即“cutback”
4)iteration 迭代
在一个计算中有可能用到多步分析,比如建一个土石坝,每激活(add)一个填筑层就

是一个分析步step;
在每个step中,如果考虑非线性,step就会分成几个增量步(increment)进行计算;
在每个increment中,会有减小增量步的尝试(attempt),在每个attemp中,要进行

迭代计算(iteration)
如果迭代收敛,则在下一个increment中会增大时间增量步(比如第一个

increment=0.2,则下一个会增大为0.3)
如果迭代无法达到收敛,则ABAQUS会自动减小时间增量步(减小increment),即

所谓的“cutback”,如果仍然不能收敛,则会继续减小时间增量步,默认的cutback

最大次数为5次,也就是attempt最大=5,如果5次之后仍不能收敛则ABAQUS会停止分

析,显示错误:too many attempts made for this increment:analysis

terminated.
increment时间增量步有最小值,默认的是1e-5,如果increment减小到比这还小

,ABAQUS就会停止分析,出现错误:time increment required is less than the

minimum specified.
increment的值可以在关键字*static中修改:
*static
1., 1., 1e-05, 1.
分别为初始增量步,分析时间步,最小增量步,最大增量步
可以用关键字*Step设定一个分析步中increment的最大步数,如:
*Step,INC=600 (the maximum number of increments in a step,默认的是100 )
*static和*Step中的increment是相同的,*Step,INC默认为100,而*static中默认为

1e-5,并不是100*(1e-5)=1,这两个数都是限值,即number of increments最大为100

,而increment最小为1e-5。

关于explicit质量放大的一点小心得
http://forum.simwe.com/thread-828207-1-1.html
(出处: Simwe仿真论坛(forum.simwe.com),CAE/CAD/CAM/,FEA/FEM/有限元分析论坛---(手机验证注册))

本构模型有较为强烈的下降段时,计算容易表现出部化效应(损伤、塑性变形、或者应变在局部单元集中)导致计算不稳定,出现所谓网格依赖特性,就是网格划分少时计算结果好,划分多时表现出局部化效应计算不稳定,打个比方来说,对于一个truss单元,承受受压荷载,如果其材料本构有明显下降段,在explicit分析中如果划分1-3个单元,计算能稳定性好,能计算出比较好的承载力曲线,如果划分10个以上单元,在计算时构件中的一个单元会率先进入下降段,其压缩应变迅速增长,其它单元会出现拉伸(虽然此时构件总体还是处于压缩状态),计算根本得不到下降段曲线,一旦越过最高点,构件的承载力就迅速降为0,理论上要通过所谓的梯度理论才能解决这个问题,但梯度理论目前很不成熟,需要颠覆传统有限元的单元构建方式,使用困难,目前能较好解决方法就是如敦诚版主版主所说的引入粘滞。对于你的情况,建议你将模型中的损伤变量粘滞化使之能考虑应变率效应,看效果是不是好一些。给一篇文献希望对你有帮助。
粘滞化不仅仅是为了考虑应变加载速率效应对本构行为的影响,它能提高模型的稳定性,在一定程度上消除网格依赖,在考虑应变率的本构模型中如果将加载时间取的足够长,则可认为没有考虑应变率效应,但这样处理却能提高模型的稳定性,部分的消除网格依赖和局部化效应。

单元为1的时候边界都是施加在这个单元上的,这样就相当于增加了单元的约束,提高了刚度,所以衰减行为可以比较缓慢的释放,而多个单元模型中很多单元没有这个优势,所以还是快速衰减,并发生扭曲和失效,建议你定义一个单元删除变量, 让单元在damage达到一定数值的时候立刻删除。同时在单元类型里面设置一下比较大的体积粘滞系数,看看还有没有这种情况。
最后减小增量步!做两个分析部一个让材料基本接近损伤的起始,第二个分析部设置步长很小,比如1e-9,然后让他每一步一存储。来看看损伤行为的发展是不是被explicit跳跃了。这样做可能odb文件会很大,但是值得,我以前做过,odb文件甚至达到过20G。
损伤在vumat中的实现
http://forum.simwe.com/thread-966598-1-1.html
(出处: Simwe仿真论坛(forum.simwe.com),CAE/CAD/CAM/,FEA/FEM/有限元分析论坛---(手机验证注册))

-----------------------------------------------

2015年1月31日
对本构方程积分的方法有exlicit and implicit,前者不需要迭代,运算较快,但是它是有条件稳定算法,而且精确度不高,还可能引起不正常卸载的情况发生,因此多半人们采用后者积分.对implicit算法的本构方程是一个非线性方程组,用Newton-Raphson方法求解.这个就是叫做return mapping的算法,那个radial return method只是它的一个特列.
当要求解软化材料的问题时,刚度矩阵会变负,现在的解决方法有引入附加条件,比如sphercial path control and arc-length control.参考:
1.Simo, J.C., Hughes, T.J.R., 1998. Computational Inelasticity. Springer-Verlag, New York.
2.O. C. Zienkiewicz and R. L. Taylor, The Finite Element Method
3.Crisfiled MA. Non-linear Finite Element Analysis of Solids and Structures. Volume 1: Essentials. Wiley:. Chichester, 1997
http://www.baisi.net/thread-680016-1-1.html

-------------------------------------------------

2015年3月10日
用显示算法进行动力学分析时,monitor里面的total energy一会负值一会正值,这个是为什么啊。还有那个kinetic energy和total energy 是什么意义,有什么关系?
kinetic energy是动能;total energy 是总能量,
在进行动力学分析时,一般来说在整个计算过程中能量是守恒的,即计算过程中,total energy 应该不变的,但是kinetic energy应该是变化的,除非速度和质量不变,同时可能在求解过程中存在摩擦能、沙漏能、外力做功、内能与动能的相互转换等等,所以求解过程中可能会出现各种能量之间的互相转换,你要全权监控,total energy的变化是由什么引起的?可以肯定的是如果是有沙漏能引起的,那结果就是不可靠的。


转自http://blog.sina.com.cn/s/blog_64fe8b9d0102vipx.html

开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:对ABAQUS中的umat和vumat的一些理解【转发】 abaqus分析培训 abaqus技术教程 abaqus岩土分析 钢筋混凝土仿真 abaqus分析理论 abaqus软件下载 abaqus umat用户子程序编程 Abaqus代做 Abaqus基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com