找回密码
 注册
查看: 1967|回复: 1

udf高手请进!

[复制链接]
发表于 2006-6-29 15:37:04 | 显示全部楼层 |阅读模式

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

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

x
[这个贴子最后由xiongyx在 2006/07/01 09:49pm 第 1 次编辑]

我刚刚学习fluent的udf,然后做了一个计算一个domain上的一个小区域的平均温度,可是compiled之后hook到fluent上,迭代的时候没有反应。程序如下:
# include "udf.h"
DEFINE_EXECUTE_AT_END(ave_temp2)
{
Domain *d;
Thread *t;
cell_t c;
real x[ND_ND];
int i=0;
int j;
real a=10.0;
real volum[6]={0.0,0.0,0.0,0.0,0.0,0.0};
real tempvolum[6]={0.0,0.0,0.0,0.0,0.0,0.0};
real zcoordinate[6]={1030,2030,3030,4030,5030,6030};
d=Get_Domain(1);
thread_loop_c(t,d)
{
begin_c_loop(c,t)
C_CENTROID(x,c,t);
for(;i<=5;i++)
{
if ((x[2]>=zcoordinate-a)&(x[2]>=zcoordinate+a))/*判断z坐标的位置*/
{
if ((x[0]>=0.0) & (x[0]<2.5))/*判断x坐标的位置*/
{
if ((x[1]>0) & (x[1]<(-40*x[0]+100)))/*判断y坐标的位置*/
{
volum+=C_VOLUME(c,t);/*计算总体积*/
tempvolum+=C_T(c,t)*C_VOLUME(c,t);/*计算温度的体积加权和乘积*/
}
}
else if ((x[0]>-2.5) & (x[0]<0))/*判断x坐标的位置*/
{
if (x[1]>0 & (x[1]<(40*x[0]+100)))/*判断y坐标的位置*/
{
volum+=C_VOLUME(c,t);/*计算总体积*/
tempvolum+=C_T(c,t)*C_VOLUME(c,t);/*计算温度的体积加权和乘积*/
}
}
}
}
end_c_loop(c,t)
}
for(j=0;j<6;j++)//输出结果
{printf("坐标z= %d 温度的体积均值是:%f\n",zcoordinate[j],tempvolum/volum);
}
}
请大家帮忙分析,看看式怎么回事,我急需解决问题!谢谢
有需要fluent6.2的UDF的朋友,我给你们发:)
发表于 2006-7-4 22:16:54 | 显示全部楼层

udf高手请进!

printf("坐标z= %d 温度的体积均值是:%f\n",zcoordinate[j],tempvolum/volum);
将Printf改为Message
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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