找回密码
 注册
Simdroid-非首页
查看: 2075|回复: 29

[子程序] 心得 对VUMAT与UMAT相互转换中应注意的应变含义的探讨

[复制链接]
发表于 2013-4-5 14:28:58 | 显示全部楼层 |阅读模式 来自 北京
本帖最后由 winnerqin 于 2013-4-21 10:10 编辑

问题描述:最近在学习和编写子程序(V)UMAT的过程中,发现VUMATUMAT程序中应变增量的含意有不同。这个不同点对于需要在VUMATUMAT之间做转换的人来说容易搞错,虽然很基础,不清楚也容易搞死人,所以我在本帖写个心得,提醒朋友们注意后处理输出的应变、UMAT的应变和VUMAT的应变有如下差别


理论准备:根据弹性理论,应力应变关系如下:



一、Abaqus/Standard Abaqus/Explicit中,输出的数据中的应变分量均是工程应变






二、VUAMT中传入的应变增量strainInc的各个分量为:,而不是工程应变,所以在进行应力更新的时候应为:

EMU    = E/(2.0*(1.0+ENU))
TWOMU  = E/ (1.0+ENU)
BULK3  = E/(1.0-TWO*ENU)
LAM    = TWOMU*BULK3*ENU/E
TRACE = STRAININC(NP,1) + STRAININC(NP,2) + STRAININC(NP,3)
STRESSNEW(NP,1) = STRESSOLD(NP,1) + LAM*TRACE + TWOMU*STRAININC(NP,1)
STRESSNEW(NP,2) = STRESSOLD(NP,2) + LAM*TRACE + TWOMU*STRAININC(NP,2)
STRESSNEW(NP,3) = STRESSOLD(NP,3) + LAM*TRACE + TWOMU*STRAININC(NP,3)
STRESSNEW(NP,4) = STRESSOLD(NP,4)             + TWOMU*STRAININC(NP,4)
STRESSNEW(NP,5) = STRESSOLD(NP,5)             + TWOMU*STRAININC(NP,5)
STRESSNEW(NP,6) = STRESSOLD(NP,6)             + TWOMU*STRAININC(NP,6)



验证:我做了一个简单的弹性剪切的例子,输出了E.E23和VUAMT的23方向的应变,正好呈现两倍的关系:







三、UAMT中传入的应变增量DSTRAN的各个分量却为工程应变 ,与VUAMT不同,所以在进行应力更新的时候,应为:

EMU    = E/(2.0*(1.0+ENU))

TWOMU  = E/ (1.0+ENU)
BULK3  = E/(1.0-TWO*ENU)
LAM    = TWOMU*BULK3*ENU/E
TRACE = DSTRAN(1) + DSTRAN (2) + DSTRAN (3)
STRESS (1) = STRESS (1) + LAM*TRACE + TWOMU * DSTRAN(1)
STRESS (2) = STRESS (2) + LAM*TRACE + TWOMU * DSTRAN(2)
STRESS (3) = STRESS (3) + LAM*TRACE + TWOMU * DSTRAN(3)
STRESS (4) = STRESS (4)             + EMU * DSTRAN(4)
STRESS (5) = STRESS (5)             + EMU * DSTRAN(5)
STRESS (6) = STRESS (6)             + EMU * DSTRAN(6)

或写成如下提供的UMAT程序



验证如下:输出了E.E23和UAMT的23方向的应变,正好重合:






以上内容均是个人观点,恭候大家来讨论
如果该帖切实解决了你遇到问题,鼓励大家发感谢贴,作为对本帖的推介


另提供验证所用线弹性(V)UAMT本构








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2013-10-1 11:26:48 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
本帖最后由 amani 于 2015-2-25 21:09 编辑
lxzzwn1004 发表于 2013-5-20 09:14
那您感觉在模拟混凝土塑性以及开裂方面,这两个都可以吗?

这个问题我来说两句。在力学领域,理论推导一般是用张量,其非常优雅而简洁,但是矩阵数值计算只认可数字,因此在张量应变和工程应变(VOIGT标记)之间就产生了一个2倍的关系,这可以从应变能等价推导出来,工程应变是张量应变的2倍。因此,在UMAT里面,使用工程应变计算,剪切项的弹性常数是G而不是2G,这点已经达成共识。但是对VUMAT,因为显式中心差分算法与隐式牛顿法完全不同,位移、应变和应力的求解先后顺序不一样,先获得单元应力和应变,然后再求解节点位移、速度和加速度,所以ABAQUS-VUMAT约定了在剪切项使用了2G,直接使用了张量应变。



浙江大学 化工机械研究所 贝壳航母
回复 5 不支持 0

使用道具 举报

 楼主| 发表于 2013-4-9 17:37:24 | 显示全部楼层 来自 北京
本帖最后由 winnerqin 于 2013-4-9 17:41 编辑
吴聊SP 发表于 2013-4-9 17:34
UMAT 讲解中的一段:
STRESS (1) = STRESS (1) + LAM*TRACE + TWOMU * DSTRAN(1)
STRESS (2) = STRESS (2)  ...


我疏忽了,谢谢您指出错误,
现已更正~~
回复 1 不支持 0

使用道具 举报

发表于 2013-4-9 17:34:22 | 显示全部楼层 来自 北京
本帖最后由 吴聊SP 于 2013-4-9 17:35 编辑

UMAT 讲解中的一段:
STRESS (1) = STRESS (1) + LAM*TRACE + TWOMU * DSTRAN(1)
STRESS (2) = STRESS (2) + LAM*TRACE + TWOMU * DSTRAN(2)
STRESS (3) = STRESS (3) + LAM*TRACE + TWOMU * DSTRAN(3)
STRESS (4) = STRESS (1)                        + EMU * DSTRAN(4)
STRESS (5) = STRESS (1)                        + EMU * DSTRAN(5)
STRESS (6) = STRESS (1)                        + EMU * DSTRAN(6)


红色
部分是不是写错了啊,跟主应力有什么关系啊?

STRESS (4) = STRESS (4)                        + EMU * DSTRAN(4)
STRESS (5) = STRESS (5)                        + EMU * DSTRAN(5)
STRESS (6) = STRESS (6)                        + EMU * DSTRAN(6)



应该这么写吧?

回复 不支持

使用道具 举报

发表于 2013-4-17 11:57:52 | 显示全部楼层 来自 陕西西安
也就是把vumat中传入的应变乘以2就能带到常规本构中去了
回复 不支持

使用道具 举报

 楼主| 发表于 2013-4-17 12:31:05 | 显示全部楼层 来自 北京
subway007 发表于 2013-4-17 11:57
也就是把vumat中传入的应变乘以2就能带到常规本构中去了

剪应变有2倍的差别
回复 不支持

使用道具 举报

发表于 2013-5-18 19:42:38 | 显示全部楼层 来自 天津
winnerqin 发表于 2013-4-17 12:31
剪应变有2倍的差别

具体来说,umat和vumat 有什么差别吗?
回复 不支持

使用道具 举报

 楼主| 发表于 2013-5-20 08:31:27 | 显示全部楼层 来自 北京
lxzzwn1004 发表于 2013-5-18 19:42
具体来说,umat和vumat 有什么差别吗?

具体说不清,差别还是有一些的,比如umat在隐式求解器里面调用,需要雅克比矩阵,等等
回复 不支持

使用道具 举报

发表于 2013-5-20 09:14:38 | 显示全部楼层 来自 天津
winnerqin 发表于 2013-5-20 08:31
具体说不清,差别还是有一些的,比如umat在隐式求解器里面调用,需要雅克比矩阵,等等 ...

那您感觉在模拟混凝土塑性以及开裂方面,这两个都可以吗?
回复 不支持

使用道具 举报

 楼主| 发表于 2013-5-20 09:21:57 | 显示全部楼层 来自 北京
lxzzwn1004 发表于 2013-5-20 09:14
那您感觉在模拟混凝土塑性以及开裂方面,这两个都可以吗?

我没从接触过混凝土塑性,但我认为涉及本构关系以及损伤破坏的属性这两个都可以~~大胆的去尝试吧~~
回复 不支持

使用道具 举报

发表于 2013-5-20 09:58:26 | 显示全部楼层 来自 广东深圳
我理解,在处理剪切应力的时候,由于剪切应力互相等定律,既γ12=γ21,在UMAT中,直接写成了ε=γ12+γ21,这样在umat中,应变矩阵下半部分都是0,在VUMAT中是对称矩阵

点评

是的,可以像您说的这样理解~~  发表于 2013-5-20 10:13
回复 不支持

使用道具 举报

发表于 2013-5-20 17:00:31 | 显示全部楼层 来自 天津
winnerqin 发表于 2013-5-20 09:21
我没从接触过混凝土塑性,但我认为涉及本构关系以及损伤破坏的属性这两个都可以~~大胆的去尝试吧~~ ...

嗯  好的 谢谢你
回复 不支持

使用道具 举报

发表于 2013-9-27 23:29:50 | 显示全部楼层 来自 北京
我把传入的应变值乘以二带入到原来本构中了,输出mises应力值应该是剪应力吧却相差二倍,为什么
回复 不支持

使用道具 举报

发表于 2013-9-29 11:49:23 | 显示全部楼层 来自 湖北武汉
楼主说的子程序问题是针对实体单元开发吧,对于线性单元有没有这个问题呢
回复 不支持

使用道具 举报

发表于 2013-10-1 14:43:13 | 显示全部楼层 来自 天津
amani 发表于 2013-10-1 11:26
这个问题我来说两句。在力学领域,理论推导一般是用张量,其非常优雅而简洁,但是矩阵数值计算只认可数字 ...

h还是老师理解的更加深刻,希望以后有机会多向老师请教。
回复 不支持

使用道具 举报

发表于 2013-10-15 16:56:33 | 显示全部楼层 来自 湖北武汉
这个是实体单元的算法吧,不知楼主试过空间梁单元(B31,纤维单元)没?也这样做吗,还是这更新stress(1)就可以了
回复 不支持

使用道具 举报

发表于 2013-10-20 22:36:40 | 显示全部楼层 来自 德国
amani 发表于 2013-10-1 11:26
这个问题我来说两句。在力学领域,理论推导一般是用张量,其非常优雅而简洁,但是矩阵数值计算只认可数字 ...

不知都各位测试过abaqus自带的Hill48没有,用同样的系数,但是得到的结果却很不同!
具体说就是Abaqus自带的Hill48 standard和Abaqus自带的Hill48 explicit比较,用同样的参数,拿到一个拉伸试样去做模拟,但是会得到很不同的力和位移的曲线。
不知道有没有人可以给出相应的解决思路!
回复 不支持

使用道具 举报

发表于 2014-2-16 01:57:38 | 显示全部楼层 来自 英国
本构调用VUMAT子程序,odb文件中的剪切应变应该还是工程剪切应变吧
回复 不支持

使用道具 举报

发表于 2014-2-28 10:20:44 | 显示全部楼层 来自 湖北武汉
本帖最后由 yiqinuli 于 2014-2-28 10:27 编辑

你好,我用你的线弹性Vumat和Umat子程序算了一个单轴压缩的例子,但是发现Umat算出的应力应变是线弹性的,但是Vumat程序算出来的应力应变确实杂乱无章的,无规律可循,不知道为什么???

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2014-2-28 10:27:06 | 显示全部楼层 来自 湖北武汉
我的inp文件和子程序如下,请大神帮我看看。谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-24 23:10 , Processed in 0.049704 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表