ReactionMechanismGenerator / ReactionMechanismGenerator/RMG-Py

Non-deterministic choice between ring(Cyclopropene) and ring(oxirene) ?

Open
#2,010 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Python
Stars
530
Forks
260
Avg merge
3d 1h
Merged PRs (30d)
8

Description

Bug Description

Comments on several pull requests have noticed some non-identical thermo in the rmg/nitrogen test in the regression tests. It shows up something like this:

Non-identical thermo!
original:	O1[C]=N1
tested:	O1[C]=N1
Hf(300K)  |S(300K)   |Cp(300K)  |Cp(400K)  |Cp(500K)  |Cp(600K)  |Cp(800K)  |Cp(1000K) |Cp(1500K) 
    129.73|     51.79|      9.14|      9.59|      9.99|     10.34|     10.90|     11.38|     12.40
    154.90|     56.55|      9.79|      9.15|      8.58|      8.33|      9.02|     10.26|     10.96
thermo: Thermo group additivity estimation: missing(O2s-CdN3d) + group(N3s-CsHH) + group(Cds-CdsCsCs) + ring(Cyclopropene) + radical(Cds_P)
thermo: Thermo group additivity estimation: missing(O2s-CdN3d) + group(N3s-CsHH) + group(Cds-CdsCsCs) + ring(oxirene) + radical(Cds_P)

It appears in comments on these separate pull requests:

The diff may appear in other pull requests but without anyone delving into the logs and commenting.

It is mostly just mentioned and then ignored, although @goldmanm discussed it briefly here

One species had different thermo [C]1=NO1, which was due to whether RMG used the group additivity value of ring(Cyclopropene) or ring(oxirene), a 30 kcal difference. Neither of these groups is likely giving accurate values for the thermo, but the change either shows some indeterminate nature of RMG or that we are losing resonance structures in the simulation with these changes.

I suspect it's an indeterminate behaviour.

How To Reproduce

Look at the logs of the automated regression tests, or (presumably) estimate the thermo of O1[C]=N1 a bunch of times.

Expected Behavior

Thermo of O1[C]=N1 would be consistent.

Installation Information

Describe your installation method and system information.

  • detected by reading regression logs, so whatever is in Travis

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the rmg/nitrogen regression-test logs and repeatedly estimate the thermo of O1[C]=N1, comparing whether ring(Cyclopropene) or ring(oxirene) is selected. Trace the thermo group additivity choice and the related pull-request discussions; done means the species receives consistent thermo and the regression tests no longer report non-identical values.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.