Skip to content

RMG-Py v3.2.0

Compare
Choose a tag to compare
@rwest rwest released this 15 Jul 14:36
· 732 commits to main since this release

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 is the stable result
    • Update CI.yml to allow CI tests on forks
    • Added "phony" target so make test will always remake when run (instead of checking whether the test folder is up to date)
    • Add a unit test to make a sample molecule for every atom type
    • Update CI.yml and environment.yml to allow CI to run on MacOS
    • Add regression testing for RMS's CSTR and constant V ideal gas reactors
    • Bugfix on CI documentation testing so errors are reported as failures
    • Relax tolerance on HinderedRotor.get_enthalpy() test to accomodate slightly different answer likely due to numerical issues
    • Regression tests report failure if a model changes significantly
    • Allow CI testing to be called from other repos
    • Regression tests pass by default and the user must look at the report to see details of comparison
    • Generate summary of regression test results to be displayed on annotation of PR results
  • Miscellaneous

    • Added Docker install
    • Added check to only publish documentation documentation from RMG official fork
    • Fixed RMG-Py 3.1.0 release note bullet formatting
    • Changed installation instructions for WSL users to install graphviz system wide to include all dependencies
    • Changed get_all_solute_data function for RMG-website use in order to apply halogen or radical correction on top of library or GAV
    • Added openSUSE installation instructions
    • Changed default branch to main
    • Changed rmg.py shebang to use python-jl instead of python3 for compatibility with RMS/pyrms
    • Updated ketoenol template image to 1,3 sigmatropic rearrangement
    • Updated 2+2_cycloaddition images in documentation
    • Added licensing information to the README file
    • Updated installation instructions with main instead of master branch, latest Anaconda link, and ssh instead of https clone from github
    • Added support for Sticking Reactions in HTML reports
    • Added reminder in documentation to activate rmg_env before making tests
    • Check that family tree is not autogenerated before calling add_rules_from_training and fill_rules_by_averaging_up
    • Added warning to not to call add_rules_from_training and fill_rules_by_averaging_up on ATG trees, and return statement before error
    • Replaced BurkeH2O2 library with PrimaryH2O2 in relevant RMG examples
    • Added instructions to Documentation for fixing libmkl_ts.so.2 ImportError
    • Added new RMG-database paper to cite https://pubs.acs.org/doi/10.1021/acs.jcim.2c00965
    • Added .bib file for easy citation
    • Updated RMG-Py install instructions to remove old Julia instructions and to use mamba solver
    • Use conda-forge ncurses for compatibility with docker
    • Use conda-forge pyjulia instead of customized RMG channel version for better standardization
    • Update Cantera version requirement to 2.6
    • Upgrade to OpenMOPAC to fix license issues
    • Updated list of developers
    • Added Jupyter Notebook example for simulating and analyzing superminimal model
    • Robot automatically marks issues and PR's as stale after 90 days of inactivity and closes them after 30 more days of inactivity

What's Changed

Summary of pull requests generated automatically by GitHub.

New Contributors

Full Changelog: 3.1.0...3.2.0