reaction of progress calculation. three-body reaction, and fall-off reaction.

165 views
Skip to first unread message

Yu Li

unread,
Oct 8, 2017, 2:00:56 PM10/8/17
to Cantera Users' Group
hi:
    I met a problem for the reaction of progress calculation. for the three-body reaction, and fall-off reaction.
  
    according to my knowledge, their progress variable calculation is a function of 'M'. I list two cases to illustrate my finding, I'm not sure if it is due to my operation mistake, but I checked and could not find problem on my side.

    take three body reaction HCO+M=H+CO+M for example.

    case1: 
    1. importPhase ('g').
    2. set parameters, T, P, mole fraction.
    3. pv1=rop_net(g).

    case2:
    1. importPhase.
    2. set parameters, T, P, mole fraction.
    3. get the forward and reverse reaction rate constant, kf, kr.
    4. get the species concentration.
    5. pv2=kf*[HCO]-kr*[H]*[CO].

    As we know, for the pv2 calculation, we should multiply the concentration of [M], in the data I have, the [M] is about 0.1. but the result showed that the pv1=pv2. 

    The same problem occurs for the fall-off reaction.

    If my steps are right, does this mean there are something missing in the Cantera calculation? I hope not....because I've done more than one year analysis with current data so far............

thanks!
Li

Bryan W. Weber

unread,
Oct 8, 2017, 4:09:20 PM10/8/17
to Cantera Users' Group
Li,

Again, please include the exact code you're using (and please also mention the version of Cantera). Without the code, only you know what you're actually running, and we cannot help.

Best,
Bryan

Yu Li

unread,
Oct 8, 2017, 4:47:20 PM10/8/17
to Cantera Users' Group
Hi Bryan:    
    please see attatched file.

    thanks!

Li 
test.mat
testCti.cti
pv_calculation_problem.m

Yu Li

unread,
Oct 8, 2017, 4:59:12 PM10/8/17
to Cantera Users' Group
Hi: 
    The version I'm using is 2.2.

Best!
Li

Bryan W. Weber

unread,
Oct 22, 2017, 5:31:46 PM10/22/17
to Cantera Users' Group
Hi Li,

Sorry for the long delay. I can reproduce this behavior with your code. As best I can tell, the 3rd body concentrations are included in the getFwdRateConstants calculation. See: https://github.com/Cantera/cantera/blob/7673f7cb529070c24d54231a2c6feb0d7514bd8d/src/kinetics/GasKinetics.cpp#L215

Hence, we expect pv1 and pv2 from your code to give the same result. We can check this with the following code (the reaction rate parameters are from your mechanism with the units adjusted):

 

kf2 = 1.591000e+15*T^(0.95)*exp(-56.712329/(1.9872036E-3*T))*mc_M;

KC = equil_Kc(g);

kc = KC(indRea);

kr2 = kf2/kc;

pv4 = kf2*mc_hco-kr2*mc_h*mc_co;

 

fprintf('pv calculation in mannually is: %f.\n',pv4);



On a side note, I'd strongly recommend you update to Cantera 2.3. Although this issue wasn't due to something that's changed between versions, you might run into something in the future that is a problem, so its best to upgrade.

Best,
Bryan

Yu Li

unread,
Dec 14, 2017, 11:47:20 AM12/14/17
to Cantera Users' Group
Hi Bryan:
    I'm not sure if I made some mistake here.
 

    the expression of kf should be: kf=A*T^(b)*exp(-E/(R*T));

    so based on the case,[A,b,E]=[1.591000e+18, 0.95, 56712.329], the number you take into the equation is different. I guess I made some mistake here. could you please give me some more explainnations?

Thanks!
Li

Bryan W. Weber

unread,
Dec 17, 2017, 11:10:34 AM12/17/17
to Cantera Users' Group
Li,

Yes, in general kf is given by that formula. However, if you look at the code for getFwdRateConstants that I linked previously, you can see that the third body concentration is already accounted for in the calculation. So getFwdRateConstants doesn't return the kf from that formula for three-body reactions.

Regards,
Bryan
Reply all
Reply to author
Forward
0 new messages