|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位大虾:小弟模拟室外风场,用UDF进行指数型速度边界条件,用K-E模型,加载UDF后总出现错误,具体是在初始化的时候K、E两项出现-1.#IND错误,网上看原因可能是出现除零或者无穷大,自己认为UDF程序没有问题,但不知道是那的错误(错误在附图中),建筑模型为90X37X20m,计算域为280X140X80m,网格采用四面体为300万,模型中用到interface边界条件。UFD程序如下:
/* 定义大气边界层速度,湍流动能,湍流耗散率(alpha=0.22,10m高度风速2.2m/s,边界层高度80m) */
#include "udf.h"
#define UMEAN 2.2
#define Alpha 0.22
#define ZB 10
#define ZG 80
DEFINE_PROFILE(x_velocity,thread,position)
{
real z,u,x[ND_ND];
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
z=x[1];
if(z<=ZB)
u=UMEAN*pow(ZG/10,0.22)*pow(ZB/ZG,Alpha);
else if(z>ZB&&z<=ZG)
u=UMEAN*pow(ZG/10,0.22)*pow(z/ZG,Alpha);
else
u=UMEAN*pow(ZG/10,0.22)*pow(ZG/ZG,Alpha);
F_PROFILE(f,thread,position)=u;
}
end_f_loop(f,thread)
}
DEFINE_PROFILE(k_profile,thread,position)
{
real z,ii,u,x[ND_ND];
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
z=x[1];
if(z<=ZB)
{
u=UMEAN*pow(ZG/10,0.22)*pow(ZB/ZG,Alpha);
ii=0.1*pow(ZB/ZG,-0.05-Alpha);
}
else if(z>ZB&&z<=ZG)
{
u=UMEAN*pow(ZG/10,0.22)*pow(z/ZG,Alpha);
ii=0.1*pow(z/ZG,-0.05-Alpha);
}
else
{
u=UMEAN*pow(ZG/10,0.22)*pow(ZG/ZG,Alpha);
ii=0.1*pow(ZG/ZG,-0.05-Alpha);
}
F_PROFILE(f,thread,position)=0.3*pow(2.5*ii,2);
}
end_f_loop(f,thread)
}
DEFINE_PROFILE(dissip_profile,thread,position)
{
real z,ii,u,x[ND_ND],ux2,kay;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
z=x[1];
if(z<=ZB)
{
u=UMEAN*pow(ZG/10,0.22)*pow(ZB/ZG,Alpha);
ii=0.1*pow(ZB/ZG,-Alpha-0.05);
}
else if(z>ZB&&z<=ZG)
{
u=UMEAN*pow(ZG/10,0.22)*pow(z/ZG,Alpha);
ii=0.1*pow(z/ZG,-Alpha-0.05);
}
else
{
u=UMEAN*pow(ZG/10,0.22)*pow(ZG/ZG,Alpha);
ii=0.1*pow(ZG/ZG,-Alpha-0.05);
}
kay=0.3*pow(2.5*ii,2);
ux2=kay*0.3;
F_PROFILE(f,thread,position)=pow(ux2,1.5)/(0.04*z);
}
end_f_loop(f,thread)
}
谢谢各位 |
-
|