Skip to content

RMG Surface Solver does not match Cantera Surface Solver #2923

@sevyharris

Description

@sevyharris

Bug Description

When I run equivalent surface simulations in RMG and Cantera, I get different results, and I can't figure out whether I'm doing something wrong or the solvers are just expected to behave differently.

Image Image

This matters to me because I'm trying to use RMG's sensitivity calculations for the uncertainty tool, but I can't test any of it against Cantera if the simulated concentrations don't even match.

How To Reproduce

Here's a minimal RMG mechanism and Cantera mechanism of O2+CH4 reacting on Pt111:

short-gas.inp.txt
short-surface.inp.txt
short.yaml
species_dictionary.txt

and an example Jupyter Notebook to run them/see how I'm running them: https://github.com/comocheng/uncertainty_estimator/blob/main/uncertainty_tool_dev/surface_sensitivities/minimal_solver_difference.ipynb

Any and all advice is appreciated here! I would love it if the answer is I just screwed up the units somewhere.

Expected Behavior

I would expect RMG and Cantera to come up with the same results for a mechanism with only 9 reactions in a batch reactor, but maybe I've misunderstood the assumptions here.

The RMG SurfaceReactor claims to be isothermal, and constant volume in the class docstring. (The file docstring says isothermal and isobaric but that looks like it was accidentally left in while copying the SimpleReactor class).

You can get the results to match up for slightly simpler cases, like O2 as the only starting species adsorbing on the surface.

Installation Information

Describe your installation method and system information.

  • OS: Ubuntu 24.04.4 LTS
  • Installation method: source
  • RMG version information:
    • RMG-Py: 9cc2cfd (latest main)
    • RMG-database: ac2cc758d00c59add46528d6ff38b815691b1726

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions