guohf 发表于 2012-8-22 12:04

请帮忙看下关于传热系数的UDF对不对,谢了

我的问题是要写一个传热系数是壁温及壁面附近流场温度和速度函数的UDF:
   hc=(ts+ta)^0.3*U^0.7   
其中hc是传热系数,ts为壁面温度,ta为壁面附近流体温度,U为壁面附近流体速度

这个问题已困扰很久了,也在论坛里发贴问过,自己写了个UDF,请这方面的高手帮忙,看下我

写的这个UDF有什么问题?该怎样修改?不胜感谢。

/**********************************************************************/
/* UDF that implements a heat transfer coefficient hc*/
/* hc=(ts+ta)^0.3*U^0.7   其中ts为壁面温度,ta为壁面附近流体温度,U为壁面附近流体速度 */
/**********************************************************************/

#include "udf.h"
DEFINE_PROFILE(heat_transfer_coef,t,i)
{
cell_t c;
face_t f;
Thread *t;
real hc;

if (BOUNDARY_FACE_THREAD_P(t)) /*Most face values will be available*/

real wt,ct,cv;
/*wt is wall temperature, ct and cv are cell temperature and velocity of the adjacent

wall,respectively*/

   wt=F_T(f,t);
   ct=C_T(c,t);
   cv=C_U(c,t);
   hc=power((wt+ct), 0.3)*power(cv, 0.7);

return hc;
}

guohf 发表于 2012-8-24 11:18

经高手指点查了一下,幂函数power应改成pow了; 另外,“Thread *t;”语句是多余的,因DEFINE_PROFILE(heat_transfer_coef,t,i)中已给定了指针,所以删除“Thread *t;” 。最后修改如下:

/**********************************************************************/
/* UDF that implements a heat transfer coefficient hc*/
/* hc=(wt+ct)^0.3*cv^0.7   其中wt为壁面温度,ct为壁面附近流体温度,cv为壁面附近流体速度 */
/**********************************************************************/
#include "udf.h"
DEFINE_PROFILE(heat_transfer_coef,t,i)
{
    cell_t c;
    face_t f;
    real hc;
    if(BOUNDARY_FACE_THREAD_P(t)) /*Most face values will be available*/
    real wt, ct, cv;
    wt = F_T(f,t);
    ct = C_T(c,t);
    cv = C_U(c,t);
    hc=pow((wt+ct), 0.3)*pow(cv, 0.7);
return hc;
}

但编译还是通不过去,有两处错误,提示如下:
if (BOUNDARY_FACE_THREAD_P(t))   有语法错误 (parse error);
wt=F_T(f,t);未定义变量wt,但我明明已在前面定义了( real wt,ct,cv; )
请高手再次指点,谢谢

gaoliang518598 发表于 2012-10-25 21:48

帮你顶顶!

深表无赖 发表于 2012-11-14 20:48

个楼主顶顶,技术性的贴别沉了
页: [1]
查看完整版本: 请帮忙看下关于传热系数的UDF对不对,谢了