[原创]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单元
![clip_image004.jpg [原创]Abaqus传热分析HETVAL和USDFLD子程序联合的图1](http://img.jishulink.com/upload/201703/1489058895133_clip_image004.jpg)
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

![clip_image006.jpg [原创]Abaqus传热分析HETVAL和USDFLD子程序联合的图4](http://img.jishulink.com/upload/201703/1489058895741_clip_image006.jpg)
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,如截图所示
![clip_image008.jpg [原创]Abaqus传热分析HETVAL和USDFLD子程序联合的图5](http://img.jishulink.com/upload/201703/1489058896254_clip_image008.jpg)
最后通过cmd命令提交job
7、结果展示
初始温度30度
![clip_image010.jpg [原创]Abaqus传热分析HETVAL和USDFLD子程序联合的图6](http://img.jishulink.com/upload/201703/1489058896900_clip_image010.jpg)
通过Hetval 加载热生成率1e7W/m3,计算完温度32.84
![clip_image012.jpg [原创]Abaqus传热分析HETVAL和USDFLD子程序联合的图7](http://img.jishulink.com/upload/201703/1489058897521_clip_image012.jpg)
热应力
![clip_image014.jpg [原创]Abaqus传热分析HETVAL和USDFLD子程序联合的图8](http://img.jishulink.com/upload/201703/1489058898115_clip_image014.jpg)
理论计算
根据比热容
即可得到
7800*0.5*452*
=1e7*0.5*1
![clip_image020.png [原创]Abaqus传热分析HETVAL和USDFLD子程序联合的图11](http://img.jishulink.com/upload/201703/1489058898795_clip_image020.png)
可见和计算结果完全吻合,说明了热源加载的正确性
8、总结
1、两个子程序写在一个for文件中,保证程序的正确性
2、两个子程序都要在material模块设置,并且USDFLD要通过initial condition关键字激活,否则不起作用
3、Initial condition 不支持CAE操作 所以通过cmd 提交job
4、USDFLD中按实际需求更改STATE(1)的值
欢迎小伙伴们扫码关注我的公众号‘CAE仿真实验室’哦,我们将定期给大家分享有限元仿真干货,谢谢~

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP




















