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

浏览:33838 回答:4
我的问题是要写一个传热系数是壁温及壁面附近流场温度和速度函数的UDF:
hc=(wt+ct)^0.3*cv^0.7
其中hc是传热系数,wt为壁面温度,ct为壁面附近流体温度,cv为壁面附近流体速度
这个问题已困扰很久了,自己写了个UDF,请这方面的高手帮忙,看下我写的这个UDF有什么问题?该怎样修改?不胜感谢。
/**********************************************************************/
/* 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; )
请高手指点,谢谢

邀请回答 我来回答

全部回答

(4)
默认 最新
guohf

谢谢指点,但按你说的,把“real wt, ct, cv; ”提前后,除提示“if (BOUNDARY_FACE_THREAD_P(t)) 有语法错误”外, 也提示“return hc;”有语法错误。
if (BOUNDARY_FACE_THREAD_P(t)) 在UDF帮助文件里有这个宏和语句,既然提示有语法错误,是不是这个语句就不能用在这个UDF里来判断是否是壁面?要通过其它方式来判断?该怎样做?
另外,“return ...;” 不是是不能用在“DEFINE_PROFILE”宏语句里?
请帮忙,指点一下,谢谢
2012年8月25日
评论 点赞
guohf

谢谢帮忙,我按你改的读进去,错误提示和我之前的一样。
F_T(f,t) 是面温度,在UDF帮助文件里有这个宏。
if (BOUNDARY_FACE_THREAD_P(t)) 有语法错误 ,但在UDF帮助文件里有这个宏和语句,既然提示有语法错误,是不是这个语句就不能用在这个UDF里来判断是否是壁面?要通过其它方式来判断?
另外,仔细想想,正如你所说的这是个瞬态问题,因为传热系数是温度和速度的函数,而温度和速度是随时间变化的。那是不是要添加“RP_Get_Real("flow-time");”宏语句,具体该怎样写啊?
请再次帮忙,不胜感谢。
2012年8月25日
评论 点赞
ANSYSUser1999
real wt, ct, cv; 把这句, 放到 if (BOUNDARY_FACE_THREAD_P(t)) 之前, 试试.
2012年8月24日
评论 点赞
lihui54312
你这个是瞬态问题么?里面有时间变量t,这是一个方面。好久没用UDF。
我先尝试下。
DEFINE_PROFILE(heat_transfer_coef,t,i)
{
cell_t c;
face_t f;
real hc;
if (BOUNDARY_FACE_THREAD_P(t))
{
real wt, ct, cv;
wt = F_T(f,t); 这个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;
}
2012年8月24日
评论 点赞

没解决?试试专家一对一服务

换一批
    App下载
    技术邻APP
    工程师必备
    • 项目客服
    • 培训客服
    • 平台客服

    TOP