Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UndeterminableKineticsError for [C]1=C=CC#C1 <-> C12[C]=C1C#C2 #116

Closed
rwest opened this issue May 1, 2013 · 8 comments
Closed

UndeterminableKineticsError for [C]1=C=CC#C1 <-> C12[C]=C1C#C2 #116

rwest opened this issue May 1, 2013 · 8 comments

Comments

@rwest
Copy link
Member

rwest commented May 1, 2013

A methyl butanoate job just died after ~2 hours with this:

Exploring isomer C12C(=[C]1)C#C2(16395) in pressure-dependent network #10150

  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/rmg/main.py", line 428, in execute
    self.reactionModel.enlarge(objectsToEnlarge)
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/rmg/model.py", line 575, in enlarge
    newReactions.extend(pdepNetwork.exploreIsomer(newSpecies, self, database))
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/rmg/pdep.py", line 248, in exploreIsomer
    newReactionList = reactionModel.react(database, isomer)
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/rmg/model.py", line 505, in react
    reactionList.extend(database.kinetics.generateReactions([moleculeA], **options))
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/data/kinetics/__init__.py", line 259, in generateReactions
    reactionList.extend(self.generateReactionsFromFamilies(reactants, products, **options))
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/data/kinetics/__init__.py", line 313, in generateReactionsFromFamilies
    reactionList.extend(family.generateReactions(reactants, **options))
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/data/kinetics/family.py", line 1198, in generateReactions
    reactionList.extend(self.__generateReactions(reactants, forward=False, **options))
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/data/kinetics/family.py", line 1420, in __generateReactions
    reaction.template = self.getReactionTemplate(reaction)
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/data/kinetics/family.py", line 1528, in getReactionTemplate
    return self.groups.getReactionTemplate(reaction)
  File "/nics/d/home/rwest/Code/RMG-Py/rmgpy/data/kinetics/groups.py", line 169, in getReactionTemplate
    raise UndeterminableKineticsError(reaction)
rmgpy.data.kinetics.common.UndeterminableKineticsError: (Reaction(reactants=[Molecule(SMILES="[C]1=C=CC#C1")], products=[Molecule(SMILES="C12[C]=C1C#C2")], degeneracy=2, pairs=[[Molecule(SMILES="[C]1=C=CC#C1"), Molecule(SMILES="C12[C]=C1C#C2")]]), 'Kinetics could not be determined. ')
@jwallen
Copy link
Contributor

jwallen commented May 2, 2013

It is worth a look to see why RMG is identifying a reaction that it then cannot generate kinetics for. However, the actual problem is more likely that RMG is even considering this goofy C5H reaction at all. According to the website, we're not applying any sort of ring correction to the thermo of [C]1=C=CC#C1, despite it being a five-membered ring containing two double bonds and a triple bond. (Can you even have a five-membered ring with that many multiple bonds?) Note that RMG-Java and RMG-Py give the same thermo, except the former says the symmetry number is 2 and the latter says it is 1.

@rwest
Copy link
Member Author

rwest commented May 2, 2013

The head ThreeMember node in the ring corrections database is defined as

1 * R!H 0 {2,{S,D}} {3,{S,D}}
2   R!H 0 {1,{S,D}} {3,{S,D}}
3   R!H 0 {1,{S,D}} {2,{S,D}}

with no triple bonds.

Likewise, FiveMember is

1 * R!H 0 {2,{S,D}} {5,{S,D}}
2   R!H 0 {1,{S,D}} {3,{S,D}}
3   R!H 0 {2,{S,D}} {4,{S,D}}
4   R!H 0 {3,{S,D}} {5,{S,D}}
5   R!H 0 {1,{S,D}} {4,{S,D}}

I guess if triple bonds aren't allowed in rings, they should be in a forbidden structures file. But at some point presumably a ring is big enough it could contain a triple bond?

@rwest
Copy link
Member Author

rwest commented May 2, 2013

Starting RMG-Py with the five membered ring, [C]1=C=CC#C1, it doesn't find any problems (at least not quickly).

Starting with the bicyclic C12[C]=C1C#C2 it finds something in Intra_R_Add_Exocyclic then crashes with UndeterminableKineticsError.

My guess is something like the auto-generated reverse template matches the reverse, but the forward template doesn't match the forward?

@rwest
Copy link
Member Author

rwest commented May 2, 2013

I added triple-bonds-in-small-rings to the global forbidden structures file (as we don't apply meaningful ring corrections to them) but then ended up with this:

UndeterminableKineticsError: (Reaction(reactants=[Molecule(SMILES="[C]1=C=CC=C1")], products=[Molecule(SMILES="C12[C]=C1C=C2")], degeneracy=2, pairs=[[Molecule(SMILES="[C]1=C=CC=C1"), Molecule(SMILES="C12[C]=C1C=C2")]]), 'Kinetics could not be determined. ')
> /Users/rwest/Code/RMG-Py/rmgpy/data/kinetics/groups.py(169)getReactionTemplate()

in <KineticsGroups "Intra_R_Add_Exocyclic/groups">

This time it's [C]1=C=CC=C1 reacting to C12[C]=C1C=C2

@rwest
Copy link
Member Author

rwest commented May 2, 2013

This is like issue #69 but for Intra_R_Add_Exocyclic instead of Endocyclic.
These particular cases above are stupid molecules, and should go away with better ring thermo, but I think the general problem is that we defined groups with Cd instead of {Cd,Cdd}.

@faribas
Copy link
Contributor

faribas commented May 2, 2013

@pierrelb I added Cdd atom type to *3 in Intra-R-Add-Enxocyclic reaction family ( similar to what we did before for Intra_R_Add_Exocyclic reaction family), hopefully 'faribas/RMG-database@090141f' fixes bugs in Intra_R_Add_Enxocyclic.

@faribas
Copy link
Contributor

faribas commented May 3, 2013

Two minor syntaxes are fixed 'faribas/RMG-database@50b8357'

@rwest
Copy link
Member Author

rwest commented May 3, 2013

Closed by recent changes to https://github.com/rwest/RMG-database/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants