找回密码
 注册
查看: 4737|回复: 13

请教udf加热源,附程序

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

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

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

x
在一个x坐标从0.8到0.9的窄条内加热源,热源与当地的密度成正比
#include "udf.h"
#define CON1.0
DEFINE_SOURCE(cell_heat_source, cell, thread, dS, eqn)
{
     real xc[ND_ND], source
     begin_c_loop(cell, thread) {
           C_CENTROID(xc, cell, thread);
           if (xc[0] > 0.8 && xc[0] < 0.9)
   {
           /* source term */
            source = CON*C_R(cell,thread);
            dS[eqn] = 0;
   }
           else
           source = dS[eqn] = 0.;
}end_c_loop(cell, thread);   
}
         
    return source;
}
报错如下:
cpp -IC:\Fluent.Inc\fluent6.1/src -IC:\Fluent.Inc\fluent6.1/cortex/src -IC:\Fluent.Inc\fluent6.1/client/src -IC:\Fluent.Inc\fluent6.1/multiport/src -I. -DUDFCONFIG_H="<udfconfig.h>" D:\fluentcfd\laser1029\myudflib\src\heat.c
Error: D:\fluentcfd\laser1029\myudflib\src\heat.c: line 9: parse error.
Error: D:\fluentcfd\laser1029\myudflib\src\heat.c: line 9: cell_loop_last: undeclared variable
Error: Set_Thread_Variables: wta(real)
Error Object: ((constant . 1) (profile "" ""))
Interrupting...
Done.
请问是什么原因,多谢!
发表于 2005-10-29 19:01:31 | 显示全部楼层

请教udf加热源,附程序

&#35;define CON 1.0
DEFINE_SOURCE(cell_heat_source, cell, thread, dS, eqn)
{
    real xc[ND_ND], source;
    begin_c_loop(cell, thread) {
          C_CENTROID(xc, cell, thread);
          if (xc[0] > 0.8 && xc[0] < 0.9)  {
          /* source term */
           source = CON*C_R(cell,thread);
           dS[eqn] = 0;
  }      else          source = dS[eqn] = 0.;
}end_c_loop(cell, thread);   
         
   return source;
}
发表于 2005-10-29 19:02:57 | 显示全部楼层

请教udf加热源,附程序

用vc++编译器就是好
 楼主| 发表于 2005-10-29 20:38:27 | 显示全部楼层

请教udf加热源,附程序

高手高手!非常感谢,是多了一个括号,不过我去掉之后,还是报错如下,而且我已经把udf.h拷到了同一个目录下了。
cpp -IC:\Fluent.Inc\fluent6.1/src -IC:\Fluent.Inc\fluent6.1/cortex/src -IC:\Fluent.Inc\fluent6.1/client/src -IC:\Fluent.Inc\fluent6.1/multiport/src -I. -DUDFCONFIG_H="<udfconfig.h>" D:\fluentcfd\laser1029\myudflib\src\heat.c
Error: Set_Thread_Variables: wta(real)
Error Object: ((constant . 1) (profile "" ""))
你的用Virsual c++ 开发FLUENT的程序我已经下载了,留着慢慢研究:)
发表于 2005-10-30 17:34:38 | 显示全部楼层

请教udf加热源,附程序


在我的编译器能通过,在fluent的自带编译环境下就应该可以通过的。
cpp ,我不知是哪个编译器的命令。
我的编译器是vc6.0 编译命令cl.exe
 楼主| 发表于 2005-10-30 18:11:07 | 显示全部楼层

请教udf加热源,附程序

下面引用由hp2703880262005/10/30 05:34pm 发表的内容:
在我的编译器能通过,在fluent的自带编译环境下就应该可以通过的。
cpp ,我不知是哪个编译器的命令。
我的编译器是vc6.0 编译命令cl.exe

现在可以了,原来不知道怎么搞的,谢谢
 楼主| 发表于 2005-10-30 19:54:36 | 显示全部楼层

请教udf加热源,附程序

下面引用由hp2703880262005/10/30 05:34pm 发表的内容:
在我的编译器能通过,在fluent的自带编译环境下就应该可以通过的。
cpp ,我不知是哪个编译器的命令。
我的编译器是vc6.0 编译命令cl.exe
还向请教一下,用interpreted udf, define->boundary condition->set zone (fluid-1)
->source term->enery udf cell_heat_source后,可以计算了,计算速度很慢,大概2秒钟迭代一步。可是查看结果发现温度场居然没有改变,仍然整个流场都是是300k.难道这样加热源不行吗?谢谢!
发表于 2005-10-30 20:42:42 | 显示全部楼层

请教udf加热源,附程序

你得问题解决了吗?我也是在做自然对流换热问题,我给固体加了热源后,它得温度也是变化得特别小,需要长时间得迭代,并且温度是不断增加得,只是增加得幅度也太小了.
 楼主| 发表于 2005-10-30 20:56:23 | 显示全部楼层

请教udf加热源,附程序

好象是解决了,我也是个新手,c语言和udf都是刚刚接触。
去掉begin_c_loop后温度就出现了明显的变化,而且计算速度快多了,看来DEFINE_SOURCE中是没必要用begin_c_loop,而且不能用begin_c_loop的。
改为下面再interpreted就可以了
&#35;define CON 1.0
DEFINE_SOURCE(cell_heat_source, cell, thread, dS, eqn)
{
   real xc[ND_ND], source;
         C_CENTROID(xc, cell, thread);
         if (xc[0] > 0.8 && xc[0] < 0.9)  {
         /* source term */
          source = CON*C_R(cell,thread);
          dS[eqn] = 0;
}      else          source = dS[eqn] = 0.;
      
  return source;
}
  


发表于 2005-10-30 21:06:46 | 显示全部楼层

请教udf加热源,附程序

hilbert 你好!你得热源是加在什么上的啊?是固体上的吗?能给你交流吗?我的QQ:38837099 谢谢!
发表于 2005-11-10 18:28:13 | 显示全部楼层

请教udf加热源,附程序

请问,你的热源表达式是给定的,还是根据工况计算出来的?
下面引用由hilbert2005/10/29 04:32pm 发表的内容:
在一个x坐标从0.8到0.9的窄条内加热源,热源与当地的密度成正比
&#35;include "udf.h"
&#35;define CON1.0
DEFINE_SOURCE(cell_heat_source, cell, thread, dS, eqn)
{
    real xc[ND_ND], source
    begin_c_loop(cell, thread) {
        
发表于 2005-12-22 21:04:48 | 显示全部楼层

请教udf加热源,附程序

的确,DEFINE_SOURCE宏本身就带有循环,不用再用begin_c_loop啦。
发表于 2006-9-3 10:54:11 | 显示全部楼层

请教udf加热源,附程序

我的是空气加热问题,请问你的热源是加在流体区吗?我的邮箱是jingyuan-2004@163.com,交流以下好吗?
发表于 2006-9-20 18:39:49 | 显示全部楼层

请教udf加热源,附程序

我也遇到过这种情况,parse错误。经过检查,发现是书写问题导致的,在c语言中,等号前边后边不能有空格,大小写不同,说明中的*号两边也要相等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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