找回密码
 注册
查看: 2008|回复: 0

大侠高手请进,UDF里面怎么调用自己编的一个函数(万分感谢)

[复制链接]
发表于 2011-12-16 14:26:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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,可以加载,但计算时浮点数错误。
请问大侠们怎么调用自己编的一个函数,或者有没有直接有生成高斯随机数的函数,不用编?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表