|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
是这样子的,我想定义一个BODY-FORCE,里面有一个我定义的高斯随机数,我写的程序如下:#include <iostream.h>
#include <stdlib.h>
#include <math.h>
double AverageRandom(double min, double max)
{
int minInteger = (int)(min*10000);
int maxInteger = (int)(max*10000);
int randInteger = rand()*rand();
int diffInteger = maxInteger - minInteger;
int resultInteger = randInteger % diffInteger + minInteger;
return resultInteger/10000.0;
}
double GaussianNoise(double variance,double mean)
{
double Temp;
double u1,u2;
u1=AverageRandom(0,1);
u2=AverageRandom(0,1);
Temp=sqrt(-2*(log(u1)))*sin(2*3.1415926*(u2));
Temp=variance*Temp+mean;
return Temp;
}
#include "udf.h"
#define s 142.78144
DEFINE_DPM_BODY_FORCE(particle_body_force, p, i)
{
real bforce;
if(i==0) bforce=GaussianNoise(1,0)*s;
else if(i==1) bforce=GaussianNoise(1,0)*s;
else if(i==2) bforce=GaussianNoise(1,0)*s;
return bforce;
}
前面是我定义的生成高斯随机数的函数,后面市DEFINE BODY_FORCE的宏。
用解释型加载UDF,说我某一行有未声明的变量。
编译型加载UDF,可以加载,但计算时浮点数错误。
请问大侠们怎么调用自己编的一个函数,或者有没有直接有生成高斯随机数的函数,不用编? |
|