找回密码
 注册
查看: 3578|回复: 7

求助!!!udf自定义采空区孔隙率

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

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

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

x
我做采空区瓦斯模拟,自定义采空区孔隙率。x为采空区后方,y为工作面平行方向,工作面长度100m,多孔介质80m高。
代码:

  1. #include "udf.h"
  2. DEFINE_PROPERTY(mykongxilv, cell, thread)
  3. {
  4. int i;
  5. real kongxilv;
  6. real x[ND_ND];
  7. real xx1,xx2,xx3;
  8. cell_t c;
  9. Thread *t;
  10. face_t f;
  11. begin_f_loop(f,thread)
  12. {
  13. C_CENTROID(x,c,t);
  14. real xx1=x[0];x向采空区后方,长度150
  15. real xx2=x[1];y向,工作面方向,工作面长100m
  16. real xx3=x[2];z向,高,80m
  17. if((xx1<=150)&&(xx1>=0)&&(xx2<=50)&&(xx2>=-50))
  18. {
  19. if((xx3<=80)&&(xx3>=0)&&(xx2>=0))
  20. kongxilv=((0.2*exp(-0.0221*xx1)+0.1)*(exp(-0.15*(50-xx2))+1));
  21. else if((xx3<=80)&&(xx3>=0)&&(xx2<=0))
  22. kongxilv=((0.2*exp(-0.0221*xx1)+0.1).*(exp(-0.15*(50+xx2))+1));

  23. }
  24. else kongxilv=0;
  25. return kongxilv;
  26. }
  27. end_f_loop(f,thread)
  28. }
复制代码


错误提示:
  1. >
  2. cpp -I"C:\Fluent.Inc\fluent6.3.26/src" -I"C:\Fluent.Inc\fluent6.3.26/cortex/src" -I"C:\Fluent.Inc\fluent6.3.26/client/src" -I"C:\Fluent.Inc\fluent6.3.26/multiport/src" -I. -DUDFCONFIG_H="<udfconfig-host.h>" "D:\GAMBITMODEL\mykongxilv.c"
  3. Error: D:\\GAMBITMODEL\\mykongxilv.c: line 14: parse error.
  4. Error: D:\\GAMBITMODEL\\mykongxilv.c: line 15: parse error.
  5. Error: D:\\GAMBITMODEL\\mykongxilv.c: line 16: parse error.
  6. Error: D:\\GAMBITMODEL\\mykongxilv.c: line 22: parse error.

  7. cpp -I"C:\Fluent.Inc\fluent6.3.26/src" -I"C:\Fluent.Inc\fluent6.3.26/cortex/src" -I"C:\Fluent.Inc\fluent6.3.26/client/src" -I"C:\Fluent.Inc\fluent6.3.26/multiport/src" -I. -DUDFCONFIG_H="<C:/Users/ADMINI~1/AppData/Local/Temp/udfconfig-node0.h>" "C:/User
  8. /ADMINI~1/AppData/Local/Temp/mykongxilv.c.0.c"
  9. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.0.c: line 14: parse error.
  10. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.0.c: line 15: parse error.
  11. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.0.c: line 16: parse error.
  12. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.0.c: line 22: parse error.

  13. cpp -I"C:\Fluent.Inc\fluent6.3.26/src" -I"C:\Fluent.Inc\fluent6.3.26/cortex/src" -I"C:\Fluent.Inc\fluent6.3.26/client/src" -I"C:\Fluent.Inc\fluent6.3.26/multiport/src" -I. -DUDFCONFIG_H="<C:/Users/ADMINI~1/AppData/Local/Temp/udfconfig-node1.h>" "C:/User
  14. /ADMINI~1/AppData/Local/Temp/mykongxilv.c.1.c"
  15. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.1.c: line 14: parse error.
  16. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.1.c: line 15: parse error.
  17. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.1.c: line 16: parse error.
  18. Error: C:/Users/ADMINI~1/AppData/Local/Temp/mykongxilv.c.1.c: line 22: parse error.
复制代码
孔隙率图.PNG
 楼主| 发表于 2014-9-1 23:51:47 | 显示全部楼层

回复 1# 龙biscuit 的帖子

我的模型y向是100m,这个附图是160的例子。我的x是150m这个附图也是150m。上面正负号“士”号取值;当y为负值时取正号,当y为正值时取负号
发表于 2014-9-2 18:59:11 | 显示全部楼层

回复 2# 龙biscuit 的帖子

你的注释部分要用/* */
real xx1=x[0];/*x向采空区后方,长度150*/
real xx2=x[1];/*y向,工作面方向,工作面长100m*/
real xx3=x[2];/*z向,高,80m*/
否则编译不能通过。
 楼主| 发表于 2014-9-3 10:18:37 | 显示全部楼层

回复 3# classic1573 的帖子

哦,多谢,我昨天把后面的注释去掉了就行了
 楼主| 发表于 2014-9-3 16:50:09 | 显示全部楼层

回复 3# classic1573 的帖子

大神,在帮我看看吧,我的代码如下
/* 下面是对坐标轴在进风巷口的多孔介质孔隙率编程  */
#include "udf.h"
#include "metric.h"
#define  L 100
DEFINE_PROPERTY(mycell_poriness,cell,thread)
{
real myc_p;
real x[ND_ND];
cell_t c;
Thread *t;
real xx1,xx2,xx3;

begin_c_loop(c,thread)
    {
C_CENTROID(x,c,t)
xx1=x[0];/*x轴方向,x指向采空区后方,长150m*/
xx2=x[1];/*y轴方向,y指向工作面平行方向,及工作面长100m,左右各50m*/
xx3=x[2];/*z轴方向,z指向采空区高度方向,多孔介质高20m*/
if((xx1<=150)&&(xx1>=0)&&(xx2<=50)&&(xx2>=-50))
{
if((xx3<=20)&&(xx3>=0)&&(xx2>=50))
myc_p=((0.2*exp(-0.0221*xx1)+0.1)*(exp(-0.15*(L-xx2))+1));
else if((xx3<=20)&&(xx3>=0)&&(xx2<=50))
myc_p=((0.2*exp(-0.0221*xx1)+0.1)*(exp(-0.15*(L+xx2))+1));

}
else myc_p=0;
return myc_p;
}
end_c_loop(c,thread)
}
这次用个小的模型实验,发现打开组分运输,一插入udf后就会出现the FLUENT process could not be started。这是什么原因啊,我的case和*.c放在同一个目录了,网格质量也很好。
 楼主| 发表于 2014-9-5 09:50:24 | 显示全部楼层

回复 5# 龙biscuit 的帖子

原因找到了,是因为我的坐标轴方向搞错了。
发表于 2016-8-25 11:01:57 | 显示全部楼层
师兄,您做过的源文件可否分享一下,也是做这个的,UDF、网格都编好了,就是不知道具体在Fluent里怎么设置,QQ是447848206,先谢谢师兄
发表于 2017-3-26 22:00:59 | 显示全部楼层
龙biscuit,您做过的源文件可否分享一下吗?练练手了。qq7549228
发表于 2019-1-29 11:34:27
前辈,我最近也在学习编写孔隙率udf, 想请教两个问题:
1. 定义时应该用DEFINE_PROPERTY还是DEFINE_PROFILE呢?
2. udf成功导入fluent后,应该在Porosity中设置孔隙率为多少,我发现Porosity只能设置为constant或者new input parameter,没有user-defined。
支持 反对

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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