|
★ 小木虫: 金币+0.5, 给个红包,谢谢回帖 送红花一朵
做一个密相输运床煤气化的模拟,尝试用dpm模型耦合欧拉双流体模型来做,准备用udf定义颗粒我表面反应,对气固非均相反应进行描述。可是每当载入此udf,fluent就提示 the f1 process could not be started。不知道到底是哪里出了问题。麻烦大神们帮我看一下我的udf,麻烦指出是哪里出了错误,十分感谢!
#include "udf.h"
#include "dpm.h"
#define o2 1
#define h2o 3
#define co2 2
#define h2 5
#define co 4
#define ch4 6
#define tmax 2500
define_pr_rate(particle_surface_rate, c, t, r, mw, pp, p, sf, dif_i, cat_i, rr)
{
double t_1 = max(450, c_t(c, t));/* 连续相温度 */
double t_2 = max(450, p_t(p));
double t = min(3000, t_1);
double t_s = min(3000, t_2);
double k_e_q, p_e;
double k_f, k_a, k_r, diff;
double pt = max(0.1, (op_pres+c_p(c,t))/101325);
double rd;
double d_p = p_diam(p);
double ash_ar = 10.68;
double ash;
double conv;
double ep_a, f_ep_a;
ash = p_init_mass(p)*0.1068;
/* 灰的空隙率,void fraction of ash layer */
ep_a = 0.9199;/*0.25 + 0.75*(1-ash_ar/100.)*/
f_ep_a = pow(ep_a, 2.5);
conv = (p_mass(p)/ash)-1+(1.e-8);
conv = max(0,conv);
rd = pow(conv,(1./3.));
if(!strcmp(r->name, "reaction-10") /* c+0.9o2=0.2co+0.8co2 */
{
if(sf[0]>0&&c_yi(c,t,1)>0)
{
diff = 0.584 * (4.26/t) * pow((t/1800.), 1.75) / pt;
diff = max(diff, 1.e-10);
k_f = diff / (d_p * 100 );
k_r = 8710. * exp( -149400./(t * 8.314 )) * rd * rd;
if(rd >= 1.)
{
*rr = 1./(1./k_f + 1./k_r);
}
else
{
k_a = rd * k_f * f_ep_a / (1.0-rd) ;
*rr = ( 1.0/(1.0/k_f + 1.0/k_r + 1.0/k_a));
}
}
else
{
*rr = 0.;
}
*rr = -10 * (*rr * sf[0] * pp[1] * 3.14 * d_p * d_p / 101325.);
}
else if(!strcmp(r->name, "reaction-7") /* c+h2o=co+h2 */
{
if(sf[0]>0&&c_yi(c,t,3)>0)
{
k_e_q = exp(17.644-30260/(1.8*t));
p_e = pp[3] - ((pp[5]-pp[4])/k_e_q);
p_e = max(p_e, 0);
diff =0.001 * pow((t/2000.), 0.75) / pt;
diff = max(diff, 1.e-10);
k_f = diff / (d_p * 100.);
k_r = 247. * exp( -175100./(8.314 * t)) * rd * rd;
if(rd >= 1.)
{
*rr = 1./(1./k_f + 1./k_r);
}
else
{
k_a = rd * k_f * f_ep_a / (1.-rd);
*rr = (( 1. / (1./k_f + 1./k_r + 1./k_a))+(1.e-8));
}
}
else
{
*rr = 0.;
}
*rr = -10 * (*rr * pp[3] * 3.14 * d_p * d_p * sf[0] / 101325.);
}
else if(!strcmp(r->name, "reaction-8") /* c+co2=2co */
{
if(sf[0]>0.&&c_yi(c,t,2)>0.)
{
diff = (7.45e-4) * pow((t/2000.), 0.75) / pt;
diff = max(diff, 1.e-10);
k_f = diff / (d_p * 100.);
k_r = 247. * exp( -175100./(8.314 * t)) * rd * rd;
if(rd >= 1.)
{
*rr = 1./(1./k_f + 1./k_r);
}
else
{
k_a = rd * k_f * f_ep_a / (1.-rd) ;
*rr = ( 1. / (1./k_f + 1./k_r + 1./k_a))+(1.e-8);
}
}
else
{
*rr = 0.;
}
*rr = - 10 * (*rr * pp[2] * 3.14 * d_p * d_p * sf[0] / 101325.);
}
else if(!strcmp(r->name, "reaction-9") /* c+h2=ch4 */
{
if(sf[0]>0.&&c_yi(c,t,5)>0.)
{
k_e_q = (5.041e-6) * exp(18400./(1.8 * t));
p_e = (pp[5]/101325) - sqrt(pp[6] / k_e_q/101325);
p_e = max(p_e, 0);
diff = (1.33e-3) * pow((t/2000.), 0.75) / pt;
diff = max(diff, 1.e-10);
k_f = diff / (d_p * 100.);
k_r = 0.12 * exp( -149000./(8.314 * t )) * rd * rd;
if(rd >= 1.)
{
*rr = 1./(1./k_f + 1./k_r);
}
else
{
k_a = rd * k_f * f_ep_a / (1.-rd) ;
*rr = ( 1. / (1./k_f + 1./k_r + 1./k_a));
}
}
else
{
*rr = 0.;
}
*rr = -10 * (*rr * p_e * 3.14 * d_p * d_p * sf[0]);
}
} |
|