找回密码
 注册
查看: 3251|回复: 3

关于udf的pow函数问题

[复制链接]
发表于 2006-11-21 11:00:04 | 显示全部楼层 |阅读模式

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

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

x
在使用udf设定速度入口的时候遇到了一个奇怪的问题
#include "udf.h"
DEFINE_PROFILE(x_velocity,thread,index)
{
double x[ND_ND];
double z;
double y;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
z=x[2];
y=x[1];
F_PROFILE(f,thread,index)=0.1*3.2*3.2/2.2/2.2*(1-pow(y/0.01, 2.2))*(1-pow(z/0.01, 2.2));
}
end_f_loop(f,thread)
}
编译没有问题
迭代的时候就出现
Error: Floating point error: invalid number
Error Object: ()
如果把pow函数里面的2.2改成2就可以迭代
没有问题
请问一下这是什么原因
发表于 2006-11-21 14:59:58 | 显示全部楼层

关于udf的pow函数问题

不关POW的事情,仔细检查你的程序的非语法性逻辑错误
Error: Floating point error: invalid number
Error Object: ()
方程发散了,值太大太小溢出
 楼主| 发表于 2006-11-22 21:43:21 | 显示全部楼层

关于udf的pow函数问题

速度设置
z=0.01~0.01
y=-.001~0.01
方程
U=0.1*2.1157*(1-(y/0.01)^2.2)*(1-(z/0.01)^2.2)
不会发散才对
发表于 2006-11-23 15:21:37 | 显示全部楼层

关于udf的pow函数问题

难说,理论值和计算不一样,计算收敛因子等等都会有影响,不然怎么会有发散这一说
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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