Introduction to RMG
RMG is an automatic chemical reaction mechanism generator that constructs
kinetic models composed of elementary chemical reaction steps using a general understanding of how molecules react. The model parameters (rate constants
and reaction thermodynamics) are estimated using a database and the idea that the
behavior of functional groups is somewhat independent of the molecule(s) containing them. The RMG database consists of two parts: kinetic rate rules and
thermodynamic group additivity values.
RMG is an object-oriented program written in Java, which provides a stable,
robust programming architecture that is easily extended, modified, and improved.
At its core, RMG relies on two fundamental data structures: graphs and trees. The
graphs represent the chemical structures, and the trees represent the databases of
thermodynamic and kinetic data. Currently, RMG can generate reaction mechanisms for species involving carbon, hydrogen, and oxygen, and its mechanisms
can contain many hundreds of species and tens of thousands of reactions. It is
also capable of performing first-order sensitivity analysis on the rate constants
and species thermodynamics.
RMG was originally developed by Dr. Jing Song under the guidance of Prof. William
Green in the Department of Chemical Engineering at the Massachusetts Institute
of Technology. Currently there are several members of the Green group contributing to RMG’s ongoing development. A full list of past and present RMG developers can be found on the Credits page.
Changes
RMG 4.0.1 is a bug-fix release, primarily addressing a problem with liquid phase solvation energy predictions. Changes since RMG 4.0 include:
- Fix a bug predicting thermochemistry of species in solution at temperatures other than 298 K. (Prior versions had an incorrect enthalpy of solvation leading to erroneous temperature dependence, although the Gibbs free energy at 298 K would have been correct).
- Solvation parameter predictions improved for several classes of species.
- Example input files for using the stand-alone Abraham parameter estimator (for solvation predictions) are now provided.
- Seed mechanisms may now contain reactions with up to four products.
RMG 4.0 includes many new features and bugfixes. Changes since
RMG 3.3 include:
- Support for sulfur (divalent) has been added, including many new thermo
groups and reaction families.
- Improved support for automatic MM4 calculations to estimate the
thermochemistry of cyclic molecules, including a new hybrid mode for
reducing the number of MM4 calculations by first checking an existing database
for corrections.
- A new reaction family for R group substitution on ethers has been added.
- RMG can now be constrained to only run pressure dependence for small
molecules.
- Some Fortran modules now run as listener subprocesses to reduce the overhead
of forking new processes, making RMG jobs run quite a bit faster.
- A new method for restarting jobs has been added, via saving of a new
condition file on output with all of the final model core species.
- Some settings can now be optionally controlled using environment variables,
particularly in the setting of output and scratch directories.
- Many new rate rules have been added, corrected, or otherwise improved.
- Many other bugfixes
RMG 3.3 includes a few new features and many bugfixes. Changes since 3.2.1 include the following:
Note
There have been several significant changes to the condition file syntax in RMG 3.3. Condition files created for earlier versions of RMG will not work with RMG 3.3. Please refer to Creating a Condition File Manually for more information on the new syntax.
- Support for simulating liquid-phase systems, including solvation thermochemistry and diffusion-limited kinetics
- Correct negative activation energies predicted by kinetics estimation rules
- An option to specify multiple initial compositions (in addition to multiple temperatures and pressures) has been added
- Intermediate concentrations are written to file during AUTO runs
- The model enlargement algorithm with pressure-dependence now uses species leak fluxes instead of network leak fluxes
- Pruning with pressure-dependence is now working
- Experimental support for MM4 calculations for thermochemistry estimation (requires separate access to MM4 software)
- Cleaner, easier-to-read log information automatically and concurrently printed to the console and saved to file
- Several refinements and bugfixes to the pressure dependence functionality
- A number of various database updates and fixes
RMG 3.2.1 is a minor bug-fix release. Changes since 3.2 include the following:
- Better handling of pressure-dependent reaction network expansion when multiple reaction systems are used by restricting to one expansion per iteration. This could lead to “PDepException: Tried to determine nonincluded isomer with maximum leak flux, but there are no nonincluded reactions, so no isomer can be identified” errors.
- Pruning with pressure-dependence on is now enabled. Only species that have not been explored in any pressure-dependent reaction network are eligible for pruning.
- Only run pressure-dependence calculation when necessary: when one or more fully explored unimolecular isomer wells are present. This makes pressure-dependent mode run much faster.
- Many minor but important bugs fixed in pressure dependence module: subscript errors, etc.
- More detailed error messages when failing to read a reaction library, primary kinetic library, or seed mechanism.
- Some improved kinetics rate rules in the hydrogen abstraction reaction family.
- Clearer log messages when adding reactions from a Reaction Library
- Restart jobs should now be possible with Quantum Mechanics thermochemistry estimation
Changes in RMG 3.2 include the following:
- The RMG_Database folder has been restructured more logically. (PrimaryReactionLibrary and Seed Mechanism specifications in condition files will need updating)
- More accurate thermodynamic quantities from PM3 calculations for cyclic species based on explicit 3D molecule geometries (provided the user has access to GAUSSIAN03 or MOPAC2009)
- Transport property estimation
- New Reaction Library option for considering (but not forcing) reactions not automatically identified by RMG’s reaction templates (The old Primary Reaction Library has been renamed to Primary Kinetic Library.)
- New reaction model pruning option to reduce number of edge species and ease memory limitations.
- New non-negativity option for DASSL simulations. This offers a new way of dealing with NegativeConcentrationException cases.
- New reaction family, 1,2-Birad_to_alkene, for interconversion of alkene (triplet) biradicals and singlet alkenes
- It is possible to specify forbidden structures in the input file.
- Various error messages have been improved to give more helpful information to the user.
- RMG_Dictionary.txt will now be written at every iteration, rather than just the final iteration.
- CHEMKIN input files from each iteration are saved to separate folders
- RMG output file includes timestamp and code revision information.
- RMG stores Restart files. The reading-in of these files allows RMG to restore the conditions (species, reactions, pressure-dependent networks, etc.) of a converged mechanism without having to re-run the entire simulation from scratch.
- Treatment of molecular oxygen has changed significantly, including support for both triplet ground state and singlet; oxygen should now be specified in biradical form rather than the O=O form used previously; see “Representing oxygen” for details
- Various improvements to pressure-dependent network enlargement algorithm
- Fixed writing of reactions with Evans-Polanyi parameters to CHEMKIN input file
- Refinements to values in the database based on literature review.
- No longer falls into infinite loop when the simulation results in an invalid model but RMG cannot identify a suitable action to take to enlarge the model.
- Reservoir state method for evaluating pressure-dependent rate coefficients has been vetted and is now the recommended method for publication-quality models. The modified strong collision method remains available for preliminary exploration of reaction models.
- Pressure-dependence algorithm now defaults to an appropriate grid of temperatures and pressures based on the chosen interpolation model (e.g. Gauss-Chebyshev grid for Chebyshev polynomial model).
- Fixed several bugs relating to enlarging of partial pressure-dependent networks.
- Addressed issues that could lead to trying to simulate an empty reaction model in pressure-dependent cases.
- Fixed IWORK/RWORK renaming on Linux platforms.
- Fixed bug producing unneccessary error message (when using AUTO option) suggesting that the ODE solver failed when an edge flux exceeds user-specified tolerances at t=0.
- Fixed DASPK issues, including variables.dat renaming for multiple reaction systems, ability to use constant concentration, reaction flux evaluation for Lindemann reactions, and sensitivity coefficient calculation.
- Improved robustness for frequency estimation code (“frankie”).
- Changed ODE Solver input file writing to use BufferedWriter to ease memory usage issues when using AUTO with large reaction models.
- Fixed a bug in counting pressure-dependent edge reactions with the AUTO method.
- Fixed calculation of Cp(T=0) and Cp(T=Infinity) for monoatomic and linear species.
- Addressed collider issues, including an ArrayOutOfBoundsException associated with colliders and a collider identification issue.
- Addressed infinite recursion error in getToEndOfAxis that could occur with cyclic cumulenic species.
- Fixed syntax for helium thermochemistry in CHEMKIN input file written by RMG.
- Fixed bugs in counting of core and edge reactions caused by pressure-dependent reactions and irreversible reactions.
- Primary Kinetics Library now correctly identifies matches for molecules with multiple resonance forms
Changes made in RMG 3.1 include the following:
PrimaryReactionLibrary and PrimaryThermoLibrary now both behave as reference libraries from which data are taken (in preference to group additivity estimates), when and if the data are needed.
Seed Mechanism allows the mechanism building to start from a seed mechanism, which is included in its entirety before the simulation starts. (This is how PrimaryReactionLibrary behaved in previous releases.)
New databases: GRIMech 3.0 and PrIMe-recommended thermodynamic values are included
Support for Chemkin’s P-Log format for k(T,P) reporting (in addition to Chebyshev format).
Added additional options for the input file, including:
- User-specified limits for number of carbon / oxygen / radical per species
- User-specified Chebyshev fitting options
Changed many dependent Fortran codes to use standard input and output, rather than writing temporary files to disk.
Reduced run-to-run variations by standardizing the order of averaging of values in the kinetics trees.
Bug Fixes:
- Corrected inconsistencies in edge flux evaluation for pressure-dependent reactions.
- Corrected an error in inert gas normalization for runs with multiple temperatures/pressures
- Fixed DASPK interface
- Fixed bugs in peroxide (ROOR) frequency estimation
- Fixed a bug in the gauche correction database for alkenes
- Fixed issues with duplicate reactions and with Chebyshev fitting in writing CHEMKIN input files
- More frequent garbage collection
Changes made in RMG 3.0 include the following:
New features:
- Pressure-dependent reaction network generation
- InChI generation
- Graphical user interface for input file generation
- Generation of reaction mechanisms for multiple reaction conditions (T,P)
- Automatic time stepping option
- Updated RMG Viewer and Editor (including database editing tools)
Functionality changes:
- On the first step of mechanism generation, only one species is added, rather than adding all edge species
- Thermodynamics estimates for non-cyclic species incorporate certain steric effects (1,5-interactions and gauche interactions)
Bug fixes:
- Fixed bug in symmetry number generation (previously could be underestimated in certain cases)
- Fixed differential equations to correctly treat cases where total number of moles changes