声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1779|回复: 6

[UDF专题] 我的速度udf

[复制链接]
发表于 2007-4-28 14:09 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我定义了一个速度入口,但老实显示是floating point error:invalid number。如果把数据类型改成int就可以了,但是没结果了又!求版主和各位高手帮忙!谢谢~~~~~~~~~
回复
分享到:

使用道具 举报

发表于 2007-4-28 15:32 | 显示全部楼层
请把问题描述清楚一点

这个问题一般可以通过调整松弛因子解决

当然也可能是你的边界或网格划分有问题
 楼主| 发表于 2007-4-28 18:30 | 显示全部楼层
/********************************/
/*inlet.c*/
/********************************/
#include "udf.h"
DEFINE_PROFILE(inlet_y_velocity,thread,position)
{
  float r[3];
  float z;
  face_t f;
  begin_f_loop(f,thread)
   {
   F_CENTROID(r,f,thread);
   z=r[2];
   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就可以计算了,结果却不连续了!请问这是怎么回事?谢谢版主和各位高手!
 楼主| 发表于 2007-4-28 18:31 | 显示全部楼层
主要是要计算速度进口!呈指数分布!谢谢hyacinth
 楼主| 发表于 2007-5-1 11:20 | 显示全部楼层
请教hyacinth版主,我这个是怎么回事啊?我就是要定义V=3.8×(Z/10)*0.20(0.20为指数)其中z为高度,v为y方向速度!谢谢版主!
发表于 2007-5-1 19:19 | 显示全部楼层
F_PROFILE(f,thread,position)=0.1z;


这里的0.1z明显不对,另外参考http://forum.vibunion.com/forum/thread-39934-1-1.html
 楼主| 发表于 2007-5-3 17:11 | 显示全部楼层
/********************************/
/*inlet.c*/
/********************************/
#include "udf.h"
DEFINE_PROFILE(inlet_y_velocity,thread,position)
{
  real r[ND_ND];
  real z;
  face_t f;
  begin_f_loop(f,thread)
   {
   F_CENTROID(r,f,thread);
   z=r[ND_ND-1];
   F_PROFILE(f,thread,position)=3.8*pow((z/10.),0.2);
   }
end_f_loop(f,thread)
}
这是我又试的程序!好像涉及到double的都是同样的错误!我用sqrt也是同样的错误!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 07:20 , Processed in 0.072310 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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