How is the heat of reaction calculated for the multiple surface reactions model?

I have made a model for a custom particle surface reaction using the multiple surface reactions model with a UDF. Now the heat of reaction for this particle surface reaction is given by:

where delta H 298 is the standard state enthalpy. This property is what i give as an input for my products and reactants. However, it seems that Fluent does not take the integral term into account. Does fluent compute the heat of reaction based on the standard state enthalpies only?

Answers

  • SteveSteve Forum Coordinator

    Hi,

    Can you copy and paste your UDF in a reply so that we can have a look? You might want to look at the section 2.2.1. DEFINE_ADJUST in the UDF section of the Fluent Customization Manual which shows how to compute a volume integral in a udf.

    Thanks,

    Steve

  • Hi steve, here is the UDF i am currently using. It returns a reaction rate (in kg/s) for a particle. Fluent uses this reaction rate to determine the heat of reaction which should be calculated according to the equation mentioned in my previous post. However, it does not seem to take the integral term into account. This is also something this UDF cannot return (as far as I am aware).

    #include "udf.h"

    #include "dpm.h"

    #include "stdlib.h"



    DEFINE_PR_RATE(reduction_rate, c, t, r, mw, pp, tp, sf, dif_i, cat_i, rr)

    {


    cphase_state_t *c0 = &(tp->cphase[0]); /* cell information of particle location */


    Material *mat = THREAD_MATERIAL(t);

    int ind_H2O = mixture_specie_index(mat, "h2o"); /* get steam index */

    int ind_H2 = mixture_specie_index(mat, "h2");  /* get hydrogen index */


    int atm = 101325;        /* atmospheric pressure [Pa] */

    real T_c = c0->temp;       /* cell temperature [K] */

    real T_p = TP_T(tp); /* particle temperature [K] */

    real pp_H2O = pp[ind_H2O] / atm; /* partial pressure steam [atm] */

    real pp_H2 = pp[ind_H2] / atm;  /* partial pressure hydrogen [atm] */


    real E_act;

    real k0;

    int s;

    int n1;

    int n2;


    if (TP_INIT_RHO(tp) == 5150)

    {

    E_act = 214000;

    k0 = 4.41e7;

    s = 0;

    n1 = 2;

    n2 = 3;

    }

    else

    {

    n1 = 3;

    n2 = 4;

    if (T_p >= 1623.15)

    {

    E_act = 170000;

    k0 = 2.5e7;

    s = -1;

    }

    else

    {

    E_act = 193000;

    k0 = 8.65e6;

    s = 0;

    }

    }


    /*************

    Calculations

    **************/

    real K = -4.053E-7 * pow((T_p - 273.15), 2) + 0.001404 * (T_p - 273.15) - 0.3145; /* Equilibrium constant */


    float molMass1 = 55.845 / 1000;

    float molMass2 = 15.9994 / 1000;

    real molMass3 = n1 * molMass1 + n2 * molMass2;


    real mp_t = TP_MASS(tp);  /* total particle mass [kg] (at current time) */

    real mp_i = TP_INIT_MASS(tp);  /* initial particle mass [kg] (at injection) */


    real W_oi = (n2 * molMass2) / (molMass3);  /* initial mass fraction of 2 */

    real X0 = (mp_i - mp_t) / (mp_i * W_oi);  /* current conversion degree */

    real Dp_mu = TP_DIAM(tp)*pow(10, 6);  /* particle diameter in mu */

    real dXdt = k0 * exp(-E_act / (UNIVERSAL_GAS_CONSTANT / 1000 * T_p)) * (pp_H2 - (pp_H2O / K)) * (1 - X0) * pow(Dp_mu, s); /* increase in conversion degree */

    real dmdt = dXdt * mp_i * W_oi;  /* change in particle mass [kg/s] */


    *rr = -dmdt / (n2 * molMass2) * molMass3; /* reaction rate */

    }

  • DrAmineDrAmine GermanyForum Coordinator

    Please check if the material used for Multiple Surface Reaction are correct regarding the SSE.

Sign In or Register to comment.