Standardize model chemistry#1940
Conversation
Codecov Report
|
6ffee38 to
a77c15d
Compare
|
This pull request introduces 2 alerts when merging 7fe83c3 into 99d009a - view on LGTM.com new alerts:
|
|
A possible additional attribute to add to the level of theory is solvation. |
8b278b3 to
1334dbe
Compare
|
Thanks for the initial comments @alongd. This is now ready for review. |
e645a1a to
ee8a732
Compare
amarkpayne
left a comment
There was a problem hiding this comment.
The code itself looks really good. I have only a few comments code wise. I might have a few more comments about the big picture--we can discuss offline at our meeting today after I have thought about it some more.
We should also figure out how we want to handle the cases where the software is required (you have the check for making sure that the user specifies it, but how should this affect warning messages/behavior when the software does not match?)
81837c8 to
55d7a96
Compare
Standardize representation of quantum chemistry levels of theory by using hashable classes.
Throw an error if not and include software in the simple representation.
Hashable class instances can act as dictionary keys. Allow such instances to be created when recreating objects from a dictionary representation.
Isodesmic calculations require matching the software exactly, so update the Arkane input file to use LevelOfTheory with software.
467e266 to
eb3e4ff
Compare
Motivation or Problem
Model chemistry definitions in Arkane are not unique because changes in software and options can lead to different results. The goal is to standardize the representation in Arkane and in the RMG database by defining detailed and unique levels of theory to identify the settings used in quantum chemistry calculations.
Description of Changes
Implements two new classes,
LevelOfTheoryandCompositeLevelOfTheory, which are used by Arkane internally instead of model chemistry strings. Arkane input files can still be specified using themodelChemistrysyntax, but using the new level of theory objects is now also possible. Arkane will first try to find an exact match for the specified level of theory in the RMG database (including options like software, solvation, and additional arguments) but will fall back to just matching method and basis if an exact match is not possible (and will print a warning if this is the case).The corresponding database PR ReactionMechanismGenerator/RMG-database#409 updates the database to also use the new level of theory objects. This required some changes to
RMGObjectto enable using hashable objects as dictionary/YAML keys.Testing and Reviewer Suggestions
Unit tests were adapted and should pass. Make some Arkane input files using the new syntax and check that it works as expected.