24小时热门版块排行榜    

查看: 1863  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

溪柳柳自摇

新虫 (小有名气)

[求助] udf编写提示重定义,麻烦大神帮忙看一眼。 已有1人参与

udf编写出了问题,总是提示重定义,却又找不到错误,麻烦大神帮忙看一眼。首先定义了水的几个物理特性(随温度变化),然后实时读取管子的出口温度,结合已知的进口温度,确定定性温度,进而求得NU数及对流换热系数h。
/*************************************************************************
*  THIS UDF PROGRAM IS PROGRAMMED BY LIU Wenjie ON 11.28.2016              *      

*  IT IS USED FOR THE THERMAL BOUNDARY CONDITIONS OF HEAT EXCHANGER PIPE WALL'S

CONVECTIVE HEAT TRANSFER COEFFICIENT(h)

**************************************************************************/
#include "udf.h"
#define v_wa 0.061 /*铜管(换热管)入口流速*/
#define L 1.2  /*10铜管长度*/
#define W 0.006 /*铜管入口的宽度*/
#define H 0.008  /*铜管入口高度*/
#define T11 307.5  /*冷水入口处的水温*/
real NV_VEC(A);
real avg_temp;
real sum_T_A=0.0;
real sum_A=0.0;
Thread *thread_out;/*用于宏在编译过程中的延伸*/
real ruo_wa,cp_wa,lamda_wa,a_wa,mu_wa,nu_wa,alpha_wa;
face_t f;
cell_t cell;
Domain *domain;
/**********************************************************************************

****
           the UDF for the 密度ruo_wa
***********************************************************************************

****/
DEFINE_PROPERTY(ruo_wa,cell,thread)
{
real temp=C_T(cell,thread);
if(temp>30&&temp<40)
   ruo_wa=(0.1*(992.2-995.7)*(temp-30))+995.7;
else
   ru0_wa=992.2;
return ruo_wa;
}

/**********************************************************************************

****
             the UDF for 导热系数lamda_wa
***********************************************************************************

****/
DEFINE_PROPERTY(lamda_wa,cell,thread)
{
real temp=C_T(cell,thread);
if(temp>30&&temp<40)
  lamda_wa=(0.1*(0.635-0.618)*(temp-30))+0.618;
else
  lamda_wa=0.635;  
return lamda_wa;
}
/**********************************************************************************

****
             the UDF for 热扩散率a_wa
***********************************************************************************

****/
DEFINE_PROPERTY(a_wa,cell,thread)
{
real temp=C_T(cell,thread);
  if(temp>30&&temp<40)
  a_wa=(0.1*(0.000000153-0.000000149)*(temp-30))+0.000000149;
else
  a_wa=0.000000153;
return a_wa;
}
/**********************************************************************************

****
             the UDF for 动力粘度mu_wa
***********************************************************************************

****/
DEFINE_PROPERTY(mu_wa,cell,thread)
{
real temp=C_T(cell,thread);
if(temp>30&&temp<40)
  mu_wa=(0.1*(0.0006533-0.0008015)*(temp-30))+0.0008015;
else
  mu_wa=0.0006533;
return mu_wa;
}
/**********************************************************************************

****
             the UDF for 运动粘度nu_wa
***********************************************************************************

****/
DEFINE_PROPERTY(nu_wa,cell,thread)
{
real temp=C_T(cell,thread);
  if(temp>30&&temp<40)
  nu_wa=(0.1*(0.000000659-0.000000805)*(temp-30))+0.000000805;
else
  nu_wa=0.0006533;
return nu_wa;
}
/**********************************************************************************

****
             the UDF for 体积膨胀系数alpha_wa
***********************************************************************************

****/
DEFINE_PROFERTY(alpha_wa,cell,thread)
{
  real temp=C_T(cell,thread);
  if(temp>30&&temp<40)
  alpha_wa=(0.1*(0.000386-0.000305)*(temp-30))+0.000305;
else
  alpha_wa=0.000386;
return alpha_wa;
}

/*************************************************************************
   the UDF for average temperature ofoutlet求出口平均温度
*************************************************************************/
DEFINE_ADJUST(adjust,d)/*每次迭代都计算一次*/
{
domain=Get_Domain(11);/*对domain进行赋值,需改*/
thread_out=Lookup_Thread(domain,20);/*对thread进行赋值,需改*/
begin_f_loop(f,thread_out)
{
F_AREA(A,f,thread_out);
sum_A+=NV_MAG(A);/*32求得出口的累加面积*/
sum_T_A+=NV_MAG(A)*F_T(f,thread_out);/*出口累加面积与对应温度的乘积*/
}
end_f_loop(f,thread_out)
avg_temp=sum_T_A/sum_A;/*求得出口的平均温度*/
}
/*************************************************************************
   the UDF for convective heat transfer coefficient of inner HEX wall
*************************************************************************/

DEFINE_PROFILE(lwj_h,thread,index)
{
  real temp;
  real prandtl_wa,Re_wa,NU_wa,interequ_wa;
  real U,S,de;
  real t;
  real h_wa;/*h*/
  t=RP_Get_Real("flow-time";
  temp=0.5*(T11+avg_temp);/*定性温度,按照常热流壁面去计算*/
  U=2*(W+H);/*铜管周长*/
  S=W*H;/*铜管断面积*/
  de=4*S/U;/*铜管当量直径*/
  prandtl_wa=mu_wa*cp_wa/lamda_wa;/*铜管内侧的普朗特数*/
  Re_wa=ruo_wa*v_wa*de/mu_wa;/*铜管内侧的雷诺数*/
  interequ_wa=Re_wa*prandtl_wa*de/L;/*铜管内侧的中间数*/
  if (Re_wa<2300.0)
  {
         NU_wa=3.66;
   if(interequ_wa>10)
   NU_wa=1.86*pow(interequ_wa,1.0/3.0);/*铜管内侧的努谢尔特数,吕原丽*/
   else NU_wa=3.66+0.0668*interequ_wa/(1+0.04*pow(interequ_wa,2.0/3.0));/*铜管内侧

的NU数,吕*/
   }
  else if(Re_wa<10000.0)
  NU_wa=0.16*pow(Re_wa,2.0/3.0)*pow(prandtl_wa,1.0/3.0)*pow(1+de/L,2.0/3.0);/*铜管

内侧NU*/
  else NU_wa=0.023*pow(Re_wa,0.8)*pow(prandtl_wa,0.4);/*铜管内侧的努谢尔特数,;吕原丽

*/
  h_wa=NU_wa*lamda_wa/de;
  begin_f_loop(f,thread)
  {if(temp>C_T(cell,thread))
   h_wa=0;
   F_PROFILE(f,thread,index)=h_wa;
  }
  end_f_loop(f,thread)
}
谢谢了。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

malasong9471

木虫 (正式写手)

引用回帖:
6楼: Originally posted by 溪柳柳自摇 at 2016-12-04 09:44:47
返回值,然后在主程序里使用,这样写对不对?
...

自己比较一下,你是要物性随温度变化还是返回一个值???
Fluent UDF 第三章 编写UDF_百度文库
http://wenku.baidu.com/view/261fe7235901020207409cdb.html
3.10.1 返回值的函数(Function that Return a Value)
3.10.4修改FLUENT变量的函数(Functions that Modify a FLUENT Variable)
9楼2016-12-04 14:03:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

匿名

本帖仅楼主可见
2楼2016-12-04 00:27:10
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

malasong9471

木虫 (正式写手)

return 是干什么的? if  …… else

发自小木虫Android客户端
3楼2016-12-04 01:01:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

348683569

铁杆木虫 (著名写手)

奔跑
4楼2016-12-04 01:04:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见