CFD Online Discussion Forums

CFD Online Discussion Forums (
-   FLUENT (
-   -   UDF for catalyst volumetric reaction, temperature overshoot though rate is small (

elmcmaster October 11, 2010 09:37

UDF for catalyst volumetric reaction, temperature overshoot though rate is small
Hi all, im doing a reaction on a catalyst as a volumetric reaction that occurs only in the porous catalyst region. Ive done this before for kinetic that only involved one rate equation, though now im trying to do more. I have followed the relegvant bits of the manual as intelligently as i think i can, though the temperature rise im getting is far too high for this reaction, even though it is considered quite exothermic. When i run it after doing a coldflow for initial soloution and activating reactions and relevant equations in the equations control, there are warnings about the temperature limiting, thoughthis rectifies itself after a few iterations.

Another thing is that the species contours for most species look ok, but for one of the reactants, CO, there is quite clearly a problem.

I have included the text of the UDF if anyone would like to look at it below, in particular, are the parts and structure of the two reactions with the if and else bit right? Also is the check one whether the reaction is to take place due to it being a porous zone in the right place or should that be included for each reaction?

/************************************************** ****************
Compiled UDF for specifying a reaction rate in a porous medium
************************************************** *****************/

int koco,koh2,kco,khs,Eco,Eh2,R,e;
int exponenta,exponentb,kco,kh2;

R = 8.314;
e = 2.71828183;
koco = 1400000000000;
koh2 = 1600000000000;
Eco = 19900;
Eh2 = 35000;
DEFINE_VR_RATE(vol_reac_rate,c,t,r,mole_weight,spe cies_mf,rate,rr_t)
real mfco = species_mf[3];
real mfco2 = species_mf[2];
real mfh2 = species_mf[4];
real mfh20 = species_mf[0];
real mfo2 = species_mf[1];
real temp = C_T(c,t);
exponenta = (-1*(Eco/(R*temp)));
exponentb = (-1*(Eh2/(R*temp)));
kco = koco*pow(e,exponenta);
kh2 = koh2*pow(e,exponentb);

if (FLUID_THREAD_P(t) && THREAD_VAR(t).fluid.porous)
if (!strcmp(r->name, "reaction-1"))

*rate = kco*(pow(mfco,1.02)*pow(mfo2,0.0001));
*rr_t = *rate;

elseif (!strcmp(r->name, "reaction-2"))

*rate = kh2*(pow(mfo2,0.2));
*rr_t = *rate;


*rate = 0.;


All times are GMT -4. The time now is 10:18.