Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] Update outdated docs, wiki, and contributor guidelines #2703

Merged
merged 35 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
e9ea2aa
initialize contribute readme file
jonwzheng Aug 6, 2024
39a0893
remove outdated info from faq docs
jonwzheng Aug 6, 2024
0cd9f4d
update credits documentation author list
jonwzheng Aug 6, 2024
697eab1
update dependencies documentation
jonwzheng Aug 6, 2024
553a0db
update kinetics database to point to RMG website rather than include …
jonwzheng Aug 6, 2024
9a12aea
fix typo in rmg thermo documentation
jonwzheng Aug 6, 2024
f78181e
update arkane credits list
jonwzheng Aug 6, 2024
6c2113a
change credits to point to CITATIONS.bib
jonwzheng Aug 8, 2024
a795a76
add disclaimer to docs to give rmg website a few minutes to load
jonwzheng Aug 8, 2024
bd9cd92
update FAQ and dependencies with code review comments
jonwzheng Aug 8, 2024
9a472dc
polish docs formatting
jonwzheng Aug 9, 2024
26e25cf
Apply suggestions from code review
jonwzheng Aug 9, 2024
0c1f553
apply review comments; adjust credits
jonwzheng Aug 9, 2024
d31796f
add Representing Chemical Structures from wiki to Species Representat…
jonwzheng Aug 12, 2024
0eb5e44
include link to conda official guide
jonwzheng Sep 6, 2024
bc1a453
docs - update kinetics estimation page with info from wiki
jonwzheng Sep 9, 2024
28f9f2c
docs - format overview of features with bolding
jonwzheng Sep 9, 2024
8c80d28
docs - add logging information
jonwzheng Sep 9, 2024
decb23d
beautify docs formatting
jonwzheng Nov 13, 2024
f9d4565
additional beautifying docs
jonwzheng Nov 13, 2024
57277b6
add dynamicsTimeScale and ignoreOverallFluxCriterion to docs
jonwzheng Nov 13, 2024
2ced105
fix docs formatting for advanced setting
jonwzheng Nov 13, 2024
373d317
fix typo in RMG user's guide (see issue #2165)
jonwzheng Nov 13, 2024
758e503
docs: address code review
jonwzheng Nov 13, 2024
2e79423
change credits to point to CITATIONS.bib
jonwzheng Aug 8, 2024
6ce0450
apply review comments; adjust credits
jonwzheng Aug 9, 2024
0ce4d1d
fix up docstrings for tree_distance
jonwzheng Feb 10, 2025
1ffceba
add nodal distances information
jonwzheng Feb 10, 2025
86488ea
outline CONTRIBUTING
jonwzheng Aug 6, 2024
8314427
add some contributor guidelines
jonwzheng Aug 7, 2024
87db279
add wiki information to CONTRIBUTING.md
jonwzheng Aug 8, 2024
0e5dd6f
format CONTRIBUTE.md
jonwzheng Aug 8, 2024
be6be01
further format CONTRIBUTING.md
jonwzheng Aug 8, 2024
997d8f7
clarify CONTRIBUTING testing info
jonwzheng Aug 8, 2024
358d83a
clarify CONTRIBUTING that .rst changes should go to main branch
jonwzheng Aug 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
## How to contribute to RMG-Py

Thank you for contributing to RMG-Py! Please take a moment to review our guidelines:

### **Did you find a bug? Do you want to see a new feature?**

* Please open an Issue to the corresponding repository:
* [RMG-Py](https://github.com/ReactionMechanismGenerator/RMG-Py/issues): For functionality of the RMG and Arkane software packages
* [RMG-database](https://github.com/ReactionMechanismGenerator/RMG-database/issues): For issues related to the data available to RMG
* [RMG-website](https://github.com/ReactionMechanismGenerator/RMG-website/issues): For issues related to the [RMG website](https://rmg.mit.edu)


### **Did you write code that fixes a bug or adds a new feature?**

* Open a new GitHub PR to merge into the main branch. Make sure the PR clearly describes the problem + solution. If applicable, include the relevant issue.

* Your PR must pass unit tests, regression tests, and code coverage, and receive approval from at least one reviewer before it can be merged in.

* If you wrote a new feature, please [add unit tests](https://github.com/ReactionMechanismGenerator/RMG-Py/tree/main/test/rmgpy). We currently use [pytest](https://docs.pytest.org/en/stable/) for our unit testing.

* If you wrote a significant new feature, please add a regression test:
* First, please create an input file that includes your new feature. Ensure `saveEdgeSpecies` is set to `True` so that the edge model will also be saved to a file. If applicable, include diverse sets of input conditions to test compatibility with other features.
* Generate the reaction mechanism corresponding to the input file. Ensure that the simulation does not take more than 15 minutes maximum. You can reduce simulation times in multiple ways, e.g. by increasing the `toleranceMoveToCore` flag.
* In the `test/regression` folder, create a new folder with a relevant name, and copy the RMG-Py simulation input file in this folder. Include this new folder in your PR.
* In `.github/workflows/CI.yml`, edit the two lists of regression tests in the `Regression Tests - Execution` and `Regression Tests - Compare to Baseline` steps to add the name of your folder. Be sure to follow BASH syntax.

* > Warning: This will __fail__ CI because of directory not found errors. This is because the baseline files used for comparison in the regression tests do not exist yet. Your PR will need to be merged by bypassing branch protection restrictions.


### **Do you want to contribute to the documentation?**

* Documentation is [hosted here](http://reactionmechanismgenerator.github.io/RMG-Py/) using [Sphinx](https://www.sphinx-doc.org/en/master/).

* The live version of the documentation is hosted on the `gh-pages` branch which is updated upon pushes to the `main` branch of RMG-Py.

* To add new documentation, create or modify `.rst` (reStructuredText) files under the `documentation` directory and create a PR to push to `main`. For a primer on how to write `.rst` markup, please [check out the Sphinx documentation.](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html)

* Please test the documentation on a local build (e.g., via `make html` in the `documentation` directory) before pushing changes.

### **Do you have questions?**

* Email us at [email protected].

### **Best practices for PRs**

* Rebase to the main branch before working, to avoid merge conflicts.

* Keep PRs small and aim to merge quickly.

* Commits should be specific and as small as required; commit messages should be descriptive and as long as required. Commit messages should explain *why* the change is needed. We recommend following [these guidelines.](https://wiki.openstack.org/wiki/GitCommitMessages)

* Submit a PR only when the code is polished and ready for review. Consider opening a draft PR for work in progress that requires collaborator input.

* Please follow the [PEP8 Python style guide.](https://peps.python.org/pep-0008/)

Thank you!

RMG Developers
12 changes: 6 additions & 6 deletions documentation/source/theory/rmg/dynamics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,31 +67,31 @@ for movement from surface to bulk core based on flux or dynamics criterion.
Key Parameters for Dynamics Criterion and Surface Algorithm
===========================================================

* **toleranceMoveEdgeReactionToCore**
* ``toleranceMoveEdgeReactionToCore``

An edge reaction will be pulled directly into the bulk core if its dynamics number
ever exceeds this value.

* **toleranceMoveEdgeReactionToSurface**
* ``toleranceMoveEdgeReactionToSurface``

An edge reaction will be pulled into the surface if its dynamics number
ever exceeds this value.

* **toleranceMoveEdgeReactionToCoreInterrupt**
* ``toleranceMoveEdgeReactionToCoreInterrupt``

When any reaction's dynamics number exceeds this value the simulation will be interrupted.

* **toleranceMoveEdgeReactionToSurfaceInterrupt**
* ``toleranceMoveEdgeReactionToSurfaceInterrupt``

When the dynamics number of any reaction that would be valid for movement to the surface
exceeds this value the simulation will be interrupted

* **toleranceMoveSurfaceReactionToCore**
* ``toleranceMoveSurfaceReactionToCore``

A surface reaction will be pulled into the bulk core if its dynamics number
ever exceeds this value. Note this is done on the fly during simulation.

* **toleranceMoveSurfaceSpeciesToCore**
* ``toleranceMoveSurfaceSpeciesToCore``

A surface species will be pulled into the bulk core if it's rate ratio
ever exceeds this value. Note this is done on the fly during simulation.
36 changes: 18 additions & 18 deletions documentation/source/theory/rmg/prune.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,30 @@ in order to achieve both low memory consumption and mechanism accuracy. Pruning
Key Parameters in Pruning
=========================

* toleranceKeepInEdge
* ``toleranceKeepInEdge``

Any edge species to prune should have peak flux along the whole conversion course lower than toleranceKeepInEdge :math:`*` characteristic flux. Thus, larger values will lead to smaller edge mechanisms.
Any edge species to prune should have peak flux along the whole conversion course lower than ``toleranceKeepInEdge`` :math:`*` characteristic flux. Thus, larger values will lead to smaller edge mechanisms.

* toleranceMoveToCore
* ``toleranceMoveToCore``

Any edge species to enter core model should have flux at some point larger than toleranceMoveToCore :math:`*` characteristic flux Thus, in general, smaller values will lead to larger core mechanisms.
Any edge species to enter core model should have flux at some point larger than ``toleranceMoveToCore`` :math:`*` characteristic flux. Thus, in general, smaller values will lead to larger core mechanisms.

* toleranceInterrupSimulation
* ``toleranceInterruptSimulation``

Once flux of any edge species exceeds toleranceInterruptSimulation :math:`*` characteristic flux, dynamic simulation will be stopped.
Once flux of any edge species exceeds ``toleranceInterruptSimulation`` :math:`*` characteristic flux, dynamic simulation will be stopped.
Usually this tolerance will be set a very high value so that any flux's exceeding that means mechanism is too incomplete to continue
dynamic simulation.

* maximumEdgeSpecies
* ``maximumEdgeSpecies``

If dynamic simulation isn't interrupted in half way and total number of the edge species whose peak fluxes are higher than
toleranceKeepInEdge :math:`*` characteristic flux exceeds maximumEdgeSpecies, such excessive amount of edge species with lowest peak fluxes will be pruned.
``toleranceKeepInEdge`` :math:`*` characteristic flux exceeds ``maximumEdgeSpecies``, such excessive amount of edge species with lowest peak fluxes will be pruned.

* minCoreSizeForPrune
* ``minCoreSizeForPrune``

Ensures that a minimum number of species are in the core before pruning occurs, in order to avoid pruning the model when it is far away from completeness. The default value is set to 50 species.

* minSpeciesExistIterationsForPrune
* ``minSpeciesExistIterationsForPrune``

Set the number of iterations an edge species must stay in the job before it can be pruned. The default value is 2 iterations.

Expand All @@ -46,20 +46,20 @@ How Pruning Works

The goal of pruning is to delete those "useless" edge species. So "usefulness" should be defined and it's natural to have flux as a
criterion for "usefulness". Since flux changes with reactant conversion, peak flux is chosen here to make decision of pruning or not.
Every time pruning is triggered, edge species with peak flux lower than toleranceKeepInEdge :math:`*` characteristic flux will be deleted.
Every time pruning is triggered, edge species with peak flux lower than ``toleranceKeepInEdge`` :math:`*` characteristic flux will be deleted.

.. figure:: fluxDiagramWithTolerance.png

However, pruning is not always triggered because of toleranceInterruptSimulation. As mentioned above, in order to prune, RMG needs to figure out
However, pruning is not always triggered because of ``toleranceInterruptSimulation``. As mentioned above, in order to prune, RMG needs to figure out
the peak flux of each edge species, which requires dynamic simulation to complete. If some run of dynamic simulation is terminated in half way
by toleranceInterruptSimulation, pruning is rejected although there might be some edge species with peak fluxes lower than
toleranceKeepInEdge :math:`*` characteristic flux. Since pruning requires to complete dynamic simulation, setting toleranceInterruptSimulation to be positive infinity,
as an extreme case, means always enabling pruning. Another extreme case would be that it has same value as toleranceMoveToCore where
by ``toleranceInterruptSimulation``, pruning is rejected although there might be some edge species with peak fluxes lower than
``toleranceKeepInEdge`` :math:`*` characteristic flux. Since pruning requires to complete dynamic simulation, setting ``toleranceInterruptSimulation`` to be positive infinity,
as an extreme case, means always enabling pruning. Another extreme case would be that it has same value as ``toleranceMoveToCore`` where
no pruning occurs.

In summary, each run of dynamic simulation will proceed towards terminationConversion unless some flux exceeds
toleranceInterruptSimulation :math:`*` characteristic flux.Following complete simulation is the pruning of edge species whose flux is not high enough be kept
in the edge, which is followed by pruning of excessive amount of edge species to make sure total edge species number is no greater than maximumEdgeSpecies.
In summary, each run of dynamic simulation will proceed towards ``terminationConversion`` unless some flux exceeds
``toleranceInterruptSimulation`` :math:`*` characteristic flux. Following complete simulation is the pruning of edge species whose flux is not high enough be kept
in the edge, which is followed by pruning of excessive amount of edge species to make sure total edge species number is no greater than ``maximumEdgeSpecies``.



Expand Down
19 changes: 6 additions & 13 deletions documentation/source/users/arkane/credits.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Project Supervisors:
- Prof. William H. Green ([email protected])
- Prof. Richard H. West ([email protected])
- Prof. C. Franklin Goldsmith ([email protected])
- Asst. Prof. Alon Grinberg Dana ([email protected])
- Prof. Alon Grinberg Dana ([email protected])

Developers: ([email protected])

Expand All @@ -24,10 +24,10 @@ Developers: ([email protected])
- Dr. D.S. Ranasinghe
- Dr. R.J. Gillis
- Dr. A.M. Payne
- Asst. Prof. Y.-P. Li
- X. Dong
- K.A. Spiekermann
- H. Wu
- Prof. Y.-P. Li
- Dr. X. Dong
- Dr. K.A. Spiekermann
- Mr. H. Wu
- Dr. E.E. Dames
- Dr. Z.J. Buras,
- Dr. N.M. Vandewiele
Expand All @@ -41,11 +41,4 @@ Developers: ([email protected])
How to Cite
***********

A. Grinberg Dana, M.S. Johnson, J.W. Allen, S. Sharma, S. Raman, M. Liu, C.W. Gao, C.A. Grambow, M.J. Goldman,
D.S. Ranasinghe, R.J. Gillis, A.M. Payne, Y.-P. Li, X. Dong, K.A. Spiekermann, H. Wu, E.E. Dames, Z.J. Buras,
N.M. Vandewiele, N.W. Yee, S.S. Merchant, B. Buesser, C.A. Class, C.F. Goldsmith, R.H. West, W.H. Green,
"Automated reaction kinetics and network exploration (Arkane):
A statistical mechanics, thermodynamics, transition state theory, and master equation software",
*International Journal of Chemical Kinetics* 2023, 55(6), 300-323.

DOI: `10.1002/kin.21637 <https://doi.org/10.1002/kin.21637>`_
Please refer to the ``Arkane`` reference in the `CITATIONS.bib file <https://github.com/ReactionMechanismGenerator/RMG-Py/blob/main/CITATIONS.bib>`_.
38 changes: 10 additions & 28 deletions documentation/source/users/rmg/credits.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,29 @@ Project Supervisors:

Current Developers: ([email protected])

- Dr. Alon Grinberg Dana
- Prof. Alon Grinberg Dana
- Dr. Matt Johnson
- Yen-Ting Wang
- Xiaorui Dong
- Hao-Wei Pang
- Dr. Anna Doner
- Oscar Wu
- Kevin Spiekermann
- Jonathan Zheng
- Jackson Burns
- Nathan Morgan
- Prof. Richard H. West
- Prof. C. Franklin Goldsmith
- Dr. Katrin Blondal
- Dr. Bjarne Kreitz
- Chao Xu
- Chris Blais
- Sevy Harris
- Nora Khalil

Previous Developers:

- Dr. Xiaorui Dong
- Dr. Hao-Wei Pang
- Dr. Kevin Spiekermann
- Yen-Ting Wang
- Dr. Joshua W. Allen
- Dr. Katrin Blondal
- Dr. Yunsie Chung
- Dr. David Farina
- Dr. Mark Goldman
Expand Down Expand Up @@ -66,25 +69,4 @@ Previous Developers:
How to Cite
***********

C.W. Gao, J.W. Allen, W.H. Green, R.H. West,
"Reaction Mechanism Generator: Automatic construction of chemical kinetic mechanisms",
*Computer Physics Communications* 2016, 203, 212-225.

DOI: `10.1016/j.cpc.2016.02.013 <https://doi.org/10.1016/j.cpc.2016.02.013>`_


M. Liu, A. Grinberg Dana, M.S. Johnson, M.J. Goldman, A. Jocher, A.M. Payne, C.A. Grambow, K. Han, N.W. Yee,
E.J. Mazeau, K. Blondal, R.H. West, C.F. Goldsmith, W.H. Green,
"Reaction Mechanism Generator v3.0: Advances in Automatic Mechanism Generation",
*Journal of Chemical Information and Modeling* 2021, 61(6), 2686–2696.

DOI: `10.1021/acs.jcim.0c01480 <https://doi.org/10.1021/acs.jcim.0c01480>`_



M.S. Johnson, X. Dong, A. Grinberg Dana, Y. Chung, D. Farina, R.J. Gillis, M. Liu, N.W. Yee, K. Blondal,
E. Mazeau, C.A. Grambow, A.M. Payne, K.A. Spiekermann, H.-W. Pang, C.F. Goldsmith, R.H. West, W.H. Green,
"The RMG Database for Chemical Property Prediction",
*Chemical Information* 2022, 62(20), 4906–4915.

DOI: `10.1021/acs.jcim.2c00965 <https://doi.org/10.1021/acs.jcim.2c00965>`_
Please refer to the ``RMG``, ``RMG3``, and ``RMG_Database`` citations in the `CITATIONS.bib file <https://github.com/ReactionMechanismGenerator/RMG-Py/blob/main/CITATIONS.bib>`_.
Loading
Loading