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

请gallongallon指点,udf中如何实现多孔介质的孔隙率是位置的代码

[复制链接]
发表于 2007-8-1 15:25:03 | 显示全部楼层 |阅读模式

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

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

x
DEFINE_PROPERTY(mykongxilv, cell, thread)
{
  int i;
  real kongxilv;
  real x[ND_ND];
  real xx1=x[0];
  real xx2=x[1];
  real xx3=x[2];
  cell_t c;
  Thread *t;
  face_t f;
  begin_f_loop(f,thread)
  {
  C_CENTROID(x,c,t);
  if((xx1<=150)&&(xx1>=0)&&(xx2<=239)&&(xx2>=0))
  {
  if((xx3<=0.231*xx2+20)&&(xx3>=0.23*xx2))
      kongxilv=0.0000195*xx1*xx1+0.000028607*xx2*xx2-0.005165*xx1-0.006721*xx2+0.0000014244*xx1*xx2+0.73455;
  else if((xx3<=0.231*xx2+30)&&(xx3>0.231*xx2+20))
      kongxilv=0.000015265*xx1*xx1+0.00002147*xx2*xx2-0.0041616*xx1-0.005054*xx2+0.0000011186*xx1*xx2+0.6066;
  else if((xx3<=0.231*xx2+40)&&(xx3>0.231*xx2+30))
      kongxilv=0.00001072*xx1*xx1+0.0000143*xx2*xx2-0.00299756*xx1-0.003373*xx2+0.00000077545*xx1*xx2+0.46125;
  else if((xx3<=0.231*xx2+50)&&(xx3>0.231*xx2+40))
      kongxilv=0.00000541276*xx1*xx1+0.00000710586*xx2*xx2-0.0015686*xx1-0.00168*xx2+0.00000003755*xx1*xx2+0.2936;
  else if((xx3<=0.231*xx2+60)&&(xx3>0.231*xx2+50))
      kongxilv=0.105;
    }
   else kongxilv=0;
   return kongxilv;
   }
   end_f_loop(f,thread)
}
出错提示返回值为空
检查xx1没有获得值
请指点啊,快崩溃了!
 楼主| 发表于 2007-8-1 18:48:05 | 显示全部楼层

请gallongallon指点,udf中如何实现多孔介质的孔隙率是位置的代码

已经解决
将x[0]放到循环内部
发表于 2014-8-31 23:57:18 | 显示全部楼层

回复 2# cihuai 的帖子

楼主太棒 了,谢谢~~~~
发表于 2019-1-29 11:34:38 | 显示全部楼层
前辈,我最近也在学习编写孔隙率udf, 想请教两个问题:
1. 定义时应该用DEFINE_PROPERTY还是DEFINE_PROFILE呢?
2. udf成功导入fluent后,应该在Porosity中设置孔隙率为多少,我发现Porosity只能设置为constant或者new input parameter,没有user-defined。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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