-
Notifications
You must be signed in to change notification settings - Fork 227
Next Generation RMG Ideas
The purpose of this page is to document ideas for the next generation of RMG software. These include ideas that could potentially be implemented into the current version of RMG as well as innovative ideas that would be hard to implement without a complete rewrite. The ideas on this page could be useful for new students trying to figure out how they can improve RMG or the next jwallen who wants to rewrite RMG from scratch.
Design a custom file format for inputting/outputting mechanisms, in replacement of reaction/thermo libraries, Chemkin files, and Cantera files. The requirements and goals of such a new format would include the following:
- Move away from using Python syntax and loading via an
exec
type command. - Maintain reasonable human readability
- Include RMG generated metadata in a way that can be easily read by RMG
- Fulfill the following roles:
- Reaction and thermo libraries
- Seed mechanisms
- Restart files
- Input for RMG based post-processing including
- Uncertainty/sensitivity analysis
- Mechanism reduction
- Conversion to other file formats such as Chemkin or Cantera
Robust metadata storage would be a key feature of the new format, which is extremely fragile in all of the current formats which rely on comment writing and parsing.
Electron tracking is currently an important part of representation via resonance structures recipes for reaction generation, but it also creates unnecessary difficulties. This idea would try to make RMG behave more like quantum chemistry software, in that electrons are not explicitly part of the molecular structure. The benefit of this would be reducing each chemical species to a single, unique representation, and the challenge would be to teach RMG more about how electrons work.
Potential implementation:
- Eliminate bond orders. Molecular graph would only indicate basic connectivity of atoms.
- Introduce more detailed atom electron attributes, which would indicate electrons in pi bonds, electrons not in bonds (radicals), and lone pairs.
- For reaction recipes, bond formation would entail decrementing one of the electron attributes, followed by updating the electron status of the other atoms in the molecule if necessary.
- Aromaticity would then be handled as a separate flag for both atoms and bonds, based on whatever perception algorithm is used.
- This representation could be converted to a standard representation by perceiving bonds based on the number of bonding electrons in adjacent atoms.