找回密码
 注册
查看: 1789|回复: 4

[求助]请前辈们帮忙给小人看一下这个udf吧,万分感谢

[复制链接]
发表于 2005-10-23 12:07:28 | 显示全部楼层 |阅读模式

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

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

x
#include "udf.h"
DEFINE_PROFILE(inlet_x_velocity, thread, position)
{
real x[ND_ND];/* this will hold the position vector */
real y;
face_t f;
real n,u_ave;
n=7;                    /*根据雷诺数修改*/
u_ave=3.2154;           /*根据入口平均速度修改*/
begin_f_loop(f, thread)   
   {
     F_CENTROID(x,f,thread);
     y = x[1];
     F_PROFILE(f, thread, position) =u_ave*(n+1)*(2*n+1)/(2*n*n)*pow((0.025-fabs(y))/0.025,1/n);
   }
end_f_loop(f, thread)
}

这是我的程序,就是简单的二维入口的速度型问题,为什么老是编译出错呢?我是新手,还望前辈们不吝赐教
编译错误是
cpp -IF:\FLUENT.INC\fluent6.0/src -IF:\FLUENT.INC\fluent6.0/cortex/src -IF:\FLUENT.INC\fluent6.0/client/src -IF:\FLUENT.INC\fluent6.0/multiport/src -I. -DUDFCONFIG_H="<udfconfig.h>" velocity0.5_profile.cError: velocity0.5_profile.c: line 20: parse error.
发表于 2005-10-24 10:38:05 | 显示全部楼层

[求助]请前辈们帮忙给小人看一下这个udf吧,万分感谢

首先声名,我是菜鸟。
关于这个udf有这么几处不妥:
第一这两行:
n=7;                    /*根据雷诺数修改*/
u_ave=3.2154;           /*根据入口平均速度修改*/
变量没有定义类型。假定你的本意是定义n为整型,u)ave为实型即
int n=7;                    /*根据雷诺数修改*/
real u_ave=3.2154;           /*根据入口平均速度修改*/
则由于n的类型在
F_PROFILE(f, thread, position) =u_ave*(n+1)*(2*n+1)/(2*n*n)*pow((0.025-fabs(y))/0.025,1/n);
这一句中将得出一个非你本意的结果,因为1/n将得到0,至于u_ave*(n+1)*(2*n+1)/(2*n*n)会得到什么,我还不知道,请注意c的语法。
这个问题我也出过,但是具体什么原因忘了。
good luck!
 楼主| 发表于 2005-10-25 10:07:39 | 显示全部楼层

[求助]请前辈们帮忙给小人看一下这个udf吧,万分感谢

十分感谢楼上的回复,我现在能够读进去了,但是在开始叠代的时候又出现了问题,运行错误是divergence detected in AMG solver: x-momentum
这是为什么啊
发表于 2005-10-25 10:42:01 | 显示全部楼层

[求助]请前辈们帮忙给小人看一下这个udf吧,万分感谢

这个问题比较麻烦,应该就是x方向动量方程发散吧。
出错的原因可能是边界设置不合理,这个只能请你检查一下你的边界条件,包括初值和udf了。
其次的话,调整动量方程的离散格式及收敛因子。如果(稳态)一开始就采用高阶或某些格式恐怕会带来收敛的问题。收敛因子可以调一下。具体我也说不来,请参看其他帖子,如果有了解的大牛,请支个招。
good luck!
发表于 2005-10-25 10:45:18 | 显示全部楼层

[求助]请前辈们帮忙给小人看一下这个udf吧,万分感谢

还有一点忘了,检查一下网格,网格不好,也会导致发散。呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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