RMG-Py
RMG-Py copied to clipboard
Surface auto tree gen support with metal attrs
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 createdSurfaceArrheniusBM
class as subclass ofArrheniusBM
- 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
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
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
@@ 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.
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
more as a note to myself, but after the rebase, this passes all py tests locally
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
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
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.