找回密码
 注册
查看: 7531|回复: 6

求教F_AREA(A,c,t)+NV_MAG(A)

[复制链接]
发表于 2010-11-1 22:34:23 | 显示全部楼层 |阅读模式

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

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

x
知道mass flux(kg/(s*m2))的情况下想用mass flux*Area/C_VOLUME的形式来表示一个zone的源项kg/(s*m3),可关于面积Area,我只找到了F_AREA(A,c,t)这个面积向量宏,如果用NV_MAG(A)表示其大小,不知道这个A表示的是哪个面的面积,我试了一下,运行时候出错,不知道如何正确表示出面积area
发表于 2010-11-2 08:59:22 | 显示全部楼层
原帖由 yc9316 于 2010-11-1 14:34 发表
知道mass flux(kg/(s*m2))的情况下想用mass flux*Area/C_VOLUME的形式来表示一个zone的源项kg/(s*m3),可关于面积Area,我只找到了F_AREA(A,c,t)这个面积向量宏,如果用NV_MAG(A)表示其大小,不知道这个A表示 ...

思路对的呀,估计错误出在其它地方,最好贴源码
 楼主| 发表于 2010-11-2 15:09:28 | 显示全部楼层

回复 2# gearboy 的帖子

源码:

#include "udf.h"
DEFINE_SOURCE(Sg_H2_bottom,c,t,dS,eqn)                     
{face_t f;
real Niarea,source,Ic,F,Mh2,A[ND_ND],area;
        Ic=0.47;
        F=96487;      
        Mh2=2;
        Niarea=108000;
        F_AREA(A,f,t);   
                area= NV_MAG(A);   
        source=C_UDMI(c,t,88)*Mh2*Niarea;
        source=source-Ic/2/F*Mh2*10*area/C_VOLUME(c,t);
        dS[eqn]=0;            
return source;               
}

这种mass flux的条件我总是不太会定义,在boundary里只有mass fraction的定义形式,而在source里又遇到m2变m3的问题,真是让我菜到底了。

[ 本帖最后由 yc9316 于 2010-11-2 15:14 编辑 ]
发表于 2010-11-3 09:03:00 | 显示全部楼层
是因为你的f还没具体值,你就使用F_AREA来取面积了。首先要告诉fluent 具体f是哪个。因为传入的参数是c和t,可能要根据这两个参数来获得f的值,比如取c的某个face作为f
 楼主| 发表于 2010-11-5 14:12:53 | 显示全部楼层

回复 4# gearboy 的帖子

哦,您的意思就是需要加上
thread_loop_f
{
   begin_f_loop
     {
     }
      end_f_loop
}
来确定f的范围是么?我在试试,谢谢。
发表于 2011-1-20 13:37:51 | 显示全部楼层
#include "udf.h"
DEFINE_SOURCE(Sg_H2_bottom,c,t,dS,eqn)                     
{face_t f;
real Niarea,source,Ic,F,Mh2,A[ND_ND],area;
        Ic=0.47;
        F=96487;      
        Mh2=2;
        Niarea=108000; ... [/quote]
source宏里面的变量c是指向cell的,t也是指向cell的,而下面的F_AREA(A,f,t); 宏调用的应该是face上的指针,所以这里有矛盾,你这个udf编译是不能成功的,可能功能上也是实现不了的,udf原理错误

[ 本帖最后由 invader 于 2011-1-20 05:54 编辑 ]
发表于 2012-4-3 18:42:04 | 显示全部楼层
(1) NV_DOT(x, u)
2D: (x[0]*u[0] + x[1]*u[1]);
3D: (x[0]*u[0] + x[1]*u[1] + x[2]*u[2]);
(2) NV_MAG(x)
2D: sqrt(x[0]*x[0] + x[1]*x[1]);
3D: sqrt(x[0]*x[0] + x[1]*x[1] + x[2]*x[2]);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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