找回密码
 注册
查看: 6589|回复: 3

[讨论]Get_Domain( ) 到底起什么作用?

[复制链接]
发表于 2008-5-30 01:05:56 | 显示全部楼层 |阅读模式

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

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

x
[这个贴子最后由wteagle在 2008/05/30 01:08am 第 2 次编辑]

发现一个很奇怪的问题,Get_Domain( )到底起什么作用啊?在程序的位置有影响吗?
下面的UDF程序(前面部分),在编译过程中怎么也通不过,说是编译器不认识cell_t,Thread和real的变量类型,出现一大堆莫名其妙的错误!
#include "udf.h"
#define PI M_PI
#define TINY 1.0e-37
extern int offset,num;
extern float *diamAry;
extern  real rhoPartikel,molDiam ;
static real dmaxarg1,dmaxarg2;
#define RMAX(a,b) (dmaxarg1=(a),dmaxarg2=(b),(dmaxarg1) > (dmaxarg2) ?\
        (dmaxarg1) : (dmaxarg2))
DEFINE_ON_DEMAND(Auswertung)
{
    cell_t c;
    Thread *t;
    face_t f;
    Domain *d;
    d=Get_Domain(1);
    cell_t  c0=-1;
    Thread *t0=NULL;

    real lossesImp,vPx,vPy,vPz,d_p,masse,konz,NV_VEC(A);
    real lossesDiff,friction,B1,B2,B3,kB,diffKoeff,press,T0,nu,p_operating,C;
    real freieWegl,NV_VEC(geschwPartikel),rhoGas,lossesDiffSum,lossesImpSum;
    int  dimension,k,equation,i;
    equation=EQ_UDS+offset;
    dimension=ND_ND;  
(……)
我研究了很久,最后只是把 d=Get_Domain(1);这一行放到所有类型声明后面,变成了:
(……)
DEFINE_ON_DEMAND(Auswertung)
{
    cell_t c;
    Thread *t;
    face_t f;
    Domain *d;
    cell_t  c0=-1;
    Thread *t0=NULL;

    real lossesImp,vPx,vPy,vPz,d_p,masse,konz,NV_VEC(A);
    real lossesDiff,friction,B1,B2,B3,kB,diffKoeff,press,T0,nu,p_operating,C;
    real freieWegl,NV_VEC(geschwPartikel),rhoGas,lossesDiffSum,lossesImpSum;
    int  dimension,k,equation,i;
  d=Get_Domain(1);
    equation=EQ_UDS+offset;
    dimension=ND_ND;  
(……)
问题竟然就解决了,编译没问题!真是太奇怪了,难道d=Get_Domain(1)不能紧跟在Domain *d;后面,必须在所有定义完之后吗?否则FLUENT竟然不认识后面的定义?Get_Domain到底起什么作用啊,这样调整位置之后作用有区别吗?甚至删掉这一句功能会有什么区别呢?
发表于 2008-5-30 01:26:28 | 显示全部楼层

[讨论]Get_Domain( ) 到底起什么作用?

[这个贴子最后由kevinxiao在 2008/05/30 01:27am 第 1 次编辑]

这就是我在你上一篇帖子里面说的windows下的格式限制(变量必须先全部定义),linux下没有这种限制。
btw,这和get_domain macro无关
 楼主| 发表于 2008-5-30 16:15:36 | 显示全部楼层

[讨论]Get_Domain( ) 到底起什么作用?

谢谢楼上的回答。不过请问一下,那个VC command window在哪里?我怎么找不到?
另外,真的必须从VC command window启动吗?我没有注意这一点直接点它的图标启动的,然后正常的用compiled...进行编译和加载,似乎也编译成功也加载上了。是不是这样会有什么错误?
发表于 2011-5-8 16:31:33 | 显示全部楼层
Thread *tf1=Lookup_Thread(domain,3);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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