带内热源的UMATHT子程序入门小例子

        最近用到了相变生热这部分的内容,技术邻查了没找到对应的教程。自己探索了一段时间,下面将在abaqus帮助文档里的例子基础上。结合传热学的理论,介绍在UMATHT实现内热源生热,并与用abaqus的HETVAL子程序的结果做对比,验证正确性。(注:这个例子很简单,大家可以根据需要进一步开发)

1.导热微分方程

        为了更好得理解UMATHT需要定义变量,先介绍一下一维导热微分方程(三维可类似推广)。

UM2.png基于能量守恒定律,以上图一维导热微体积元为例,流入体积元内的热量+内生热量等于内能的变化+流出体积元的热量,如下式:

UM3.png

将能量的具体表达式代入:

UM4.png

其中,q是热流密度(W/m2),A是体积元一个截面的面积(m2),Q是生热量(W/m3),detaU是内能变化(J),方程左右两边的单位是对应的1J=1W/s。(单位用m,s对应的)

下面用傅里叶定律和内能变化的公式表示热流密度和内能变化:

UM5.png

其中K是热导率(W/m/K),代入(2)式:

UM6.png

消掉相同的项、移项,两边同时除以Adxdt,得到:

UM7.png

        从这个偏微分方程中可以看出,我们给出热导率、内热源项、比热容、密度这些参数。结合初始条件、边界条件就可以求解温度场。

2.UMATHT简要介绍 

带内热源的UMATHT子程序入门小例子的图7

        UMATHT主要是用来定义材料的热本构,适用于带内热源的传热过程。与UMAT必须定义雅可比矩阵和更新后应力类似,下图中列出了UMATHT在使用过程中必须定义内能随温度的变化等变量:

UM8.png

        包括U内能,(这里需要注意一下,U的单位是单位质量的内能与前面方程中推导的过程中不同,后面加入内热源项需要考虑)。其他变量在后面的例子中再介绍。

2.带内热源的小例子

        建一个1m*1m*1m的立方体,给定密度7900(kg/m3),热导率50(W/m/K),比热容500(J/kg/K)。hetval子程序使用的时候要在Thermal中选择Heat Generation,要不然子程序不起作用。

UM9.png

初始温度0度,时间步长5s总共50s。HETVAL子程序里面FLUX的单位是(J/m3/s),根据detaU=c*m*dt只有内热源产热的时候升温速率每秒升高10度:

UM10.png

在HETVAL中给定FLUX(1):

UM11.png

提交计算,结果符合理论:

UM12.png        下面介绍UMATHT子程序中实现相同的效果,在UMATHT子程序中的设置如下:

UM13.png

主要是内生热量的转换,在hetval中是J/m3/s,而在UMATHT中U的单位是J/kg。需要除一下密度转换成J/kg/s,通过dU更新时要在乘dtime转化成J/kg。其他的内容可以根据给出的公式及abaqus帮助中的例子理解。

结果如下,与HETVAL是一致的:

UM14.png

        当然如果你的生热模型中相变潜热等内生热量的单位是J/kg,不是温度和时间的函数而只是温度的函数,直接在更新du的时候加上潜热就可以了,不用乘dtime。这个可以参考abaqus的umatht中的另一个例子。

附件中给出了所用模型cae,inp和hetval、umatht文件。

该付费内容为:abaqus2020模型、HETVAL和UAMTHT子程序

包含1个附件 128人购买
(25条)
默认 最新
请问子程序里r是如何定义的
评论 点赞
请问这个公式是怎么来的,自己下面那个每秒升温10度的公式,这部分没看懂
评论 点赞

查看更多评论 >

点赞 41 评论 32 收藏 35
关注