我的速度udf
我定义了一个速度入口,但老实显示是floating point error:invalid number。如果把数据类型改成int就可以了,但是没结果了又!求版主和各位高手帮忙!谢谢~~~~~~~~~ 请把问题描述清楚一点这个问题一般可以通过调整松弛因子解决
当然也可能是你的边界或网格划分有问题 /********************************/
/*inlet.c*/
/********************************/
#include "udf.h"
DEFINE_PROFILE(inlet_y_velocity,thread,position)
{
float r;
float z;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(r,f,thread);
z=r;
if(z<10) F_PROFILE(f,thread,position)=0.1z;
else F_PROFILE(f,thread,position)=3.8*pow(z/10,0.2);
}
end_f_loop(f,thread)
}
这是我的程序,一开始计算就出现如下错误:floating point error:invalid number但把float改成int就可以计算了,结果却不连续了!请问这是怎么回事?谢谢版主和各位高手! 主要是要计算速度进口!呈指数分布!谢谢hyacinth 请教hyacinth版主,我这个是怎么回事啊?我就是要定义V=3.8×(Z/10)*0.20(0.20为指数)其中z为高度,v为y方向速度!谢谢版主! F_PROFILE(f,thread,position)=0.1z;
这里的0.1z明显不对,另外参考http://forum.vibunion.com/forum/thread-39934-1-1.html /********************************/
/*inlet.c*/
/********************************/
#include "udf.h"
DEFINE_PROFILE(inlet_y_velocity,thread,position)
{
real r;
real z;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(r,f,thread);
z=r;
F_PROFILE(f,thread,position)=3.8*pow((z/10.),0.2);
}
end_f_loop(f,thread)
}
这是我又试的程序!好像涉及到double的都是同样的错误!我用sqrt也是同样的错误!
页:
[1]