Skip to content

Code Organization

Max Liu edited this page Aug 18, 2017 · 2 revisions

This page is meant to provide an overview of the major functioning of RMG and why it works that way. This should be a good reference to jumpstart developers' contributions to the project.

The entire RMG project is broken down into a database and python code. These are in separate GitHub repositories since additions of data often don't require code alterations and vise versa. This is not always the case. When using source code, it is best to have up to date versions of both as incompatibilities can arise.

Specific Modules

Here are specific modules that discuss the inner workings of various parts of RMG.

  1. RMG models and mechanism generation
  2. Reactions
  3. Kinetic estimation
  4. Representing Chemical Structures
  5. Thermo estimation
  6. Database structure
  7. Logging and output
  8. Cantherm

What you'll find here

  1. What's happening
    • relationships between classes/objects (inheritance, organization)
    • large overview of algorithm in decision trees
  2. Where is it happening
    • mention location of methods and classes.
    • cite ipynb when used for these concepts
    • aside: Change class docstring if out of date
  3. Why does it function this way
    • any historical knowledge of the topic
    • eg. if changed it would break X; lazy programming
  4. Code examples
    • short examples if not in ipynb