求助:速度进口udf,for循环求和时有问题,下面是我写的udf
问题我写到注释里面了,速度表达式比较复杂,我写了个含有相同参数的函数代替了。/*想写一个速度进口的UDF,其中速度是一个与y,z是横坐标和竖坐标有关的一个随机数,
且要求和多次,速度表达式类似于这样V=∑u(y,z),y,z是横坐标和竖坐标。*/
#include "udf.h"
#define PI 3.1415926
DEFINE_PROFILE(inlet_y_velocity, thread, index)
{
real x;
real z,y,v;
real sum=0;
real t = CURRENT_TIME;
int i;
face_t f;
begin_f_loop(f, thread)
{
C_CENTROID(x, f, thread);
y=x;
z=x;
v=sin(y+2*PI*rand01(&t))+sin(z+2*PI*rand01(&t)); /*v与y和z有关的一个随机数*/
for(i=0;i<=100;i++) /*经过试验发现问题就在for循环,没有for循环,结果是正常的,
将for语句写到loop循环外面不含质心坐标的情况下结果也是合理的,
如果将centroid宏和for循环都写到loop外面,是可以编译成功,但无法计算*/
{
sum=sum+v; /*对v求和100次*/
}
F_PROFILE(f, thread, index) = sum;
end_f_loop(f, thread)
}
}
real rand01(real *t)/*随机数的产生*/
{
real base,u,v,p,temp1,temp2,temp3;
base=256.0;
u=17.0;
v=139.0;
temp1=u*(*t)+v;
temp2=(int)(temp1/base);
temp3=temp1-temp2*base;
*t=temp3;
p=*t/base;
return p;
}
问题解决了,有做脉动风的吗?一起交流一下
你好,最近也在做脉动风相关的,有些问题想要请教下,有空方便交流一下吗? 楼主方便加好友吗
DWW 发表于 2021-2-14 10:14
你好,最近也在做脉动风相关的,有些问题想要请教下,有空方便交流一下吗?
加我qq2576254285 DWW 发表于 2021-2-14 10:14
你好,最近也在做脉动风相关的,有些问题想要请教下,有空方便交流一下吗?
加我qq2576254285
页:
[1]