RMG-Py icon indicating copy to clipboard operation
RMG-Py copied to clipboard

Surface auto tree gen support with metal attrs

Open davidfarinajr opened this issue 3 years ago • 6 comments

Motivation or Problem

Adding auto tree gen support for Surface families and improving kinetics estimates based on metal attrs.

Description of Changes

  • modified get_bde method to get energies for metal bonds (X-A) using atomic binding energies from MetalDB
  • modified ArrheniusBM methods to work for surface reactions and created SurfaceArrheniusBM class as subclass of ArrheniusBM
  • added metal attrs to reaction class
  • modified tree descend algorithms to include metal attrs
  • revised tree gen methods to work for surface families
  • created a split_template family method to break up merged template (created by autogen trees) into difference reactant templates
  • added facet to rmg input file, and metal attrs to Kinetics Database that are used when descending kinetics trees to match training reactions or nodes in surface kinetics trees
  • added notebook to estimate A factors for surface reactions

Testing

autogenerated surface families trees here https://github.com/ReactionMechanismGenerator/RMG-database/pull/499 and built CPOX models with different metals and facets for which the appropriate nodes and training reactions are selected based on metal attrs

davidfarinajr avatar Jul 26 '21 16:07 davidfarinajr

This pull request introduces 4 alerts when merging d96097fa5a13e6a09ec3c11567d946be31651b35 into 6932bc8792bc9b4e5f51cfdf5786492954332410 - view on LGTM.com

new alerts:

  • 2 for Unused import
  • 1 for Unused local variable
  • 1 for Variable defined multiple times

lgtm-com[bot] avatar Jul 26 '21 17:07 lgtm-com[bot]

Codecov Report

Merging #2187 (47c4e0b) into main (47c4e0b) will not change coverage. The diff coverage is n/a.

:exclamation: Current head 47c4e0b differs from pull request most recent head 5ed781e. Consider uploading reports for the commit 5ed781e to get more accurate results Impacted file tree graph

@@           Coverage Diff           @@
##             main    #2187   +/-   ##
=======================================
  Coverage   47.21%   47.21%           
=======================================
  Files         104      104           
  Lines       27706    27706           
  Branches     7133     7133           
=======================================
  Hits        13082    13082           
  Misses      13217    13217           
  Partials     1407     1407           

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 47c4e0b...5ed781e. Read the comment docs.

codecov[bot] avatar Jul 26 '21 17:07 codecov[bot]

This pull request introduces 4 alerts when merging 4ce2516aaa5dccfbb768ca53b82f29e0a1f05619 into 6932bc8792bc9b4e5f51cfdf5786492954332410 - view on LGTM.com

new alerts:

  • 2 for Unused import
  • 1 for Unused local variable
  • 1 for Variable defined multiple times

lgtm-com[bot] avatar Jul 26 '21 18:07 lgtm-com[bot]

more as a note to myself, but after the rebase, this passes all py tests locally

mazeau avatar Sep 25 '21 00:09 mazeau

probably doesn't matter too much here, but I get errors with the py tests on discovery

======================================================================
ERROR: Test that generate_thermo_data() works correctly on gaussian PM3.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussianTest.py", line 78, in test_generate_thermo_data
    self.qmmol1.generate_thermo_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 363, in generate_thermo_data
    self.qm_data = self.generate_qm_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 265, in generate_qm_data
    success = self.run()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 100, in run
    return self.verify_output_file()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 170, in verify_output_file
    qm_data = self.parse()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 340, in parse
    qm_data = parse_cclib_data(cclib_data, radical_number + 1)  # Should `radical_number+1` be `self.molecule.multiplicity` in the next line of code? It's the electronic ground state degeneracy.
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/qmdata.py", line 101, in parse_cclib_data
    rotational_constants = (cclib_data.rotcons[-1], 'cm^-1')
IndexError: list index out of range

======================================================================
ERROR: Test that generate_thermo_data() can load thermo from the previous gaussian PM3 run.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussianTest.py", line 94, in test_load_thermo_data
    self.qmmol1.generate_thermo_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 363, in generate_thermo_data
    self.qm_data = self.generate_qm_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 254, in generate_qm_data
    if self.verify_output_file():
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 170, in verify_output_file
    qm_data = self.parse()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 340, in parse
    qm_data = parse_cclib_data(cclib_data, radical_number + 1)  # Should `radical_number+1` be `self.molecule.multiplicity` in the next line of code? It's the electronic ground state degeneracy.
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/qmdata.py", line 101, in parse_cclib_data
    rotational_constants = (cclib_data.rotcons[-1], 'cm^-1')
IndexError: list index out of range

======================================================================
ERROR: Test that generate_thermo_data() works correctly for gaussian PM6.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussianTest.py", line 136, in test_generate_thermo_data
    self.qmmol1.generate_thermo_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 363, in generate_thermo_data
    self.qm_data = self.generate_qm_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 265, in generate_qm_data
    success = self.run()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 100, in run
    return self.verify_output_file()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 170, in verify_output_file
    qm_data = self.parse()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 340, in parse
    qm_data = parse_cclib_data(cclib_data, radical_number + 1)  # Should `radical_number+1` be `self.molecule.multiplicity` in the next line of code? It's the electronic ground state degeneracy.
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/qmdata.py", line 101, in parse_cclib_data
    rotational_constants = (cclib_data.rotcons[-1], 'cm^-1')
IndexError: list index out of range

======================================================================
ERROR: Test that generate_thermo_data() can load thermo from the previous gaussian PM6 run.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussianTest.py", line 153, in test_load_thermo_data
    self.qmmol1.generate_thermo_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 363, in generate_thermo_data
    self.qm_data = self.generate_qm_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 254, in generate_qm_data
    if self.verify_output_file():
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 170, in verify_output_file
    qm_data = self.parse()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 340, in parse
    qm_data = parse_cclib_data(cclib_data, radical_number + 1)  # Should `radical_number+1` be `self.molecule.multiplicity` in the next line of code? It's the electronic ground state degeneracy.
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/qmdata.py", line 101, in parse_cclib_data
    rotational_constants = (cclib_data.rotcons[-1], 'cm^-1')
IndexError: list index out of range

======================================================================
ERROR: Test that Gaussian get_thermo_data() works correctly.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/mainTest.py", line 276, in test_get_thermo_data_gaussian
    thermo1 = self.gauss1.get_thermo_data(mol)
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/main.py", line 224, in get_thermo_data
    thermo0 = qm_molecule_calculator.generate_thermo_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 363, in generate_thermo_data
    self.qm_data = self.generate_qm_data()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 265, in generate_qm_data
    success = self.run()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 100, in run
    return self.verify_output_file()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/gaussian.py", line 170, in verify_output_file
    qm_data = self.parse()
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/molecule.py", line 340, in parse
    qm_data = parse_cclib_data(cclib_data, radical_number + 1)  # Should `radical_number+1` be `self.molecule.multiplicity` in the next line of code? It's the electronic ground state degeneracy.
  File "/home/mazeau.e/Code/RMG-Py/rmgpy/qm/qmdata.py", line 101, in parse_cclib_data
    rotational_constants = (cclib_data.rotcons[-1], 'cm^-1')
IndexError: list index out of range

mazeau avatar Sep 25 '21 01:09 mazeau

This pull request introduces 4 alerts when merging 5ed781e74832ead8876bdcdcc2d8e9b735efaf57 into 47c4e0b16ee274919ec24aa4160ac5e83cc9f0a9 - view on LGTM.com

new alerts:

  • 2 for Unused import
  • 1 for Unused local variable
  • 1 for Variable defined multiple times

lgtm-com[bot] avatar Oct 01 '21 18:10 lgtm-com[bot]

This pull request 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 pull request, otherwise it will automatically be closed in 30 days.

github-actions[bot] avatar Jun 21 '23 22:06 github-actions[bot]