Julia,
In this input file, there are many reactions that are defined like this:
# Reaction 97
reaction('ch2oh (+ M) => ch2o + h (+ M)', [8.653000e+12, -0.038, 32410.0])
# troe fall-off reaction
However, a falloff reaction requires additional information — at a minimum, the rate expression in the low-pressure limit, and if the Troe function is to be used as indicated in the comment, the parameters for that as well. These parameters should be provided as arguments to the falloff_reaction declaration. In fact, immediately above this reaction is a correctly specified falloff reaction:
# Reaction 96
falloff_reaction('ch2o + h (+ M) => ch2oh (+ M)',
kf=[5.400000e+11, 0.454, 3600.0],
kf0=[1.270000e+32, -4.82, 6530.0],
efficiencies='h2:2.0 h2o:6.0 co:1.5 co2:2.0 ch4:2.0 c2h6:3.0',
falloff=Troe(A=0.7187, T3=103.0, T1=1291.0, T2=4160.0))
This problem seems to occur repeatedly in this input file. How was this CTI file generated?
Regards,
Ray
Julia,
This mechanism contains many reactions which are defined as falloff reactions with explicit reverse rate constants provided, for instance:
ch2o+h(+m)<=>ch2oh(+m) 5.400e+11 0.454 3.600e+03
rev/ 8.653e+12 -0.038 3.241e+04 /
low / 1.2700e+32 -4.8200e+00 6.5300e+03 /
troe / 7.1870e-01 1.0300e+02 1.2910e+03 4.1600e+03 / !troe fall-off reaction
h2/2/ h2o/6/ co/1.5/ co2/2/ ch4/2/ c2h6/3/
After taking a look at this, I’m surprised that this is considered valid input to Chemkin, since there’s no way that a simple Arrhenius reverse rate can do a decent job of matching the constraints on the reverse rate that are imposed by chemical equilibrium when the forward rate is determined by the more complex falloff rate parameterization. To see what’s happening, I created a simplified input file with just this one reaction (attached) and used the following Python script to plot the rate coefficients:
import cantera as ct
import matplotlib.pyplot as plt
import numpy as np
gas = ct.Solution('testmech.cti')
T = np.linspace(300, 1500, 100)
s = ct.SolutionArray(gas, len(T))
f, ax = plt.subplots(1,2)
s.TPX = T, 1e2, 'ch2o:0.1, ch2oh:0.05, h:0.001, n2:0.849'
ax[0].semilogy(1000/T, s.reverse_rate_constants[:,0], label='reversible')
ax[0].semilogy(1000/T, s.forward_rate_constants[:,1], label='explicit')
s.TPX = T, 1e7, 'ch2o:0.1, ch2oh:0.05, h:0.001, n2:0.849'
ax[1].semilogy(1000/T, s.reverse_rate_constants[:,0], label='reversible')
ax[1].semilogy(1000/T, s.forward_rate_constants[:,1], label='explicit')
ax[1].legend()
ax[0].set_title('P = 100 Pa')
ax[1].set_title('P = 1e7 Pa')
ax[0].set_xlabel('1000/T')
ax[1].set_xlabel('1000/T')
ax[0].set_ylabel('ch2oh->ch2o+h rate constant')
f.tight_layout()
What this shows is that in the high-pressure limit, the explicit reverse rate coefficient is reasonably close to what would be expected if the reaction were treated as reversible. However, in the low-pressure limit, the rate determined using the explicit reverse rate constant is pretty far off. I haven’t checked any of the other reactions, but would expect similar behavior. I do not think using these reverse rate coefficients makes sense for falloff reactions.
Regards,
Ray
The first thing I would do is recreate the test that Ray gave in Chemkin