找回密码
 注册
查看: 4884|回复: 4

FLUENT UDF化学反应

[复制链接]
发表于 2015-11-20 17:06:26 | 显示全部楼层 |阅读模式

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

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

x
请各位大神指导一下,初学UDF,我想通过UDF编写化学反应速率以及各方程源项,来实现CH4和O2的燃烧反应,编写的代码如下:
#include "udf.h"
#include "math.h"
#define PRE_EXP 2.119e+011
#define ACTIVE 2.027e+08
#define BETA 0.0

real arrhenius_rate(real temp)
{
        return PRE_EXP*pow(temp,BETA)*exp(-ACTIVE/(UNIVERSAL_GAS_CONSTANT*temp));
}

DEFINE_SOURCE(energy_source,c,t,dS,eqn)
{
  real delt_h,source;
  delt_h=-7.489518e+07;
  source=delt_h*(arrhenius_rate(C_T(c,t)))*C_R(c,t)*C_YI(c,t,0)/16;
  return  source;
}
DEFINE_SOURCE(ch4_source,c,t,dS,eqn)
{
  real source;
  real ss;
  source=-arrhenius_rate(C_T(c,t))*C_R(c,t)*C_YI(c,t,0);
  return  source;
}

DEFINE_SOURCE(o2_source,c,t,dS,eqn)
{
  real source;
  source=-arrhenius_rate(C_T(c,t))*C_R(c,t)*C_YI(c,t,1);
  return  source;
}
DEFINE_SOURCE(co2_source,c,t,dS,eqn)
{
  real source;
  source=arrhenius_rate(C_T(c,t))*C_R(c,t)*C_YI(c,t,2);
  return  source;
}
DEFINE_SOURCE(h2o_source,c,t,dS,eqn)
{
  real source;
  source=arrhenius_rate(C_T(c,t))*C_R(c,t)*C_YI(c,t,3);
  return  source;
}
程序中的指前因子,活化能等参数都是fluent中的材料库中数据。选用的是无反应输运模型,编译UDF后,分别添加各方程源相。但是Fluent运行后并没有发生反应,查看发现arrhenius_rate=0,但是这些数据全部都是来自fluent?那么Fluent又是如何计算arrhenius_rate的呢?后来我认为将arrhenius_rate=1000.0,但是还是没有反应?不知道是怎么回事?请大神指点一下啊?模型说明在附件里面。
发表于 2016-1-20 15:44:21 | 显示全部楼层
首先,你要声明 #define ch4  0
                         #define o2   1
(编号为组分输运里面的顺序,第一个物质编号为0,依次类推)
其次,每个source宏里面加上dS[eqn]=0;在return source 前一行。
发表于 2016-9-26 15:17:51 | 显示全部楼层
UDorcer 发表于 2016-1-20 15:44
首先,你要声明 #define ch4  0
                         #define o2   1
(编号为组分输运里面的顺序, ...

添加了您说的这两点还是没有反应发生,udf是加载在流体域中的源相内吧?
发表于 2019-5-8 18:12:02 | 显示全部楼层
你应该没有给定参数吧,各组分的质量分数
发表于 2022-11-7 09:57:30 | 显示全部楼层
楼主解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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