找回密码
 注册
查看: 10036|回复: 24

关于UDF的问题,想求场协同角,请大家指点点

[复制链接]
发表于 2011-3-10 10:09:52 | 显示全部楼层 |阅读模式

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

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

x
我想用UDF求解场协同角(速度矢量与温度梯度的夹角),以下是我的程序,顺便交代一下,我是想用DEFINE_ADJUST和DEFINE_EXECUTE_AT_END两个宏进行比较一下,其中有一部分程序我是为了显示一些变量,然后自己检验一下计算结果合不合理。
DEFINE_EXECUTE_AT_END(cooperation_coff)
{
   real i=0,cos,coef;
   real T,T0,T1,T2,u,v,w,dT,dT_V,V;
   FILE *fp3=fopen(UDF_FILE_3, "w");
   int id=2;
   Domain *d=Get_Domain(1);
   Thread *t=Lookup_Thread(d,id);
   thread_loop_c(t,d)
     {
      cell_t c;
      if(THREAD_ID(t)==2)
         begin_c_loop(c,t)
          {
            T=C_T(c,t);
            T0=C_T_RG(c,t)[0];
            T1=C_T_RG(c,t)[1];
            T2=C_T_RG(c,t)[2];
            u=C_U(c,t);
            v=C_V(c,t);
            w=C_W(c,t);
            ND_SET(u,v,w,C_U(c,t),C_V(c,t),C_W(c,t));
            dT_V=T0*u+T1*v+T2*w;
            dT=sqrt(T0*T0+T1*T1+T2*T2);
            V=sqrt(u*u+v*v+w*w);
            cos=dT_V/(dT*V);
            coef=acos(cos);
            i++;
            fprintf(fp3,"%d %e %e %e %e %e %e %e %e %e %e %e\n",i,T0,T1,T2,u,v,w,dT,dT_V,V,cos,coef);
         }
       end_c_loop(c,t)
     }
  fclose(fp3);
}
DEFINE_ADJUST(cooperation_coff_1,d)
  {
    real i=0,cos,coef;
    real T,T0,T1,T2,u,v,w,dT,dT_V,V;
    FILE *fp4=fopen(UDF_FILE_4, "w");
    Thread *t;
    cell_t c;
    thread_loop_c(t,d)
       {
        if(FLUID_THREAD_P(t))
          begin_c_loop(c,t)
           {
             T=C_T(c,t);
             T0=C_T_G(c,t)[0];
             T1=C_T_G(c,t)[1];
             T2=C_T_G(c,t)[2];
             u=C_U(c,t);
             v=C_V(c,t);
             w=C_W(c,t);
             ND_SET(u,v,w,C_U(c,t),C_V(c,t),C_W(c,t));
             dT_V=T0*u+T1*v+T2*w;
             dT=sqrt(T0*T0+T1*T1+T2*T2);
             V=sqrt(u*u+v*v+w*w);
             cos=dT_V/(dT*V);
             coef=acos(cos);
             i++;
             fprintf(fp4,"%d %e %e %e %e %e %e %e %e %e %e %e\n",i,T0,T1,T2,T,u,v,w,dT,dT_V,V,cos);
             printf("%d %e %e %e %e %e %e %e %e %e %e %e\n",i,T0,T1,T2,u,v,w,dT,dT_V,V,cos,coef);
           }
         end_c_loop(c,t)
       }
  fclose(fp4);
}
发表于 2011-3-10 10:50:40 | 显示全部楼层
买噶,还有人搞场协同这个东东,真没有意义啊。
 楼主| 发表于 2011-3-10 10:59:09 | 显示全部楼层

回复 2# 飞翔鸟 的帖子

哥们不要这么说啊,中国的学术研究有多少不是从外国文献翻译过来的啊?好歹我还用个中国人搞出来的理论,虽然这个理论的确有点扯淡,对你来说没有意义,对我就不一样了,关系到我能不能毕业的问题!!!
发表于 2011-3-11 15:31:49 | 显示全部楼层
没必要用UDF计算场协同角,用Custom Filed Functions就可以定义。
一、在Fluent空白窗口中输入
solve/set> expert
use conservative form of energy equation? [yes]
use alternate formulation for wall temperatures? [no]
Save cell residuals for post-processing? [no] yes
Keep temporary solver memory from being freed? [no] yes
Allow selection of all applicable discretization schemes? [no]
二、先迭代计算一两步以保证内存中储存了温度梯度
三、Define->Custom Filed Functions->
在对话框中找到Filed Functions下面的Temperature和Reconstructions dT/dx以及Velocity
和Reconstruction dX-Velocity/dx等等量,组成温度梯度矢量和速度梯度矢量的点积。
剩下的后处理我不说了,你应该都懂的吧。
Good Luck!

点评

你好,请教下,我在Filed Functions没有找到Reconstructions dT/dx和Reconstruction dX-Velocity/dx,还有,协同角的公式中速度矢量与温度梯度的点积该怎么表示?这个问题困扰了我很久,劳烦阁下指点迷津,谢谢!  详情 回复 发表于 2017-10-25 16:33
发表于 2011-3-11 15:34:00 | 显示全部楼层
还有,你问的是场协同角,而不是(火积)耗散极值原理导出的场协同方程组的数值求解。你解决场协同方程源项和逆温度方程源项的处理了吗?解决了的话,麻烦通知一声哈,谢谢!
发表于 2011-4-5 21:49:40 | 显示全部楼层
如何进行点积计算?
发表于 2011-4-19 16:24:48 | 显示全部楼层
原帖由 sky321hit 于 2011-3-11 15:31 发表
没必要用UDF计算场协同角,用Custom Filed Functions就可以定义。
一、在Fluent空白窗口中输入
solve/set> expert
use conservative form of energy equation? [yes]
use alternate formulation for wall tempe ...

我试了下,但显示的好像有错误,肯定是哪设置错啦
发表于 2011-4-20 14:03:07 | 显示全部楼层

回复 4# sky321hit 的帖子

这个方法好,我喜欢。十分的感谢您!
发表于 2011-4-20 15:35:06 | 显示全部楼层
原帖由 zzu340 于 2011-4-20 14:03 发表
这个方法好,我喜欢。十分的感谢您!

你试了吗可以做吗
发表于 2011-4-21 21:33:14 | 显示全部楼层

回复 4# sky321hit 的帖子

你好,请教下,我在Filed Functions没有找到Reconstructions dT/dx和Reconstruction dX-Velocity/dx,还有,协同角的公式中速度矢量与温度梯度的点积该怎么表示?这个问题困扰了我很久,劳烦阁下指点迷津,谢谢!

点评

同求,我也没找到  详情 回复 发表于 2017-10-25 16:29
发表于 2011-4-22 10:17:12 | 显示全部楼层
此贴甚好,必须收藏。
发表于 2011-5-21 22:33:51 | 显示全部楼层

回复 7# chenhuan1115 的帖子

solve/set/expert回车
发表于 2012-5-23 16:35:31 | 显示全部楼层

回复 4# sky321hit 的帖子

您好,我也需要求取温度梯度和速度梯度场。按您的方法,收敛以后进行了如上设置。然后先迭代计算一两步以保证内存中储存了温度梯度
。在这里发现出现了问题。本来已经收敛的energy,残差曲线突然变大,不知道怎么回事。
发表于 2012-5-23 16:35:31 | 显示全部楼层

回复 4# sky321hit 的帖子

您好,我也需要求取温度梯度和速度梯度场。按您的方法,收敛以后进行了如上设置。然后先迭代计算一两步以保证内存中储存了温度梯度
。在这里发现出现了问题。本来已经收敛的energy,残差曲线突然变大,不知道怎么回事。
发表于 2012-10-18 18:20:26 | 显示全部楼层

我也为这个问题苦恼

我也为这个问题苦恼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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