[原创]Abaqus传热分析HETVAL和USDFLD子程序联合
HETVAL和USDFLD子程序联合
---- 公众号‘CAE仿真实验室’出品
1、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
2、模型 1mx1mx0.5m的方块,进行热应力耦合分析,选用C3D8T单元
3、Hetval 和USDFLD联合
USDFLD和HETVAL写在一个for文件中,HETVAL中通过State(1)来定义热源,而state(1)是通过USDFLD更新,实现数据传递
4、材料
设置材料为钢,给定力、热属性。 同时在general 选项中添加 User Defined Filed 和Depvar ,Depvar中的number of solution-dependent state variables 根据实际需求设置(本例中设为1))。在Thermal 选项下添加Heat Generation
5、边界和分析步
给定初始温度30 、通过hetval子程序添加热生成率 1e7W/m3,下端面全部约束。选择*Coupled Temperature-displacement 分析步,进行热力学分析
6、建立作业
此时已经定义了USDFlD和HETVAL子程序,但是USDFLD子程序还没有激活,需要通过* *INITIAL CONDITIONS, TYPE=FIELD来激活,导出iob inp文件 ,在STEP前面加上如下命令*INITIAL CONDITIONS, TYPE=FIELD, VARIABLE=1,如截图所示
最后通过cmd命令提交job
7、结果展示
初始温度30度
通过Hetval 加载热生成率1e7W/m3,计算完温度32.84
热应力
理论计算
根据比热容 即可得到
7800*0.5*452*=1e7*0.5*1
可见和计算结果完全吻合,说明了热源加载的正确性
8、总结
1、两个子程序写在一个for文件中,保证程序的正确性
2、两个子程序都要在material模块设置,并且USDFLD要通过initial condition关键字激活,否则不起作用
3、Initial condition 不支持CAE操作 所以通过cmd 提交job
4、USDFLD中按实际需求更改STATE(1)的值
欢迎小伙伴们扫码关注我的公众号‘CAE仿真实验室’哦,我们将定期给大家分享有限元仿真干货,谢谢~
查看更多评论 >