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

[子程序] VUMAT 如何 应变更新?

[复制链接]
发表于 2016-1-13 23:59:30 | 显示全部楼层 |阅读模式 来自 辽宁沈阳
悬赏20仿真币未解决
本帖最后由 huangzhiye 于 2016-1-20 22:50 编辑

请问,在 VUMAT子程序中,如何进行应变更新?
(关于 Elasto-viscoplastic problem,各向同性硬化,J2 流动准则 的问题)
用户手册的 VUMAT 例子中只有 应力更新公式,而无应变更新。

VUMAT 中应力更新算法如下:

C
                sigdif = vmises - yieldOld
        facyld = zero
                if ( sigdif .gt. zero ) facyld = one
                deqps = facyld * sigdif / ( thremu + hard )  
C
C Update the stress  
C
        yieldNew = yieldOld + hard * deqps
                factor = yieldNew / ( yieldNew + thremu * deqps )   
        stressNew(k,1) = s11 * factor + smean
                stressNew(k,2) = s22 * factor + smean
                stressNew(k,3) = s33 * factor + smean
        stressNew(k,4) = s12 * factor
                if ( nshr .gt. 1 ) then
                    stressNew(k,5) = s13 * factor
                    stressNew(k,6) = s23 * factor
               end if

但是 UMAT 中应力的更新算法与 VUMAT 完全不同。
C     CALCULATE STRESS AND UPDATE STRAINS
C   
          DO 150 K1=1,NDI
             STRESS(K1)=FLOW(K1)*SYIELD+SHYDRO
             EPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL/TWO
             EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL/TWO
150      CONTINUE
          DO 160 K1=NDI+1,NTENS
             STRESS(K1)=FLOW(K1)*SYIELD
             EPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL
             EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL
160      CONTINUE
          EQPLAS=EQPLAS+DEQPL
          SPD=DEQPL*(SYIEL0+SYIELD)/TWO
          RPL = PROPS(3)*SPD/DTIME


是否可以用 UMAT 中算法来进行 VUMAT 的应变(或应力)的更新 ?



 楼主| 发表于 2016-1-20 22:22:57 | 显示全部楼层 来自 辽宁沈阳
Simdroid开发平台
本帖最后由 huangzhiye 于 2016-1-20 22:51 编辑

哪位知道方法,告知参考资料也可以,谢谢!
回复

使用道具 举报

发表于 2019-7-11 09:20:45 | 显示全部楼层 来自 湖北武汉
我也同问
回复

使用道具 举报

发表于 2019-7-15 20:32:18 | 显示全部楼层 来自 广东深圳
无论是UMAT还是VUMAT都是以应变驱动的,当前增量步的应变等于上一增量步的就变加上当前增量步应变增量得到,就是一个简单的加法。
回复

使用道具 举报

发表于 2019-11-27 09:37:34 | 显示全部楼层 来自 山东青岛
IsaacHuo 发表于 2019-7-15 20:32
无论是UMAT还是VUMAT都是以应变驱动的,当前增量步的应变等于上一增量步的就变加上当前增量步应变增量得到 ...

请问一下出现损伤D时,应力怎么更新,不是简单的乘以(1-D)吧?
回复

使用道具 举报

发表于 2019-11-27 15:27:00 | 显示全部楼层 来自 上海
应变更新是不能指定的,每次调用都增加应变,增加量由时间增量控制。你写程序其实算的是应力增量为主
回复

使用道具 举报

发表于 2020-3-18 13:12:46 | 显示全部楼层 来自 广东佛山
243458141 发表于 2019-11-27 09:37
请问一下出现损伤D时,应力怎么更新,不是简单的乘以(1-D)吧?

出现损伤后,应力怎么更新是本构的定义问题,如果你是简单地定义成(1-D)也是可以的
回复

使用道具 举报

发表于 2020-4-20 08:49:29 | 显示全部楼层 来自 山东
IsaacHuo 发表于 2020-3-18 13:12
出现损伤后,应力怎么更新是本构的定义问题,如果你是简单地定义成(1-D)也是可以的 ...

请问里面的facyld跟区分弹塑性状态的塑性加载比例系数R是一回事吗,这套应力更新的算法好像是米塞斯屈服准则、J2流动理论的案例都见过
回复

使用道具 举报

发表于 2022-7-6 14:39:45 | 显示全部楼层 来自 亚太地区
学习一下
回复

使用道具 举报

发表于 2022-7-6 16:31:02 | 显示全部楼层 来自 亚太地区
学习一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 16:13 , Processed in 0.040737 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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