|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位高手,朋友:
下面是一个边界条件的udf,有些错误,帮忙改下错.
题意:进口风速呈不规则变化,是一个二维分布的图形,通过调用样条函数来获得风速分布函数.最终通过udf来定义这种不规则的风速分布.
函数主题:
#include "udf.h"
#include "math.h"
float Q(double xy);
DEFINE_PROFILE(inlet_x_velocity,thread,index)
{
real x[ND_ND]; 对于二维的图形,不知对不对?
face_t f;
real y,z;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
y=x[1];
z=x[0];
double u[7][7]={ 这个是测量的风速点值
{0.65,1.4,1.2,1.4,1.45,1.35,1.2},
{0.7,1.435,1.55,1.5,1.52,1.55,1.1},
{0.7,1.15,1.3,1.4,1.4,1.53,1.3},
{1.45,2.3,1.2,1.1875,1.4,1.8,1.3},
{5,5,3.2,1.7,2.6,7.25,6},
{8,10,7.7,4,5.5,10,8},
{10,13,13,12,10,10,9},
};
int i;
int j; 求风速
for (i=0;i<=6;i++)
for (j=0;j<=6;j++)
{
real sum=0;
x=x/15-i;
y=y/15-j;
sum=sum+u[j]*Q(y)*Q(z);
}
F_PROFILE(f,thread,index)=sum; 求风速
}
end_f_loop(f,thread)
}
调用样条函数: 不知道能不能作为外部函数调用?
float Q(double xy)
{
real q1;
xy=fabs(xy);
if(xy>=1.5)
q1=0;
else if(xy<0.5)
q1=-xy*xy+0.75;
else
q1=0.5*xy*xy-1.5*xy+9/8;
return q1;
}
小弟刚学udf,不太懂,望各位帮帮忙.
感激,多谢! |
|