RMG-Py
RMG-Py copied to clipboard
RMG 3.1.0 cannot reproduce the result of RMG 3.0.0
Bug Description
We are trying to reproduce the paper on Catalytic Partial Oxidation of Methane by RMG 3.1.0 and RMG 3.0.0. The result of RMG 3.0.0 seems the same as the paper which CH4 mostly converts into CO2 (CH4 -> CH3X -> CH2X -> CHX -> CX -> COX -> CO2X -> CO2). However, RMG 3.1.0 shows CH4 converts into C2H6 (CH4 -> CH4X -> CH3X -> C2H6), which cannot reproduce the result of the paper.
By looking into the output.html, I found the one of the kinetics of the reactions (Surface_Adsorption_Dissociative) is different between RMG 3.0.0 and RMG 3.1.0. But the rule of this reaction is the same between RMG-database 3.0.0 and RMG-database 3.1.0.
Is this a bug? Or could someone please provide a reasonable explanation of the huge different kinetics between versions?
output.html of RMG 3.1.0:

output.html of RMG 3.0.0:

How To Reproduce
- Download the zip file which includes input.py.
rmg.py input.pyby both RMG 3.0.0 and RMG 3.1.0.
Expected Behavior
CH4 should finally convert into CO2.
Installation Information
Describe your installation method and system information.
- OS (include version if known): WSL2 on Windows 10
- Installation method: installation from binary, with anaconda
- RMG version information:
- RMG-Py: 3.1.0 and 3.0.0
- RMG-database: 3.1.0 and 3.0.0
Additional Context
We also make some illustration by graphviz to see what happened during the reaction.
RMG 3.1.0:

RMG 3.0.0:

Sorry for the late response. I'm just seeing this issue right now. Is it still open or has it been resolved? I don't think that it is a bug but rather caused by changes to the binding energies used in the linear scaling relations or updated kinetic parameters. Which metal did you use and which binding energies? You can see that the heat of reaction changes significantly, which explains the change in the reaction kinetics of the dissociative adsorption
@bjkreitz Thanks for looking into this and sorry for the late reply! The problem is still open, and we use metal Rh(111). The definition is as below
catalystProperties( # default values for Rh(111)
bindingEnergies = {
'C':(-6.568, 'eV/molecule'),
'O':(-4.610, 'eV/molecule'),
'N':(-4.352, 'eV/molecule'),
'H':(-2.479, 'eV/molecule'),
},
surfaceSiteDensity=(2.72e-9, 'mol/cm^2'),
)
Per our discussion at the 2023 rmg training, there are a number of new families , and a number of new rate rules that we've added. I think the best way to deal with this is by limiting the following within your mechanism:
- the amount of carbon atoms (<=C3 is recommended, since we do not have a lot of thermo for larger. for cpox specifying C1 might be the right way to go, I'm not sure if there are any c2 intermediates)
- the amount of surface sites (<=2 is recommended, we do not have kinetics beyond bidentates)
For the cpox model, we have added a lot of new families and rules that will affect this model. To reproduce the exact results of the paper you will need to use the iteration of the database and rmg-py that were specified (I believe both of those are on zenodo)
To address the root cause of the problem, we need to implement regression tests for our surface mechanisms. Currently we do not have a regression test for RMG-cat mechanisms, but this is addressed in #2004 and #85.
This issue is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant issue, otherwise it will automatically be closed in 30 days.
I'm marking this as a bug so it does not automatically get closed and linking #2514 which, when merged, will close this issue.