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

RMG-Py cannot find multiple transition states #142

Closed
connie opened this issue Aug 8, 2013 · 4 comments
Closed

RMG-Py cannot find multiple transition states #142

connie opened this issue Aug 8, 2013 · 4 comments
Labels
Status: Stale This issue is out-of-date and may no longer be applicable

Comments

@connie
Copy link
Member

connie commented Aug 8, 2013

This issue came up after investigations for issue #140 RMG-Py cannot find multiple transition states when reactants and products are identical. For instance in the following reaction between tertiary and primary isobutyl radical we only find one reaction rate (RMG-Java will predict both transition state and generate duplicate reactions):

http://dev.rmg.mit.edu/database/kinetics/reaction/reactant1=1%20C%200%20%7B2,S%7D%20%7B3,S%7D%20%7B4,S%7D;2%20C%200%20%7B1,S%7D;3%20C%200%20%7B1,S%7D;4%20C%201%20%7B1,S%7D;__reactant2=1%20C%200%20%7B4,S%7D;2%20C%200%20%7B4,S%7D;3%20C%200%20%7B4,S%7D;4%20C%201%20%7B1,S%7D%20%7B2,S%7D%20%7B3,S%7D;__product1=1%20C%200%20%7B2,S%7D%20%7B3,S%7D%20%7B4,S%7D;2%20C%200%20%7B1,S%7D;3%20C%200%20%7B1,S%7D;4%20C%200%20%7B1,S%7D;__product2=1%20C%200%20%7B3,S%7D;2%20C%200%20%7B3,S%7D;3%20C%200%20%7B1,S%7D%20%7B2,S%7D%20%7B4,D%7D;4%20C%200%20%7B3,D%7D;

I believe this is due to the reaction degeneracy being increased after checking that reactants and products are identical without regard to different atom labels leading to potentially different reaction templates. (https://github.com/GreenGroup/RMG-Py/blob/master/rmgpy/data/kinetics/family.py#L1437) After the degeneracy is counted, only the very first retained reaction's template gets used to fetch kinetics.

@rwest
Copy link
Member

rwest commented Aug 9, 2013

A better plan would be to fetch kinetics for every match, then group them and increase degeneracy for ones with identical kinetics (same matching nodes) leaving duplicate reactions when necessary (different temperature dependencies)?

@connie
Copy link
Member Author

connie commented Aug 16, 2013

Attempted a preliminary fix here: connie@82b4098, going with keeping the different reaction paths as separate reactions rather than combining the kinetics into an MultiArrhenius reaction like in Java. There's still several issues:

  • How to identify the correct reverse reaction when having multiple TS's.
    My solution is to match the correct reaction pairs- but this only works in
    the case of a bimolecular A+B=C+D reaction. If the reaction is unimolecular,
    the reaction pairs will be the same and the correct path cannot be distinguished.
  • If kinetics are identical, they should be combined through degeneracy, in this
    commit they remain as duplicates.
  • A lot of 'duplicate' reactions are not true transition state differences, but simply matching
    to separate templates due to assymetry like the propene + CH2 = cyclopropane reaction from Degeneracy on asymmetrical groups (1+2_Cycloaddition) #140.

@rwest
Copy link
Member

rwest commented Aug 20, 2013

Any thoughts, @jwallen?

connie added a commit that referenced this issue Jan 5, 2015
…templates.

Preliminary fix for #142

Instead of calculating degeneracies first, find reaction templates after
generating reactions, then combine degenerate reactions only if reaction
templates match. These isomorphic reactions remain separate
(unlike in RMG-Java) in case someday we want to calculate the separate
transition states.  The reactions are added to the core and printed
to chemkin as duplicates.

Issues still remaining:
- How to identify the correct reverse reaction when having multiple TS's.
 My solution is to match the correct reaction pairs- but this only works in
the case of a bimolecular A+B=C+D reaction.  If the reaction is unimolecular,
the reaction pairs will be the same and the correct path cannot be distinguished.
- If kinetics are identical, they should be combined through degeneracy, in this
commit they remain as duplicates.
connie added a commit that referenced this issue Feb 3, 2015
…templates.

Preliminary fix for #142

Instead of calculating degeneracies first, find reaction templates after
generating reactions, then combine degenerate reactions only if reaction
templates match. These isomorphic reactions remain separate
(unlike in RMG-Java) in case someday we want to calculate the separate
transition states.  The reactions are added to the core and printed
to chemkin as duplicates.

Issues still remaining:
- How to identify the correct reverse reaction when having multiple TS's.
 My solution is to match the correct reaction pairs- but this only works in
the case of a bimolecular A+B=C+D reaction.  If the reaction is unimolecular,
the reaction pairs will be the same and the correct path cannot be distinguished.
- If kinetics are identical, they should be combined through degeneracy, in this
commit they remain as duplicates.
@pierrelb pierrelb added the Status: Stale This issue is out-of-date and may no longer be applicable label Aug 28, 2015
@goldmanm
Copy link
Contributor

fixed with #1055

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Stale This issue is out-of-date and may no longer be applicable
Projects
None yet
Development

No branches or pull requests

4 participants