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_bdemethod to get energies for metal bonds (X-A) using atomic binding energies from MetalDB - modified
ArrheniusBMmethods to work for surface reactions and createdSurfaceArrheniusBMclass 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_templatefamily method to break up merged template (created by autogen trees) into difference reactant templates - added
facetto 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 dataPowered 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.