|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
问题是螺旋管三维通道,螺旋管表面的温度需要根据表面热流的值进行修正,udf如下:
----------------------------------------------------------------------------------------------------------
#include "udf.h"
#include "math.h"
#include "mem.h"
#define WALL_ID 17
DEFINE_ADJUST(boiling_heatflux,d) /*每一次迭代计算后更改壁面温度值*/
{
Thread *tw,*t0; /*定义壁面Thread指针和与壁面相邻单元指针*/
face_t f; /*定义壁面面元Index*/
cell_t c0; /*定义与避免相邻单元Index*/
real divt=1.0; /*定义温度梯度*/
tw=Lookup_Thread(d, WALL_ID); /*赋值壁面指针,WALL_ID*/
t0=THREAD_T0(tw);
begin_f_loop(f,tw) /*对壁面上的面进行全部循环一次*/
{
c0=F_C0(f,tw);
divt=NV_MAG(C_T_G(c0,t0));
F_T(f,tw)=pow((divt*C_K_L(c0,t0)/44.0842),0.4)+78.8; /*根据一次迭代中计算得到的热流密度校正壁面温度*/
}
end_f_loop(f,tw)
}
/*使用该UDF前应注意以下问题*/
/*将WALL_ID号修改为实际壁面ID值*/
/*由于温度梯度C_T_G(c,t)这个函数只在计算能量方程时才有效,而在计算完成后会清除出内存,所以在计算过程中应设置*/
/*如下步骤以保存温度梯度这个量,反面意义就是计算所需内存增大。*/
/*issuing the text command solve/set/expert and then answering yes to the question Keep temporary solver memory from being freed*/
/*同时还需注意的还有关于单位的一致性*/
---------------------------------------------------------------------------------------------------------
但是一开始迭代就显示出错,大家看看是什么原因导致的。
[ 本帖最后由 hongch0363 于 2011-12-26 11:16 编辑 ] |
-
|