Releases: ReactionMechanismGenerator/RMG-Py
RMG-Py v3.3.0
Releases:
- Source code on GitHub.
git clone --branch v3.3.0 --depth 1 https://github.com/ReactionMechanismGenerator/RMG-Py.git
- Conda binaries on CondaForge.
conda create --name rmg_330 'rmg::rmg==3.3.0'
- Docker on DockerHub
docker pull reactionmechanismgenerator/rmg:3.3.0
What's Changed
Software Improvements
RMG-Py Itself
- Python 3.9 by @JacksonBurns in #2741
- Removing the excessive debug comment by @MichaelGeuking in #2102
- Conversion from nose to pytest by @rwest in #2516
- Modified main.py script to include TROE reactions in the violators log by @PoojaNem in #2614
- Replace a few packages maintained by us to their conda-forge version by @xiaoruiDong in #2624
- Switch
muq
,lpsolve55
, andRingDecomposerLib
fromrmg
toconda-forge
by @jonwzheng in #2671 environment.yml
Unblocking Python 3.11 - rdkit to conda-forge channel, remove chemprop for now by @JacksonBurns in #2553- Make chemkin read of transport and thermo files more robust by @sevyharris in #2643
- Add documentation about
speciesCuttingThreshold
by @donerancl in #2601 - Fix Failing Joback Method Unit Test by @JacksonBurns in #2682
- Load a kinetic library not in the RMG database by @alongd in #2663
- Draw reversible arrow if reaction is reversible by @sevyharris in #2693
- Ignore more example output files in git. by @rwest in #2822
- Make RMG-Py
conda
Work Again 🎉 by @JacksonBurns in #2820 - fix typos by @KnathanM in #2670
- update user and developer installation instructions to point towards miniforge by @JacksonBurns in #2719
- Add and improve to_cantera methods for conversion to in-memory Cantera objects by @rwest in #2700
- Add details to thermo comments. by @rwest in #2788
- A note about installing developer version from Docker. by @rwest in #2806
Bug Fixes
- When loading all reaction libraries, only process "reactions.py" files. by @rwest in #2513
- Fix
pytest
Discovery Bug (FooTest vs. TestFoo), Add Missing Tests, Fix Generator Tests by @rwest in #2525 - Minor: Added quotation marks to Pt111 in the docs by @alongd in #2529
- Fix Failing CI because of
cclib
by @JacksonBurns in #2535 - Update RMSE/MAE average formula for BAC cross validation by @hwpang in #2538
- Fix a logical short circuit in a test expression by @munahaf in #2542
- FIX: Updated logical expression to remove short circuit by @fazledyn-or in #2555
- Fix CC smiles by @xiaoruiDong in #2545
- changing forbidden groups documentation by @Nora-Khalil in #2561
- exempt announcements from being closed as stale by @JacksonBurns in #2565
- Update uncertainty SI when averaging ThermoData by @hwpang in #2589
- Julia restriction by @calvinp0 in #2609
- changed typo from pydas.daspk to pydas.dassl #2070 by @Julian-Ufert in #2615
- restrict newer versions of cclib by @ChrisBNEU in #2638
- Remove duplicated test data directory by @rwest in #2644
- FIx Handling of Initial Species with Seed Mechanisms by @mjohnson541 in #2653
- add check for all zeros in thermo comparison by @sevyharris in #2658
- Better debugging messages for database errors. by @rwest in #2661
- Send P in SI units to Chebyshev.fit_to_data() when reversing a rate by @alongd in #2662
- Draw Hydrogen bonds (again) by @rwest in #2734
- Fix library reaction barrier heights for linear scaling by @sevyharris in #2729
- Fix database issues with loading new kinetic libraries by @jonwzheng in #2753
- Update comment parser for autogen trees by @sevyharris in #2787
New Features (and their fixes)
Electrochemistry 🎉
- Electrochemistry! (finally) a.k.a. RMG-electrocat by @JacksonBurns in #2598
- Fix bug in electrons initialization for depository reaction data by @jonwzheng in #2775
Automated Fragment Modeling
- Remove label in adjlist before detecting cutting label by @hwpang in #2519
- Add regression input file for fragment + simple reactor and regression test for fragment + RMS reactor by @hwpang in #2571
- Compatibility of
regression.py
with fragment by @hwpang in #2574 fragment.py
: refactoring, patches, and compatibility with RMS by @JacksonBurns in #2413- Add Fragment Reattachment Example Notebook by @donerancl in #2585
- Fix Fragment Resonance Structure Bug by @donerancl in #2647
- Fix AFM fragment crash in LiquidReactor by @Kyamaguchi16 in #2813
Surface Catalysis
- Doc surf rxns by @ChrisBNEU in #2497
- correcting bidentate adsorption rate constant by @bjkreitz in #2533
- fix Kc for bidentate rxns by @bjkreitz in #2554
- Group Structures for Complex Surface Representations by @mjohnson541 in #2618
- Patch for surface regression diffmodels by @sevyharris in #2656
- Add surface combustion example for regression testing by @sevyharris in #2514
- adding resonance for adsorbates by @bjkreitz in #2511
AECs and BACs
Arkane
- Add keyword "HF=" to parse electronic energy by @JintaoWu98 in #2586
- resolved issue #2266 by @Julian-Ufert in #2651
- Allow scratch dir as input for arkane symmetry calculation by @hwpang in #2691
- Change method for loading energies from Gaussian log files to regex search to avoid errors by @donerancl in #2595
- updating 'rotconsts' ref to be compatible with cclib v1.8+ by @ChrisBNEU in #2639
- Process monoatomic molecules in Arkane's Orca ESS adapter by @alongd in #2709
- Parse RS2C (CASPT2) energy in Molpro by @alongd in #2711
- Fxi UnboundLocalError: local variable 'e_electronic_with_corrections' referenced before assignment by @alongd in #2756
- Fix rotational constants in Gaussian files listing ****s by @sevyharris in #2761
- Orca parser fixup by @kfir4444 in #2739
- Molpro f12a by @alongd in #2771
- Fix CCSD(T)-F12 energy parsing by @shihchengli in #2816
Deprecations
- Remove kinetic group additivity methods from code and documentation by @jonwzheng in https://github.com/Re...
RMG-Py v3.2.0
A note about timing and binaries:
Release 3.2.0 was tagged in commit e60d346 on August 8, 2023.
Conda binaries were never built for it (we couldn't) but it was released via DockerHub and can be accessed by docker pull reactionmechanismgenerator/rmg:3.2.0
.
The corresponding "release" was not made on the GitHub platform until July 15, 2025, almost 2 years later.
What's changed
Release notes written manually in 2023:
-
RMG-Py
- Transport: Added halogens transport corrections to boiling point when estimating critical properties using group additivity
- Updated solvation thermo GAV method to use more groups
- Made it optional to generate_resonance_structures when loading species dicts
- Added filter so radical/lone pair/formal charge is not added to surface site when generating resonance structures
- Forbid surface bidentate vdW species
- Add Transitory Edge Analysis species selection algorithm
- Added get_react_thermo function to avoid deepcopy
- Added decay framework for handling species RMG templates think exist, but really aren't wells
- Added check to prevent multiple surface bonds from forming through a single adatom
- Added multidentate adsorption correction for thermo estimation
- Added error checks to make MOPAC calculations more robust
- Added features to preserve atom order and template labels when generating reactions
- Added coverage dependent effects to surface kinetics
- Added support for halogen families in autogen tree script
- Enabled pyrms for RMG Simulations and Edge Analysis
- Added Liquid-Surface Reactor for RMG Electrocat
- Added support for forbidden structures, more general than forbidden molecules
- Removed hard-coded template matching code for Bimolec hydroperoxide decomposition
- Added support for 2-parameter Troe reactions, only had 3-parameter Troe before
- Included noncyclic long distance GAV correction for halogen regardless of its existence in the cycle
- Added support for pdep networks with halogens
- Added atom labels to molecule to_group method in order to keep the atom labels during conversion
- Moved rmgrc to template file so user's settings won't be overwritten every pull from RMG-Py
- Implemented two backup conformer embedding algorithms for robustness
- Added Nitrogen groups to transport
- Removed check for adsorbate getting adsorbed again which prevents Surface_Dissociation_to_Bidentate family
- Modified the liquid reactor to be able to simulate as CSTR, semi-batch, and/or vapor liquid mass transfer interface
- Added fragment code to rmgpy/molecule
- Added PDEP improvements: simulation least squares methods and the Georgievskii et al. 2013 CSE variant to Arkane
- Allow users to load thermo or kinetic libraries from a user-specified location
- Add radical flux tolerance
- Improved kH estimation code for solute
- Allow irreversible PDEP reactions by setting Keq=inf
- only calculate frequency and x in get_partition_function if semiclassical correction is needed
- Implemented deadend radical species selection algorithm
- Enable Metal, Facet, site and terrace specification in Molecule
- Increase species label max length for chemkin to avoid S(14567) style species
- Don't replace PDep kinetics of a library reaction
- Added solvation to surfaces
- Added some charge transfer reactions
- Added lithium
-
Auto Generated Trees
- Enabled estimator to ascend autogenerated rate tree if uncertainty is too high in a lower node
- Made some major improvements to automated tree extension generation and the cascade algorithm
- Added support for quadruple bonds in auto tree generation
- Added binding energies for N-S and C#S
- Removed hard-coded special treatment for Peroxyl Disproportionation family during template matching
- Increased ArrheniusBM fitting temperature upper limit to 2000K for RMG-database rate trees
- Skipped number of products check for ATG tree generation of Intra_R_Add_Endocyclic and Intra_R_Add_Exocyclic
-
RMS
- Add Transitory Edge Analysis
- Added surface reactions to RMS yaml format
- Updated developer installation instructions to use main RMS branch
- Add comment as input to to_rms() function
- Change RMS to use keyword variables to avoid twin PR with RMG whenever RMG changes struct
-
Arkane
- Added check for convergence and other common errors in QM parsers
- Updated the documentation that tabulates which levels of theory are supported by Arkane
- Read actual scan angles for rotor calculations
- Corrected Fourier fitting in torsion.pyx
- Added Psi4 ESS adapter to Arkane
- Added commit strings for RMG-Py and RMG-database to Arkane logs
- Added BAC confidence interval estimates to Arkane logs
- Added leave-one-out cross-validation for evaluating BAC fits
- Enabled parsing of scan log files with linear bend (something like L 1 2 3 B)
- Enabled assignment of PES (angles vs energies) directly in the Arkane input file
- Added a readme file for Arkane
- Updated QChem parser to only return the negative frequency from the last frequency block instead of the first
- Added more unit tests
- Save meaningful reaction label for PDEP reactions when creating RMG library
- Added more examples
- Added Arkane citation info: https://doi.org/10.1002/kin.21637, https://doi.org/10.1021/acs.jcim.2c00965
- Allow RMG to read Arkane YAML files through the RMGObject even if they have mol or aux keywords
-
Bugfixes
- Added check for multiplicity of reverse products if the family template reactants have multiplicity constraints
- Added check for vdW multiplicity constraints in forward direction
- Added check to see that empty surface site template group only matches empty surface site structure (and not vdW species with empty site)
- Fixed regex bug in checking multiplicity of adjacency list
- Fixed bug where RMG can output mechanisms in which two species have the same name
- Added QM fallback to ML or GAV in case of bad conformer ID error from rdkit
- Fixed many broken links in documentation
- Fixed species missing metal attribute error
- Fixed some automated tree generation parallelization bugs
- Changed tree generation get_training_set method to use deepcopy to clear atom labels and to parse out the metal from the entry
- Added a save_order attribute to some methods to preserve atom order in cases that need it
- Fixed load chemkin function to allow extended elements and species that start with digits
- Handle string data properly when averaging children solute
- Fixed bug in get_w0 where a_dict didn't match the molecule because it was made before the molecule was deepcopied
- Added check for pdep net reactions when removing species to prevent forbidden species from ending up in net reactions
- Fixed bug where add_atom_labels_for_reaction mislabels reactants if family is its own reverse
- Fixed bug where save_training_reactions occasionally mixes up atom labels
- Added Ctc atom type to prevent RMG from crashing when trying to make [C+]#[C-] molecule, which was then added to the forbidden structures
- Fixed bug where generate_resonance_structure does not preserve atom when keep_isomorphic=False and save_order=True
- Fixed bugs related to RMS object construction, particularly Multi/Pdep/Arrhenius and falloff
- Added check to always draw CO as 'CO' instead of 'OC'
- Converted ThermoData object to a NASA object for compatibility with RMS
- Corrected pyrms core/edge species/reaction handling for phase systems
- Fixed incorrect reading in load_chemkin_file for surface species with site density specified
- Added properties so group can be pickled without losing important information like ring membership
- Fixed bug where atom map changes even if save_order=True
- PDEP networks update before writing/filtering to avoid differences in barrier energy corrections between networks
- Check for debug mode so rms can be imported in debug mode
- Fixed group property has_wildcards to avoid AttributeError
- Fixed several calls missing the 'r' at the start of regex pattern string
- Fixed Fragment count_internal_rotors and is_atom_in_cycle attribute errors
- Added missing term in Troe kinetics formula
- Fixed some broken links in documentation
- Change cython variables from cpdef to cdef to avoid warnings
- Updated load_transport_file to skip any species in the transport file that's not in the species dictionary instead of crashing
- Fixed CI error "Unable to dlopen(cxxpath) in parent! cannot open shared object file: File name too long"
-
Testing
- Updated reference number of reactions for Arkane test_reactions unit test
- Changed molecule for rmgpy/data/thermoTest.py test_identifying_missing_group test because group is no longer missing
- Added continuous integration test for links in documentation
- Changed kinetics database tests to look for auto_generated tag instead of the hardcoded family list
- Updated rmg test data with new 2+2 cycloaddition species and reactions
- Remove cti file generation from regression tests to avoid Cantera IO error
- Added tests to check number of reactants and products defined in ATG rate rules
- CI is now done with mamba to drastically reduce runtime
- Move regression testing into main CI.yaml
- Simplify condition checking for scheduled vs pushed CI
- Remove redundant step creating stable_regression_results dir for running on a schedule or push to main because it already i...
RMG-Py v3.1.0
RMG-Py Version 3.1.0
Date: April 23, 2021
We recommend creating a new conda environment using the latest environment.yml
as many dependencies have changed, and upgrading an existing environment is
always troublesome.
-
RMG-Py
- Added support for Bromine
- Added improved method to calculate temperature dependent solvation free energy
- Made Rank 1 accuracy correspond to 0.2 kcal/mol instead of 0 kcal/mol
- Improvements to Group Additivity comments, in particular adding missing group comments
- Added support for trimolecular units in ArrheniusBM fits
- Improvements to profiling
- Use kekulized structures for transport estimation
- Automatic tree generation script improvements
- Properly short circuit is_isomorphic when strict=False
- Added block for specifying species tuples to react when starting an RMG run
- Improve ArrheniusBM fitting to a single reaction
- Improvements in bidentate thermochemistry estimation
- Added new surface attributes for metals and facets
- Added support for Phosphorus
- Enable use LSRs to scale thermo from different metals and enable proper
use of training reactions from different metals - Added maximumSurfaceSites constraint
-
Arkane
- Added frequency scaling factors for apfd/deef2tzvp and wb97xd/def2svp
- Kinetics and pdep sensitivities additionally saved in YAML format
- Enable automatic isodesmic reaction generation
- AECs, BACs and frequency scaling factors moved from Arkane to RMG-database
- Added functionality for Petersson and Melius BAC fitting using Arkane and
the reference database - Enabled two parameter Arrhenius fit option
- Added functionality for fitting AECs
- Added classes to standardize model chemistry definitions
- Use adjlists instead of smiles when saving
-
Bugfixes
- QMTP updated to work with g16 executable
- Fixed various Sticking Coefficient bugs
- Fixed issues with Surface Arrhenius reactions written in the reverse being converted
to ArrheniusEP instead of SurfaceArrheniusBEP - Fixed NaN handling in the explorer tool's steady state solve
- Fixed determine_qm_software for Orca
- Fixed bug where elementary_high_p library reactions with more than the maximum number of atoms for pdep
never entered the edge - Fixed bug related to pdep networks having sources not contained in the core
- Fixed various profiling bugs
- Fixed issue with indexing when merging models
- Fixed bug with ranged liquid reactors
- Fixed bug with loading of autogenerated trees in Arkane
- Fixed bug related to collision limit violation checks in LiquidReactor
- Fixed bug related to Pmin and Pmax definition in SurfaceReactor
- Fixed bugs in global uncertainty analysis for LiquidReactor
- Fixed bug related to the units of reverse rate constants for reactions involving surface species
- Fixed bug in Molecule isomorphism where it would simply assume the given initial map was correct
- Remove deprecated matplotlib warn keyword
- Fixed bug related to reading Chebyshev forms in Chemkin files
- Fixed reference concentration for surface species when calculating Kc
- Fixed issue with the reaction generation using the reversee of Surface_ElleyRideal_Addition_MultipleBond
- Fixed bug with adjlist multiplicitly line being mistaken as the species name
- Fixed bug with the library to training notebook
- Remove temporary seed mechanisms if they exist from a previous run
-
Miscellaneous
- Modified find_parameter_sources_and_assign_uncertainties to regenerate chem.inp as needed
- Added option to save atom order when labeling template reactions
- Added option to ignore atom type errors when creating molecule objects
- Enable use of critical_distance_factor in from_xyz
- Improved SIGINT handling when calling lpsolve
- Enable H-bond drawing
- Improvements to debug messages
- Updated dependencies cclib and OpenBabel
Note that the upgrade to OpenBabel v3+ will change the interpretation
of some ambiguous SMILES strings that use the lower-case aromatics notation.
Although we think the new interpretation is not wrong, it might be different
from previous versions, so take care.
RMG-Py v3.0.0
This release represents a major milestone in RMG development and includes many backwards-incompatible changes, most notably Python 3 compatibility and major API changes. Users switching to RMG 3 will need to create new conda environments and update any scripts which access the API. We recommend using the futurize
script from python-future for updating scripts for Python 3 and the provided rmg2to3.py
script for updating scripts for RMG 3.
Python 3 #1724
- RMG is now compatible with Python 3.7 and newer
- RMG v2.x versions will no longer be supported
- API changes
- Method, function, and argument names have been standardized to use snake_case across RMG and Arkane
- Input file related code was not changed, in order to continue support for existing syntax
- Conversion script has been provided to aid transition (scripts/rmg2to3.py)
- Standardized submodule names in the rmgpy.tools module #1794
- Accompanying changes
- Reduction and scoop_framework modules have been removed
- New/updated hash and comparison methods for Species/Molecule/Atom/Bond classes
- DDE thermochemistry estimator has been replaced by chemprop
- Update example IPython notebooks #1735
- Update global uncertainty module to work with MUQ 2 and Python 3 #1738
- Miscellaneous clean up and bug fixes following transition #1741, #1744, #1752, #1759, #1785, #1802, #1798, #1799, #1808
Arkane
- Improvements and refactoring of job output file creation and content #1607
- Fix kinetics fitting bug #1672
- Improvements to automatic network exploration tool #1647
- Support for ND classical and semi-classical rotor calculations #1640, #1849
- Support for 2D quantum mechanical rotor calculations using Q2DTor #1640
- Support for providing absolute file paths #1685
- Output RMG-style libraries #1769
- Check for error termination in Gaussian log files #1766
- Support for parsing Orca log files #1749
- Support for parsing MP2, double hybrid DFT, CCSD, and CCSD(T) energies from Gaussian log files #1815
- Support for TeraChem log files #1788
- Miscellaneous bug fixes #1810
New features and other additions
- Additional options for heterocycles in MLEstimator #1621
- Automatic tree generation algorithm implementation completed #1486, #1675, #1848
- New simulation restart approach using seed mechanisms (old pickle-based method removed) #1641
- Added new MBSampledReactor type for simulating molecular beam experiments (does not support model generation) #1669
- Improvements to group additivity thermo estimates for aromatics and sulfur species #1731, #1751
- Improvements to solvation correction determination with multiple resonance structures #1832
- Add support for reading and writing extended element syntax in Chemkin NASA polynomials #1636
- Add support for fitting negative Arrhenius rates (found in MultiArrhenius data) #1834
Bug fixes
- Fix numpy rcond usage to restore support for older numpy versions #1670
- Fix bug with duplicate library reactions when using RMG generated seed mechanisms #1676
- Move parse_command_line_arguments to facilitate importing in binary package #1717
- Fix issues with is_identical_to methods of kinetics models #1705
- Fix cython issue with make_object definitions #1817
- Fix issue with estimating solvation corrections for radicals #1773
- Fix parsing of certain types of RMG generated reaction comments #1842
- Fix identifier generation for surface species using OpenBabel #1842
- Fix mole fraction normalization for SimpleReactor #1809
- Fix permissions error when writing seed mechanisms in WSL #1796
- Fix issue with restarting from job without reaction filters #1847
Other
- Improvements to mergeModels.py script #1649
- Miscellaneous performance improvements #1677, #1765,
- Raise errors when NaN is encountered in solver #1679
- Allow sulfur species to have valence 12 in resonance algorithm #1751
- Add support for maxproc argument to generate_reactions module #1780
- Display atom index when drawing groups #1758
- Update sensitivity example #1805
- Update commented input file #1806
- Generate reverse reaction recipes in reverse order of the forward recipe #1829
- Add iodine to Chemkin elements list #1825
- Remove unnecessary duplicate checking for seed mechanisms #1824
- Organize examples for running RMG scripts #1840
- Increase RDKit version requirement to avoid memory leak #1851
- Logging changes #1721, #1755
- Documentation updates #1680, #1709, #1767, #1781, #1784, #1807, #1845
Thanks to all contributors: ajocher, alongd, amarkpayne, cgrambow, dranasinghe, hwpang, kspieks, goldmanm, mazeau, mjohnson541, mliu49, oscarwumit, rwest, rgillis8, sarakha, sudoursa, xiaoruiDong, yunsiechung, zjburas
RMG-Py v2.4.1
-
Bugfixes
-
Arkane
-
Miscellaneous
RMG-Py v2.4.0
- Heterogeneous catalysis!
- Arkane
- Automatically detect rotor symmetry #1526
- Introduce new YAML files for storing and loading species statmech data #1402, #1551
- Don't create species dictionary file if there are no structures #1528
- Improvements to network explorer tool #1545
- Improved class inheritance for quantum log file classes #1571
- Automatic determination of optical isomers and symmetry using
symmetry
package #1571 - Parse CCSD(T) energies from Molpro output #1592
- Automatically determine molecule linearity #1601
- Determine frequency scaling factor based on geom/freq method rather than sp method #1612
- Improve logging related to energy barriers #1575
- Ensure that translational mode is calculated for atoms #1620
- Miscellaneous features
- New
enumerate_bonds
method of Molecule to generate dictionary of bond types #1525 - Introduce
RMGObject
parent class to support YAML dumping and loading #1402, #1540 - Add support for fluorine atomtypes #1543
- Introduce
ArrheniusBM
class for Blower-Masel kinetics #1461 - Allow defining and using co-solvents for solvent libraries #1558
- Introduce
strict
option to perform isomorphism between species/molecules while ignoring electrons and bond orders #1329 - Molecule and Species objects can be instantiated by providing
SMILES
orInChI
argument directly, and the identifiers can be accessed via theSMILES
andInChI
attributes #1329 - Parallelization has been completely refactored using Python multiprocessing module in replacement of scoop, currently supports parallel reaction generation and QMTP #1459
- Improvements to usability of uncertainty analysis functionality #1593
- New
- Bug fixes
- Various fixes for supporting mono-atomic molecules in Arkane #1513, #1521
- Ensure
keras_backend
is set consistently #1535 - Fix handling of disconnected graphs in VF2 isomorphism algorithm #1538
- Ignore hydrogen bonds when converting to RDKit molecule #1552
- Other miscellaneous bugs #1546, #1556, #1593, #1600, #1622
- Backward incompatible changes
- Hydrogen bonds are now order 0.1 (instead of 0) #1542
- New dependencies
- Other
- Windows binaries are no longer officially supported. The new recommended way to use RMG on Windows computers is via a virtual machine or through the Linux subsystem. See documentation for updated installation instructions. #1531, #1534
- Documentation updates #1544, #1567
- Logging/exception improvements #1538, #1562
- PEP-8 improvements #1566, #1592, #1596
- Solver output files (png/csv) now report moles instead of mole fractions #1542
- Replace global RMGDatabase object if the database is reloaded #1565
- Print ML generated quote upon completion of RMG jobs #1573
- Infrastructure for automatically generated reaction rate trees #1461
- Testing related changes #1597, #1599
- Updates to example Jupyter notebooks #1541, #1593
RMG-Py v2.3.0
-
Arkane (formerly CanTherm):
- CanTherm has been renamed to Arkane (Automated Reaction Kinetics And Network Exploration)
- New network exploration functionality using RMG-database
- Support for all elements has been added for reading quantum output files
- New supporting information output file with rotational constants and frequencies
- Known thermo and kinetics can be provided in addition to quantum information
- Improve general user experience and error handling
-
New machine learning thermo estimator
- Estimate species thermochemistry using a graph convolutional neural network
- Estimator trained on quantum calculations at B3LYP and CCSD(T)-F12 levels
- Currently supports C/H/O/N, with an emphasis on cyclic molecules
-
Resonance:
- New pathways added for lone-pair multiple-bond resonance, replacing
two pathways which were more specific - New pathways added for aryne resonance
- Aromatic resonance pathways simplified and refactored to use filtration
- Kekule structures are now considered unreactive structures
- New pathways added for lone-pair multiple-bond resonance, replacing
-
Miscellaneous changes:
- Isotope support added for reading and writing InChI strings
- New branching algorithm for picking up feedback loops implemented (beta)
- Global forbidden structure checking is now only done for core species for
efficiency, which may lead to forbidden species existing in the edge - Minor improvements to symmetry algorithm to fix a few incorrect cases
-
Bug fixes:
- Fixed issue where react flags were being reset when filterReactions was
used with multiple reactors, resulting in no reactions generated - File paths for collision violators log changed to output directory
- Fixed bug in local uncertainty introduced by ranged reactor changes
- Fixed bug with diffusion limitation calculations for multi-molecular reactions
- Various other minor fixes
- Fixed issue where react flags were being reset when filterReactions was
RMG-Py v2.2.1
This release is minor patch which fixes a number of issues discovered after 2.2.0.
-
Collision limit checking:
- RMG will now output a list of collision limit violations for the generated model
-
Fixes:
- Ambiguous chemical formulas in SMILES lookup leading to incorrect SMILES generation
- Fixed issue with reading geometries from QChem output files
- React flags for reaction filter were not properly updated on each iteration
- Fixed issue with inconsistent symmetry number calculation
RMG-Py v2.2.0
-
New features:
- New ring membership attribute added to atoms. Can be specified in group adjacency lists in order to enforce ring membership of atoms during subgraph matching.
- Reactors now support specification of T, P, X ranges. Different conditions are sampled on each iteration to optimally capture the full parameter space.
- New termination type! Termination rate ratio stops the simulation when the characteristic rate falls to the specified fraction of the maximum characteristic rate. Currently not recommended for systems with two-stage ignition.
- New resonance transitions implemented for species with lone pairs (particularly N and S containing species). A filtration algorithm was also added to select only the most representative structures.
- Formal support for trimolecular reaction families.
- New isotopes module allows post-processing of RMG mechanisms to generate a mechanism with isotopic labeling.
-
Changes:
- Library reactions can now be integrated into RMG pdep networks if the new elementary_high_p attribute is True
- Library reactions may be duplicated by pdep reactions if the new allow_pdep_route attribute is True
- Jupyter notebook for adding new training reactions has been revamped and is now located at ipython/kinetics_library_to_training.ipynb
- Syntax for recommended families has changed to set notation instead of dictionaries, old style still compatible
- Ranking system for database entries expanded to new 0-11 system from the old 0-5 system
- Collision limit checking has been added for database entries
-
Cantherm:
- Improved support for MolPro output files
- Added iodine support
- Automatically read spin multiplicity from quantum output
- Automatically assign frequency scale factor for supported model chemistries
- Plot calculated rates and thermo by default
- New sensitivity analysis feature analyzes sensitivity of reaction rates to isomer/TS energies in pdep networks
-
Fixes:
- Properly update charges when creating product templates in reaction families
- Excessive duplicate reactions from different resonance structures has been fixed (bug introduced in 2.1.3)
- Fixed rate calculation for MultiPdepArrhenius objects when member rates have different plists
-
A more formal deprecation process is now being trialed. Deprecation warnings have been added to functions to be removed in version 2.3.0:
- All methods related to saving or reading RMG-Java databases and old-style adjacency lists
- The group additivity method for kinetics estimation (unrelated to thermo group additivity)
- The saveRestartPeriod option and the old method of saving restart files
RMG-Py v2.1.9
-
Cantherm:
- Atom counts are no longer necessary in input files and are automatically determined from geometries
- Custom atom energies can now be specified in input files
- Removed atom energies for a few ambiguous model chemistries
- Add atom energies for B3LYP/6-311+g(3df,2p)
-
Changes:
- Refactored molecule.parser and molecule.generator modules into molecule.converter and molecule.translator to improve code organization
- SMILES generation now outputs canonical SMILES
- Molecule.sortAtoms method restored for deterministic atom order
- PDep reactions which match an existing library reaction are no longer added to the model
-
Fixes:
- Fix issue with reaction filter initiation when using seed mechanisms