FLUENT UDF化学反应
请各位大神指导一下,初学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;
returnsource;
}
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);
returnsource;
}
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);
returnsource;
}
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);
returnsource;
}
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);
returnsource;
}
程序中的指前因子,活化能等参数都是fluent中的材料库中数据。选用的是无反应输运模型,编译UDF后,分别添加各方程源相。但是Fluent运行后并没有发生反应,查看发现arrhenius_rate=0,但是这些数据全部都是来自fluent?那么Fluent又是如何计算arrhenius_rate的呢?后来我认为将arrhenius_rate=1000.0,但是还是没有反应?不知道是怎么回事?请大神指点一下啊?模型说明在附件里面。
首先,你要声明 #define ch40
#define o2 1
(编号为组分输运里面的顺序,第一个物质编号为0,依次类推)
其次,每个source宏里面加上dS=0;在return source 前一行。
UDorcer 发表于 2016-1-20 15:44
首先,你要声明 #define ch40
#define o2 1
(编号为组分输运里面的顺序, ...
添加了您说的这两点还是没有反应发生,udf是加载在流体域中的源相内吧?
你应该没有给定参数吧,各组分的质量分数 楼主解决了吗
页:
[1]