你在这里
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如何在非等温情况下使用UMAT获得DSTRAN”的评论](http://m.limpotrade.com/misc/feed.png)
另一个问题是
另一个问题是,由于我没有为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负责
应变增量由Abaqus提供。参见通用子程序手册中的UMAT章节
------------------------------------------
-鲁尔大学
波鸿
德国
STRAN和DSTRAN是
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文件。
请参见.dat和.log文件。这些是abaqus引用的消息文件。