[原創]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




















