用户登录

你在这里

abaqus如何在非等温情况下使用UMAT获得DSTRAN

嗨,,

我最近遇到了一个关于依赖温度的UMAT情况的大问题。

我使用UMAT进行非等温弹性,如下所示。这里没有显示DDSDDE计算部分。

你可以看到我在代码的开头输出了ETHERM(K1),EELAS(K1),STRAN(K1),DSTRAN(K1)。

该UMAT还将ether和EELAS保存为状态变量数组。

作业设置是无加载和使用静态的一般步骤。但本质上它是一个自由膨胀,热膨胀系数为6e-6,温度从0到80,这只反映在UMAT中。Abaqus完成工作后,这些结果都是正确的,SDV(1-6)=EELAS=0, SDV(7-9)=ETHERM=4.8e-4。DSTRAN也是4.8e-4。

我的问题是abaqus如何知道这里的DSTRAN,因为我没有应用任何机械加载,也没有告诉abaqus这是一个热膨胀分析。我认为DSTRAN应该是由特定的剥离或热膨胀。


有人能帮我一下吗?我已经为此挣扎了一段时间。

子程序umat(应力,statev, ddsdde, sse, spd, scd, rpl,
1 ddsddt, drplde, drpldt, stran, dstran, time, dtime, temp, dtemp,
2 predef, dpred, cmname, ndi, nshr, ntens, nstatv, props, nprops,
3坐标,drot, pnewdt, celent, dfgrd0, dfgrd1, noel, npt, layer,
4 kspt, kstep, kinc)
C
包括“ABA_PARAM。公司的
C
字符* 8 CMNAME
C
维度应力(ntens), statev (nstatv), ddsdde (ntens, ntens),
1 ddsddt (ntens), drplde (ntens), stran (ntens), dstran (ntens),
2 predef (1), dpred (1), props (nprops),坐标(3),drot (3,3),
3 dfgrd0 (3,3), dfgrd1 (3,3)

维eelas (6), ether (6), dtherm (6), deldse (6,6)
C
参数(0 = 0。D0, = 1。D0, 2 = 2。D0, 3 = 3。D0, 6 = 6. D0)
C ----------------------------------------------------------------
C umat为线性变化的各向同性热弹性
C模-不能用于平面应力
C ----------------------------------------------------------------
C道具(1)- e (t0)
C道具(2)- nu (t0)
C道具(3)- t0
C道具(4)- e (t1)
C道具(5)- nu (t1)
C道具(6)- t1
C道具(7)-阿尔法
C props (8) - t_initial
C增量开始时的弹性特性
C

写(*)“进入UMAT”

k1 =1 ntens
写(*)ETHERM (K1) EELAS (K1) STRAN (K1) DSTRAN (K1)
最后做

C
C计算热膨胀
C

NDI, K1 = 1吗
ETHERM (K1) =道具(7)* (TEMP-PROPS (8))
DTHERM (K1) =道具(7)* DTEMP

最后做
nten, K1 = NDI + 1吗
ETHERM (K1) = 0
DTHERM (K1) = 0
最后做
C
C计算应力、弹性应变和热应变
C
k1 =1 ntens
k2 =1 ntens
压力(K2) =压力(K2) + DDSDDE (K1, K2) * (DSTRAN (K1) -DTHERM (K1)) + DELDSE (K1, K2) * (STRAN (K1) -ETHERM (K1))
最后做
ETHERM (K1) = ETHERM (K1) + DTHERM (K1)
EELAS (K1) = STRAN (K1) + DSTRAN (K1) -ETHERM (K1)
最后做

C
C存储弹性和热应变的状态变量数组
C
k1 =1 ntens
STATEV (K1) = EELAS (K1)
STATEV (K1 + nten) = ETHERM (K1)
最后做
返回
结束

谢谢你的帮助。

电子邮件:chen1164@purdue.edu

免费的标签:

另一个问题是,由于我没有为abaqus指定热膨胀,abaqus如何计算应变?

弗兰克·里希特的照片

获取文件
http://万博manbetx平台m.limpotrade.com/files/Writingpdf的用户子例程
它可能显示为
http://万博manbetx平台m.limpotrade.com/files/Writing%20User%20Subroutines%20with%20ABAQUS.pdf

------------------------------------------
-鲁尔大学
波鸿
德国

您好,感谢您的回复。我手头有那份文件。我只是不知道abaqus与UMAT如何得到应变更新。因为我没有指定任何加载和热膨胀性质在abaqus在所有。

弗兰克·里希特的照片

应变增量由Abaqus提供。参见通用子程序手册中的UMAT章节

------------------------------------------
-鲁尔大学
波鸿
德国

STRAN和DSTRAN已经是弹性应变,这只意味着ABAQUS从总应变中扣除热应变,然后将其作为输入提供给UMAT。底线是你不能再从UMAT内部的STARN+DSTRAN中扣除热应变来计算弹性应变。我希望这能有所帮助。

另一方面,我有一个问题,你也许能回答。是否有可能在UMAT或任何其他子程序中更新应变而不是应力?我知道我可以使用UEXPAN更新应变,但是这个子程序并没有为我的计算目的服务。

谢谢,

你好,Mandar,谢谢你的回复,

但我的问题在于abaqus一开始是如何知道DTRAN的。因为我没有在这里应用任何加载。

基本上,DSTRAN或STRAN是从位移场计算出来的,并传递给UMAT,由UMAT更新STRESS。

嗨,陈,

是的,就连我自己也有同样的问题。我不太确定。

我现在有点明白了。但只针对这种情况……

你能解释一下吗?理解起来会很有趣。

谢谢,

弗兰克·里希特的照片

用户手册

15.1.1用户子程序概述

用户子例程必须在不覆盖Abaqus其他部分的情况下执行预期的功能。特别地,您应该仅将本章中标识的变量重新定义为“待定义的变量”。重新定义“传递信息的变量”将产生不可预测的效果。

------------------------------------------
-鲁尔大学
波鸿
德国

你好,弗兰克,

谢谢你的回复。这是另一个问题。

我刚刚完成了超弹性材料的UMAT编码,并进行了测试
单轴和简单剪切边界条件下的一个单元。它的工作原理
对一个元素来说很好。但是,如果我试着运行一个模拟超过
如果只有一个元素,ABAQUS就会退出并报错。该消息表示错误
如果文件存在,可以在消息文件中找到。msg
文件不存在。你知道会出什么问题吗
我应该在哪里寻找我遇到的那种错误?

提前谢谢你。

请参见.dat和.log文件。这些是abaqus引用的消息文件。

订阅“abaqus如何在非等温情况下使用UMAT获得DSTRAN”的评论

最近的评论

更多的评论

辛迪加

订阅辛迪加