你在这里
单轴压缩(塑性)试验的UMAT不收敛
大家好,
我是UMAT的初学者。
基于塑性模型和后向欧拉方法,我正在建立形状记忆合金的单轴压缩模型。
材料的单位是1*1*1。这似乎是个简单的问题。
无论如何,我仍然不熟悉UMAT和Abaqus。
问题是我只在y轴上应用负载,并指定附加文件中的边界条件
我认为它通过了塑性变形区,abaqus试图计算…
然而,这似乎还没有算完……现在,我不知道我的UMAT的哪一部分是错的…
您能就……提出一些建议吗?
1)适合单轴压缩试验的边界条件
2)增量时间是否必须等于后向欧拉法的间隔增量(循环次数)
3)可能我的UMAT有些部分是错误的
我在下面复制了我的UMAT的一些部分
谢谢你的建议:)
************************************************************************************
C设置应力阈值
C声明PROPS(3)压力开始重定向到SMVR变量
SMVR =道具(3)
C
C使用max的绝对值。
ABSTR = ABS (STR (2, 2))
C屈服条件,应变率STRR
φ= ABSTR-SMVR
STATEV(7) =φ
FMVR =道具(4)
TOTSTRN =道具(5)
STRR = (FMVR-SMVR) / TOTSTRN
写(7,666)statev (1), statev (2), statev (3), statev (4), statev (5)
+ statev (6), statev (7)
666格式(f12.8, f12.8, f12.8, f12.8, f12.8, f12.8, f12.8)
C比较PHI大于0或不大于0。如果它大于零,将开始重新定位。
C
10 if (phi . ge . 0) then
C Tresca标准的流动方向
C
流(1)= 1
流(2)= 1
k1 =3 ntens
流量(k1) = 0
最后做
C
C计算塑性乘数系数以补偿返回屈服面的应力
C
10,牛顿= 1吗
RSH = ABS (STR (1, 1) STR (2, 2) -SMVR + STRR * DP)
DP = DP + RSH / (3 * GSHR + STRR)
如果(dabs (rsh) .lt.toler)转到20
最后做
20日继续
C
C更新孪生菌株(ETW)
ETW (1) = ETW (1) + DP *流(1)
ETW (2) = ETW (2) + DP *流(2)
k1 =3 ntens
ETW (K1) = ETW (K1) + DP *流(K1)
最后做
C
C孪生应变部分的增量
C
DTWSTRAN (1) = DP *流(1)
DTWSTRAN (2) = DP *流(2)
k1 =3 ntens
DTWSTRAN (K1) = DP *流(K1)
最后做
C
C马克斯。45度孪晶界内应变(var1和Var2相互垂直)
C C =平方根部分
C MAXTWSTR =作用于孪晶界的最大剪切应变(45度)
C
C =√(DTWSTRAN (1) -DTWSTRAN (2)) / 2) * * 2 + DTWSTRAN (4) * * 2)
Maxptwin = (dtwstran (1)+ dtwstran (2))/2 + c
Minptwin = (dtwstran (1)+ dtwstran (2))/2 - c
Maxtwstr = (maxptwin-minptwin)/2
C ----------------------------------------------------------------------------------
C如果var.2以var.1的代价增长,则更新var.2的体积分数
C
如果(ABS (STR (1,1)) .GE.ABS (STR (2, 2)))
If (vflag.eq.0) then
V1 =一个
数= 0
V2 = 0
Vflag = 1
其他的
DV2 = MAXTWSTR / TOTSTRN
数=数+ 1
CV2 = DV2 *计数
V2 = CV2
V1 = V1-CV2
如果
转到20
C
C如果var.1以var.2的代价增长,则更新var.1的体积分数
C
Else if (abs (str (1,1)) .lt.abs (str (2,2))) then
If (vflag.eq.0) then
V2 =一个
数= 0
V1 = 0
Vflag = 1
其他的
DV1 = MAXTWSTR / TOTSTRN
数=数+ 1
CV1 = DV1 *计数
V2 = V2-CV1
V1 = CV1
如果
转到20
如果
C ------------------------------------------------------------------------------------
C更新应力,弹性应变
C
k1 =1, ndi
Eelas (k1) = Eelas (k1) +流量(k1)* dp
压力(K1) = (1-DP * (EG2 +拦)/ ABS(压力(K1))) *压力(K1)
最后做
nten, K1 = NDI + 1吗
Eelas (k1) = Eelas (k1) +流量(k1)* dp
压力(K1) = (1-DP * (EG2 +拦)/ ABS(压力(K1))) *压力(K1)
最后做
C
C计算雅可比矩阵。ABAQUS中与解收敛性有关的雅可比矩阵
C
EFFG = GSHR * SMVR / ABS (STR (1,1) STR (2, 2))
两个* EFFG EFFG2 =
EFFG3 = 3 / 2 * EFFG2
EFFLAME = (EBULK-EFFG2) / 3
EFFHRD = * STRR /快-EFFG3 (+ STRR快)
k1 =1, ndi
k2 =1, ndi
DDSDDE (K1, K2) = EFFLAM
最后做
DDSDDE (K1, K1) = EFFG2 + EFFLAM
最后做
nten, K1 = NDI + 1吗
DDSDDE (K1, K1) = EFFG
最后做
k1 =1 ntens
k2 =1 ntens
DDSDDE (K1, K2) = DDSDDE (K1, K2) + EFFHRD *流(K2) *流(K1)
最后做
最后做
C
C在最后一部分(在计算雅可比矩阵之前),我们必须告诉ABAQUS,如果Variant1或variant2不等于1
C继续进行重新定位过程中的计算
C
如果(MAXTWSTR.LT.TOTSTRN)
转到10
Else if (maxtwstr.ge.totstrn) then
NDI, K1 = 1吗
STATEV (K1) = STR (K1, K1)
STATEV (K1 + 9) = EELAS1 (K1, K1)
最后做
STATEV (4) = STR(1、2)
STATEV (5) = STR (2,3)
STATEV (6) = STR(1、3)
STATEV (13) = EELAS1(1、2)
STATEV (14) = EELAS1(2、3)
STATEV (15) = EELAS1(1、3)
STATEV (16) = ETW (1)
STATEV (17) = ETW (2)
STATEV (18) = ETW (3)
STATEV (19) = V1
STATEV (20) = V2
STATEV (21) = DP
返回
如果
如果
返回
结束
附件 | 大小 |
---|---|
![]() |
3.71 KB |
![订阅“UMAT单轴压缩(塑性)试验不收敛”评论](http://m.limpotrade.com/misc/feed.png)
最近的评论