找回密码
 注册
查看: 3252|回复: 7

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

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

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

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

x
有A/B两个矩形耦合区域(A内嵌于B顶部),A/B区内均为空气,通过A区的左右两边进行循环流通。若要根据B区的温度条件给A区添加源项,在UDF里怎么实现?
  当TB>T0时,A区内施加动量和能量源项,其他情况,源项为零
困扰很久的问题,请高手指点,多谢!!!
 楼主| 发表于 2008-4-2 16:31:40 | 显示全部楼层

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

/********************************************************************/
/* UDF for specifying an x-momentum source term *********************/
/********************************************************************/
#include "udf.h"
#define C1 10.814
real source;
real x[ND_ND];
real NV_VEC(u);
real vol,vol_tot;
real tavg=0.;
Domain *domain;
int ID=3;
cell_t c;
thread *thread=Lookup_Thread(domain,ID);
  
DEFINE_SOURCE(xmom_source,c,t,ds,eqn)
{
C_CENTROID(x,c,t);

  if (0.<=x[0]<=1. && 0.<=x[1]<=2.)
    {
     vol=C_VOLUME(c,t);
     tavg += C_T(c,t)*vol;
     vol_tot += vol;
     tavg /= vol_tot;
     
       if (255.<tavg<260.)
       {
        thread_loop_c(t,domain)
         {
           begin_c_loop(c,t)
            {
            source=-C1*C_R(c,t)*NV_MAG(u)*C_U(c,t);
            ds[eqn]=-2.*C1*C_R(c,t)*NV_MAG(u);
            }
           end_c_loop(c,t)
          }
       }
     }
   else
    source=ds[eqn]=0.;
    return source;
}
编译未通过,提示如下,大家帮忙看看哪里出错,谢谢!
Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。
Error Object: ()
Deleted old libudf\ntx86\2d\libudf.dll
已复制         1 个文件。
已复制         1 个文件。
(system "copy C:\Fluent\fluent6.2.16\src\makefile_nt.udf libudf\ntx86\2d\makefile")已复制         1 个文件。
0
(chdir "libudf")()
(chdir "ntx86\2d")()
xmom_source.c
..\..\src\xmom_source.c(16) : error C2143: syntax error : missing ';{'; before ';*';
..\..\src\xmom_source.c(16) : error C2099: initializer is not a constant
Done.
"f:/"
Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。
Error Object: ()
发表于 2008-4-5 11:02:42 | 显示全部楼层

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

加一个
domain  = Get_Domain(1);
试试
 楼主| 发表于 2008-4-5 16:24:58 | 显示全部楼层

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

加上后果然可以了,多谢marsmobile救急,真的不胜感激!!!
 楼主| 发表于 2008-4-7 11:49:00 | 显示全部楼层

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

不好意思,还得来求助!上次UDF运行,但结果不对,检查发现,区域的范围(即x,y的范围)与实际不符(上次只是想检验一下UDF程序,参数是随便写的),改正过来,UDF反倒不运行了,可能还是耦合区域的缘故。请问这种情况该怎样解决?
 楼主| 发表于 2008-4-11 19:11:07 | 显示全部楼层

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

UDF的问题已解决,先用DEFINE_ADJUST定义得到B区的平均温度,然后用 if 判断,用DEFINE_SURRCE在A区定义源项。可现在又有新的问题,我原来用的边界条件
发表于 2008-4-12 09:15:03 | 显示全部楼层

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

  flyfish1234  

你好,我现在也在做关于FLUENT的UDF的加源项的问题,加上后是不收敛的.
  看到你在6楼说的还加进了ADJUST的宏后,我想请教一下加它的理由是什么.能为你的SOURCE提供那些有用的信息?
     希望回复指点,万分感谢!!!
 楼主| 发表于 2008-4-13 18:55:09 | 显示全部楼层

[求助]急!!!一定条件下的UDF源项怎么加在指定区域?

指点谈不上,我对UDF也不熟,交流一下!用ADJUST是因为只有当B区平均温度高于设定值的情况下才在A区内源项的添加,而A、B计算域是耦合的,不能连着用if...if...判断。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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