找回密码
 注册
查看: 1423|回复: 5

UDF问题请教

[复制链接]
发表于 2003-10-6 19:16:45 | 显示全部楼层 |阅读模式

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

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

x
在下的UDF程序中有如下一段程序:
DEFINE_SOURCE(ymom_source, c, t, dS, eqn)
{
  real ransu;
  real midus;
  real mass, source;
  real temp,atm;
  real x[ND_ND];

  face_t f;
  Thread *tf;
  int n;
  
  atm=101325.0;
  midus=1610;
  ransu=0.6887*pow(C_P(c,t)/atm,0.62)*con/1000;
  
  temp=3000;
  c_face_loop(c, t, n)         /* loops over all faces on a cell */
  {
  f = C_FACE(c,t,n);
  tf = C_FACE_THREAD(c,t,n);
  if(temp>F_T(f,tf))
     temp=F_T(f,tf);
  }
  if(temp>700)
  {
  source=-2035.6*midus*ransu*midus*ransu/C_R(c,t);
        dS[eqn] =2035.6*midus*ransu;
  }
  else
  {      source=0;
          dS[eqn]=0;
  }
  return  source;
}
编译通过后,在CASE文件中设置好后,初始化时,出现如下错误:
Error:
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
2. Save case/data under new name.
3. Exit program and restart to continue.
4. Report error to your distributor.
Error Object: ()
测试后发现问题出在下面这段代码中:
c_face_loop(c, t, n)         /* loops over all faces on a cell */
  {
  f = C_FACE(c,t,n);
  tf = C_FACE_THREAD(c,t,n);
  if(temp>F_T(f,tf))
     temp=F_T(f,tf);
  }
左思右想,不知道是何原因,望高手能给预指点,先谢谢了。
发表于 2003-10-22 11:16:11 | 显示全部楼层

UDF问题请教

好象F_T(f,tf)表示面上的量,是否应该成C__T(f,tf)
发表于 2003-10-22 16:38:57 | 显示全部楼层

UDF问题请教

大佬,在什么地方有,UDF手册下载呀!
发表于 2003-10-26 16:18:43 | 显示全部楼层

UDF问题请教

怎么测试的阿?我的也是初始化之后,出现这个问题,不过我的udf和你的不一样
 楼主| 发表于 2003-10-26 19:04:37 | 显示全部楼层

UDF问题请教

呵呵,我是把F_T改为F_CENTROID,然后将其结果输出,测试出f,tf确实是指向我想要的ID的,就是说几何函数可以用,但温度、压力等函数不能用,也许是FLUENT本的问题,也许是我使用的D版的缘故。:)
发表于 2010-2-2 15:11:30 | 显示全部楼层
很高啊 很厉害 很好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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