-
Notifications
You must be signed in to change notification settings - Fork 228
database structure
The RMG database stores all the data to estimate thermochemistry and kinetics as well as scripts to assist in converting formats. The files are stored in plaintext, mostly with python extensions and syntax. This allows version control and facile editing (note: the website does not use plaintext database).
The scripts are stored in scripts
and some of their functionality is listed on the RMG User Guide. The data is listed in input
and contains kinetics
, thermo
, transport
, as well as solvation
and statmech
, which are explained in sections below.
To facilitate the reuse of models and addition of kinetics, the database contains 'libraries' which contain external models or user added information. These can allow for more accurate thermo than group additivity of quantum modules and more accurate kinetics than rate rules.
##Database Objects
All our data is stored within database objects. Finish later!
Thermo data can originate from libraries or group additivity, in libraries
and groups
respectively.
Libraries are stored in RMG-database/input/thermo/libraries and define thermochemistry for specific species. Therefore, it uses a molecule
object to represent the species and uses a thermo
object for the data. Thermochemistry from library are assigned to species when RMG creates the object if the entries molecule
object is ismorphic to any resonsnace structures for the species
object. When applying HBI corrections, RMG will use library values for the saturated species if available.
If a library value isn't available, RMG code goes through the group additivity values and corrections, which are stored in RMG-database/input/thermo/groups
. The main Benson groups are stored in group.py
, so each other .py file is an additional correction.
The entries in group.py
use a group
object as its molecular representation since most Benson groups are subgraphs. The data object can either be a thermo
object or a unicode string which is the label
of another entry. If entry A's data
has the label for entry B
, it directs RMG to use the data
object from entry B for the group defined in entry A. This could be repeated several times if entry B itself has a unicode data
attribute. When RMG writes a comment about the thermochemistry, it will list the last entry of the unicode chain, which does not correspond to the subgraph contained in the molecule.
The theory and implementation of Benson group additivity can be read about here