Skip to content

database structure

Nathan Yee edited this page Feb 24, 2017 · 3 revisions

RMG database

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

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

Kinetics.