本文摘要(由AI生成):
本文主要介绍了Abaqus传热分析中Hetval子程序的使用,包括其函数体、与USDFLD子程序的联合使用、材料设置、边界和分析步的设置以及作业的建立。通过使用Hetval子程序,可以定义材料内部的生热量,实现热应力耦合分析。最后,文章展示了计算结果,并与理论计算进行了比较,证明了热源加载的正确性。
Abaqus传热分析中,Hetval子程序常用于定义内部热源,该子程序可以定义材料内部的生热量(如相变、高分子结晶生热),并且能够调用state variable 状态变量,可以与USDFLD子程序联合使用。其函数体如下:
SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,STATEV,FLUX,
1 PREDEF,DPRED)
INCLUDE 'ABA_PARAM.INC'
CHARACTER*80 CMNAME
DIMENSION TEMP(2),STATEV(*),PREDEF(*),TIME(2),FLUX(2),
1 DPRED(*)
User coding to define FLUX and update statev !此处定义你的Flux() 更新状态变量
RETURN
END
USDFLD和HETVAL写在一个for文件中,HETVAL中通过State(1)来定义热源,而state(1)是通过USDFLD更新,实现数据传递
设置材料为钢,给定力、热属性。 同时在general 选项中添加 User Defined Filed 和Depvar ,Depvar中的number of solution-dependent state variables 根据实际需求设置(本例中设为1))。在Thermal 选项下添加Heat Generation
给定初始温度30 、通过hetval子程序添加热生成率 1e7W/m3,下端面全部约束。选择*Coupled Temperature-displacement 分析步,进行热力学分析
此时已经定义了USDFlD和HETVAL子程序,但是USDFLD子程序还没有激活,需要通过* *INITIAL CONDITIONS, TYPE=FIELD来激活,导出iob inp文件 ,在STEP前面加上如下命令*INITIAL CONDITIONS, TYPE=FIELD, VARIABLE=1,如截图所示
最后通过cmd命令提交job
初始温度30度
通过Hetval 加载热生成率1e7W/m3,计算完温度32.84
热应力
理论计算
根据比热容 即可得到
7800*0.5*452*=1e7*0.5*1
可见和计算结果完全吻合,说明了热源加载的正确性
1、两个子程序写在一个for文件中,保证程序的正确性
2、两个子程序都要在material模块设置,并且USDFLD要通过initial condition关键 字激活,否则不起作用
3、*Initial condition 不支持CAE操作 所以通过cmd 提交job
4、USDFLD中按实际需求更改STATE(1)的值,可以通过GETVARM函数获取计算结果,如应力、应变、温度。