Skip to content

Conversation

@rwest
Copy link
Member

@rwest rwest commented Feb 5, 2026

Motivation or Problem

AI coding agents (GitHub Copilot, Claude, Cursor, etc.) lack context about RMG-Py's architecture, conventions, and workflows when assisting with development. Without guidance, they may generate code that doesn't follow project patterns, miss Cython requirements, or fail to update documentation appropriately.

Description of Changes

Added .github/copilot-instructions.md to provide AI coding agents with essential context including:

  • Project architecture overview (core packages, Cython patterns, key base classes like RMGObject, Graph)
  • Development commands (make install, make test, etc.)
  • Testing conventions (file naming, pytest fixtures, markers)
  • RMG-database integration (structure, loading, data flow for thermo/kinetics)
  • Documentation maintenance guidelines (especially the critical users/rmg/input.rst file)
  • Code patterns for molecules, species, and reactions

Testing

  • No functional code changes; documentation only
  • Verified the file renders correctly as Markdown
  • Confirmed referenced files and paths exist in the codebase

Reviewer Tips

  • Review the instructions for accuracy—are there any project conventions or patterns that are missing or incorrect?
  • Consider if there are common pitfalls or gotchas that AI agents frequently encounter that should be added
  • The file follows the VS Code instructions format

Create .github/copilot-instructions.md to guide AI assistants working
in this codebase. Includes:
- Architecture overview (core packages, Cython patterns, key base classes)
- Development commands and testing conventions
- RMG-database integration and data flow patterns
- Documentation maintenance guidelines (especially input.rst)
- Code patterns for molecules, species, and reactions
@github-actions
Copy link

github-actions bot commented Feb 5, 2026

Regression Testing Results

⚠️ One or more regression tests failed.
Please download the failed results and run the tests locally or check the log to see why.

Detailed regression test results.

Regression test aromatics:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:56
Current: Execution time (DD:HH:MM:SS): 00:00:00:55
Reference: Memory used: 747.98 MB
Current: Memory used: 747.47 MB

aromatics Passed Core Comparison ✅

Original model has 15 species.
Test model has 15 species. ✅
Original model has 11 reactions.
Test model has 11 reactions. ✅

aromatics Failed Edge Comparison ❌

Original model has 106 species.
Test model has 106 species. ✅
Original model has 358 reactions.
Test model has 358 reactions. ✅

Non-identical thermo! ❌
original: C=CC1C=CC2=CC1C=C2
tested: C=CC1C=CC2=CC1C=C2

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
83.22 82.78 35.48 45.14 53.78 61.40 73.58 82.20 95.08
83.22 84.16 35.48 45.14 53.78 61.40 73.58 82.20 95.08

Identical thermo comments:
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds- CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsHH) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclohexane) - ring(Cyclopentane) + ring(1,3-Cyclohexadiene) + ring(Cyclopentadiene)

Details Observables Test Case: Aromatics Comparison

✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions!

aromatics Passed Observable Testing ✅

Regression test liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:58
Current: Execution time (DD:HH:MM:SS): 00:00:01:56
Reference: Memory used: 845.51 MB
Current: Memory used: 845.67 MB

liquid_oxidation Passed Core Comparison ✅

Original model has 37 species.
Test model has 37 species. ✅
Original model has 241 reactions.
Test model has 241 reactions. ✅

liquid_oxidation Failed Edge Comparison ❌

Original model has 214 species.
Test model has 214 species. ✅
Original model has 1590 reactions.
Test model has 1593 reactions. ❌
The original model has 2 reactions that the tested model does not have. ❌
rxn: C[CH]CC(C)OO(31) <=> [OH](22) + CCCC(C)=O(28) origin: intra_H_migration
rxn: C[CH]CCCOO(48) <=> [OH](22) + CCCCC=O(45) origin: intra_H_migration
The tested model has 5 reactions that the original model does not have. ❌
rxn: C[CH]CC(C)OO(31) <=> CCC[C](C)OO(78) origin: intra_H_migration
rxn: CCCC[CH]OO(96) <=> C[CH]CCCOO(60) origin: intra_H_migration
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC([O])CC(C)OO(110) + CC([O])CCCOO(122) origin: Peroxyl_Disproportionation
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CC(C)OO(105) + CC(O)CCCOO(152) origin: Peroxyl_Termination
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CCCOO(112) + CC(O)CC(C)OO(143) origin: Peroxyl_Termination

Details Observables Test Case: liquid_oxidation Comparison

✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!

liquid_oxidation Passed Observable Testing ✅

Regression test nitrogen:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:03
Current: Execution time (DD:HH:MM:SS): 00:00:00:59
Reference: Memory used: 849.73 MB
Current: Memory used: 849.08 MB

nitrogen Passed Core Comparison ✅

Original model has 41 species.
Test model has 41 species. ✅
Original model has 359 reactions.
Test model has 359 reactions. ✅

nitrogen Passed Edge Comparison ✅

Original model has 133 species.
Test model has 133 species. ✅
Original model has 981 reactions.
Test model has 981 reactions. ✅

Details Observables Test Case: NC Comparison

✅ All Observables varied by less than 0.200 on average between old model and new model in all conditions!

nitrogen Passed Observable Testing ✅

Regression test oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:50
Current: Execution time (DD:HH:MM:SS): 00:00:01:45
Reference: Memory used: 735.25 MB
Current: Memory used: 735.26 MB

oxidation Passed Core Comparison ✅

Original model has 59 species.
Test model has 59 species. ✅
Original model has 694 reactions.
Test model has 694 reactions. ✅

oxidation Passed Edge Comparison ✅

Original model has 230 species.
Test model has 230 species. ✅
Original model has 1526 reactions.
Test model has 1526 reactions. ✅

Details Observables Test Case: Oxidation Comparison

✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions!

oxidation Passed Observable Testing ✅
Errors occurred during observable testing ⚠️ WARNING:root:Initial mole fractions do not sum to one; normalizing.

Regression test sulfur:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:40
Current: Execution time (DD:HH:MM:SS): 00:00:00:38
Reference: Memory used: 837.65 MB
Current: Memory used: 843.14 MB

sulfur Passed Core Comparison ✅

Original model has 27 species.
Test model has 27 species. ✅
Original model has 74 reactions.
Test model has 74 reactions. ✅

sulfur Failed Edge Comparison ❌

Original model has 89 species.
Test model has 89 species. ✅
Original model has 227 reactions.
Test model has 227 reactions. ✅
The original model has 1 reactions that the tested model does not have. ❌
rxn: O(4) + SO2(15) (+N2) <=> SO3(16) (+N2) origin: primarySulfurLibrary
The tested model has 1 reactions that the original model does not have. ❌
rxn: O(4) + SO2(15) (+N2) <=> SO3(16) (+N2) origin: primarySulfurLibrary

Details Observables Test Case: SO2 Comparison

The following observables did not match:

❌ Observable species O=S=O varied by more than 0.100 on average between old model SO2(15) and new model SO2(15) in condition 1.

⚠️ The following reaction conditions had some discrepancies:
Condition 1:
Reactor Type: IdealGasReactor
Reaction Time: 0.01 s
T0: 900 K
P0: 30 bar
Initial Mole Fractions: {'S': 0.000756, '[O][O]': 0.00129, 'N#N': 0.997954}

sulfur Failed Observable Testing ❌

Regression test superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:25
Current: Execution time (DD:HH:MM:SS): 00:00:00:24
Reference: Memory used: 930.30 MB
Current: Memory used: 934.42 MB

superminimal Passed Core Comparison ✅

Original model has 13 species.
Test model has 13 species. ✅
Original model has 21 reactions.
Test model has 21 reactions. ✅

superminimal Passed Edge Comparison ✅

Original model has 18 species.
Test model has 18 species. ✅
Original model has 28 reactions.
Test model has 28 reactions. ✅

Regression test RMS_constantVIdealGasReactor_superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:17
Current: Execution time (DD:HH:MM:SS): 00:00:02:41
Reference: Memory used: 2248.56 MB
Current: Memory used: 2563.14 MB

RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅

Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅

RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅

Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅

Details Observables Test Case: RMS_constantVIdealGasReactor_superminimal Comparison

✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!

RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅

Regression test RMS_CSTR_liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:15:35
Current: Execution time (DD:HH:MM:SS): 00:00:29:25
Reference: Memory used: 2445.21 MB
Current: Memory used: 3519.52 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

Original model has 35 species.
Test model has 35 species. ✅
Original model has 123 reactions.
Test model has 141 reactions. ❌
The original model has 7 species that the tested model does not have. ❌
spc: CCH2
spc: [CH2]CCC(9)
spc: C=CC(18)
spc: C[CH]C(CC)OO(31)
spc: CC[CH]C(C)OO(35)
spc: CC[CH]CCOO(74)
spc: [CH2]CCCCOO(76)
The tested model has 7 species that the original model does not have. ❌
spc: CCCC(C)O(46)
spc: CCCCCO
spc: CC=O(87)
spc: CCCC=O(88)
spc: [CH2]CCC(C)O(93)
spc: CC=CC(C)OO(97)
spc: CC(CC(C)OO)OO
The original model has 27 reactions that the tested model does not have. ❌
rxn: C[CH]CC(C)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) <=> CCC(CC)O[O](21) origin: intra_H_migration
rxn: [O]O(13) + C[CH]C(CC)OO(31) <=> oxygen(1) + CCC(CC)OO(25) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(25) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(25) origin: H_Abstraction
rxn: OO(23) + C[CH]C(CC)OO(31) <=> [O]O(13) + CCC(CC)OO(25) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCC(CC)OO(25) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCC(CC)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCC(CC)OO(25) <=> C[CH]C(CC)OO(31) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]C(CC)OO(31) <=> C=CCCC(17) + CCC(CC)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]C(CC)OO(31) <=> C=CCCC(17) + CCC(CC)OO(25) origin: Disproportionation
rxn: CC[CH]C(C)OO(35) <=> CCCC(C)O[O](20) origin: intra_H_migration
rxn: [O]O(13) + CC[CH]C(C)OO(35) <=> oxygen(1) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + CC[CH]C(C)OO(35) <=> [O]O(13) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(24) <=> CC[CH]C(C)OO(35) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]C(C)OO(35) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]C(C)OO(35) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]C(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CCCCCO[O](61) <=> [CH2]CCCCOO(76) origin: intra_H_migration
rxn: CC[CH]CCOO(74) <=> CCCCCO[O](61) origin: intra_H_migration
rxn: C[CH2](6) + [CH2]CC(5) <=> pentane(2) origin: R_Recombination
rxn: C[CH]CCC(11) <=> C[CH2](6) + C=CC(18) origin: R_Addition_MultipleBond
rxn: [CH3](10) + [CH2]CCC(9) <=> pentane(2) origin: R_Recombination
The tested model has 45 reactions that the original model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](26) + [OH](26) <=> OO(23) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + [CH2]CCCC(12) <=> OO(23) + C=CCCC(18) origin: Disproportionation
rxn: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(25) + CCCCCOO(78) <=> O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(25) <=> [OH](26) + O(42) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(25) <=> [O]O(13) + O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(24) <=> [OH](26) + O(42) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](26) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](26) + [O]O(13) + O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [CH3](10) + CCCC=O(88) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(34) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(46) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> [CH2]CC(CC)OO(38) + CCCC(C)O(46) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCCOO(65) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(65) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(65) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(65) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(65) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> C[CH]CCCOO(65) + CCCC(C)O(46) origin: H_Abstraction
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCCC(C)OO(25) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(24) <=> [O]O(13) + O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 77 species.
Test model has 99 species. ❌
Original model has 262 reactions.
Test model has 377 reactions. ❌
The tested model has 22 species that the original model does not have. ❌
spc: CCCCCO
spc: [CH2]COO(80)
spc: [CH2]CCOO(81)
spc: [CH2]OO(82)
spc: [CH2]CCCOO(83)
spc: CCCC[CH]OO(84)
spc: CCCCO
spc: CCC(C)O
spc: CC=O(87)
spc: CCCC=O(88)
spc: CCCCO(89)
spc: CC[CH]C(C)O(90)
spc: [CH2]C(O)CCC(91)
spc: C[CH]CC(C)O(92)
spc: [CH2]CCC(C)O(93)
spc: C[CH]CCOO(94)
spc: [CH2]C(C)C(C)OO(95)
spc: CC1CC(C)O1(96)
spc: CC=CC(C)OO(97)
spc: C=CCC(C)OO(98)
spc: CC([O])CC(C)O(99)
spc: CC(CC(C)OO)OO
The original model has 5 reactions that the tested model does not have. ❌
rxn: C[CH]CC(C)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CCC[C](C)OO(54) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(36) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
The tested model has 120 reactions that the original model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](26) + [OH](26) <=> OO(23) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + [CH2]CCCC(12) <=> OO(23) + C=CCCC(18) origin: Disproportionation
rxn: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(25) + CCCCCOO(78) <=> O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(25) <=> [OH](26) + O(42) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(25) <=> [O]O(13) + O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(24) <=> [OH](26) + O(42) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](26) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](26) + [O]O(13) + O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [CH3](10) + CCCC=O(88) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(34) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(46) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> [CH2]CC(CC)OO(38) + CCCC(C)O(46) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCCOO(65) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(65) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(65) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(65) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(65) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> C[CH]CCCOO(65) + CCCC(C)O(46) origin: H_Abstraction
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCCC(C)OO(25) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(24) <=> [O]O(13) + O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [CH2](3) + CCCCOO(51) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCCCOO(51) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCCCO[O](61) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]COO(80) + [CH2]CC(5) <=> CCCCCOO(78) origin: R_Recombination
rxn: C[CH2](6) + [CH2]CCOO(81) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + CC[CH]CCOO(64) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]OO(82) + [CH2]CCC(9) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + CCC[CH]COO(63) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH3](10) + [CH2]CCCOO(83) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + C[CH]CCCOO(65) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + CCCC[CH]OO(84) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + [CH2]CCCCOO(66) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2](3) + CCCC[O](85) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCC(C)=O(31) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) <=> CCC[C](C)O(89) origin: intra_H_migration
rxn: CC[CH]C(C)O(90) <=> CCCC(C)[O](41) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> [CH2]C(O)CCC(91) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> C[CH]CC(C)O(92) origin: intra_H_migration
rxn: [CH2](3) + C[CH]CCOO(94) <=> C[CH]CC(C)OO(34) origin: 1,2_Insertion_carbene
rxn: [CH2]C(C)C(C)OO(95) <=> C[CH]CC(C)OO(34) origin: 1,2_shiftC
rxn: C[CH]CC(C)OO(34) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
rxn: [H](8) + CC=CC(C)OO(97) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: [H](8) + C=CCC(C)OO(98) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: C[CH]OO(53) + C=CC(19) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: CC[CH]C(C)OO(32) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: [CH2]CCC(C)OO(35) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CCC[C](C)OO(55) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> [CH2]C(CCC)OO(33) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CC([O])CC(C)O(99) origin: intra_OH_migration
rxn: [H](8) + [O]O(13) <=> OO(23) origin: R_Recombination
rxn: [O]O(13) + CC[CH]CCOO(64) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCC[CH]COO(63) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCC[CH]OO(84) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCCOO(66) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: oxygen(1) + CCCC(C)[O](41) <=> [O]O(13) + CCCC(C)=O(31) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](41) <=> CCCC(C)OO[O](48) origin: R_Recombination
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(98) origin: Disproportionation
rxn: OO(23) + CC[CH]CCOO(64) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCC[CH]COO(63) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCCCOO(78) <=> OO(23) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(66) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + CCC[C](C)OO(55) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + CC[CH]C(C)OO(32) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + [CH2]C(CCC)OO(33) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + [CH2]CCC(C)OO(35) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> CCC[C](C)OO(55) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> CC[CH]C(C)OO(32) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> [CH2]C(CCC)OO(33) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> [CH2]CCC(C)OO(35) + CCCC(C)O(46) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + CC[C](CC)OO(59) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + C[CH]C(CC)OO(37) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> CC[C](CC)OO(59) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> C[CH]C(CC)OO(37) + CCCC(C)O(46) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]CCOO(64) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCC[CH]COO(63) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC[CH]OO(84) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(66) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(64) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC[CH]COO(63) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC[CH]OO(84) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(66) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CC[CH]CCOO(64) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCC[CH]COO(63) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + [CH2]CCCCOO(66) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CC[CH]CCOO(64) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCC[CH]COO(63) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> [CH2]CCCCOO(66) + CCCC(C)O(46) origin: H_Abstraction

Details Observables Test Case: RMS_CSTR_liquid_oxidation Comparison

✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!

RMS_CSTR_liquid_oxidation Passed Observable Testing ✅

Regression test fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:30
Current: Execution time (DD:HH:MM:SS): 00:00:00:29
Reference: Memory used: 700.04 MB
Current: Memory used: 700.57 MB

fragment Passed Core Comparison ✅

Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅

fragment Passed Edge Comparison ✅

Original model has 33 species.
Test model has 33 species. ✅
Original model has 47 reactions.
Test model has 47 reactions. ✅

Details Observables Test Case: fragment Comparison

✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!

fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️ WARNING:root:Initial mole fractions do not sum to one; normalizing.

Regression test RMS_constantVIdealGasReactor_fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:42
Current: Execution time (DD:HH:MM:SS): 00:00:03:05
Reference: Memory used: 2459.66 MB
Current: Memory used: 2562.84 MB

RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅

Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅

RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅

Original model has 27 species.
Test model has 27 species. ✅
Original model has 24 reactions.
Test model has 24 reactions. ✅

Details Observables Test Case: RMS_constantVIdealGasReactor_fragment Comparison

✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!

RMS_constantVIdealGasReactor_fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️ WARNING:root:Initial mole fractions do not sum to one; normalizing.

Regression test minimal_surface:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:31
Current: Execution time (DD:HH:MM:SS): 00:00:00:30
Reference: Memory used: 851.17 MB
Current: Memory used: 850.31 MB

minimal_surface Passed Core Comparison ✅

Original model has 11 species.
Test model has 11 species. ✅
Original model has 3 reactions.
Test model has 3 reactions. ✅

minimal_surface Passed Edge Comparison ✅

Original model has 38 species.
Test model has 38 species. ✅
Original model has 38 reactions.
Test model has 38 reactions. ✅

Details Observables Test Case: minimal_surface Comparison

✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions!

minimal_surface Passed Observable Testing ✅

beep boop this comment was written by a bot 🤖

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds comprehensive Copilot instructions to guide AI coding agents (GitHub Copilot, Claude, Cursor, etc.) when working with the RMG-Py codebase. The instructions provide essential context about the project's architecture, development workflows, testing conventions, and database integration that AI agents typically lack.

Changes:

  • Added .github/copilot-instructions.md with detailed guidance on RMG-Py architecture, Cython patterns, development commands, testing conventions, database integration, and documentation maintenance

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

4. Returns `Arrhenius` or pressure-dependent kinetics model

## External Dependencies
- **RMG-database**: Set location via `RMG_DATABASE_BRANCH` env var in CI, or pass path to `database.load()`
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RMG_DATABASE_BRANCH in CI controls which branch of RMG-database gets cloned; it does not set the database location. For local/dev guidance, point readers to settings['database.directory'] (defaulting to ../RMG-database/input) and/or configuring database.directory in an rmgrc file.

Suggested change
- **RMG-database**: Set location via `RMG_DATABASE_BRANCH` env var in CI, or pass path to `database.load()`
- **RMG-database**: In CI, `RMG_DATABASE_BRANCH` controls which RMG-database branch is cloned. Locally, the database location is set via `settings['database.directory']` (default `../RMG-database/input`) or `database.directory` in an `rmgrc` file; you may also pass an explicit path to `database.load()`.

Copilot uses AI. Check for mistakes.
Comment on lines +102 to +105
1. `Species.get_thermo_data()` → `ThermoDatabase.get_thermo_data(species)`
2. First checks thermo libraries for exact match (via graph isomorphism)
3. Falls back to group additivity estimation using functional group contributions
4. Returns `ThermoData`, `NASA`, or `Wilhoit` object
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The species thermo flow is oversimplified/inaccurate: Species.get_thermo_data() goes through rmgpy.thermo.thermoengine.submit() and may resolve futures, rather than directly calling ThermoDatabase.get_thermo_data(species). Suggest updating this section to reflect the actual call path so agents know where to make changes.

Suggested change
1. `Species.get_thermo_data()``ThermoDatabase.get_thermo_data(species)`
2. First checks thermo libraries for exact match (via graph isomorphism)
3. Falls back to group additivity estimation using functional group contributions
4. Returns `ThermoData`, `NASA`, or `Wilhoit` object
1. `Species.get_thermo_data()``rmgpy.thermo.thermoengine.submit(species)` (may create/resolve futures)
2. `thermoengine` dispatches to the loaded `ThermoDatabase` and ultimately calls `ThermoDatabase.get_thermo_data(species)`
3. `ThermoDatabase` first checks thermo libraries for an exact match (via graph isomorphism)
4. If no library match is found, `ThermoDatabase` falls back to group additivity estimation using functional group contributions
5. The resolved result is returned as a `ThermoData`, `NASA`, or `Wilhoit` object

Copilot uses AI. Check for mistakes.
- Follow PEP 8
- Docstrings describe purpose, not implementation
- Use `logging` module (not print statements)
- MIT/X11 license header required on all source files
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The repository license is the standard MIT text (see LICENSE.txt). Consider changing "MIT/X11" to simply "MIT" (or match the exact wording used in file headers) to avoid ambiguity.

Suggested change
- MIT/X11 license header required on all source files
- MIT license header required on all source files

Copilot uses AI. Check for mistakes.
make test-database # Run database tests
make test-all # Run all tests
make clean # Remove build artifacts
make decython # Remove .so files for "pure Python" debugging. This target probably broken.
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The note on make decython says "This target probably broken." which is both grammatically incorrect and an unverified/subjective claim. Consider rephrasing to a factual statement (e.g., describe known limitations or remove the claim) so the instructions stay accurate.

Suggested change
make decython # Remove .so files for "pure Python" debugging. This target probably broken.
make decython # Remove .so files for "pure Python" debugging.

Copilot uses AI. Check for mistakes.
Comment on lines +75 to +80
### Database Structure (in RMG-database repo)
- `thermo/` - Thermodynamic libraries and group additivity data
- `kinetics/families/` - Reaction family templates with rate rules (e.g., `H_Abstraction`, `R_Addition_MultipleBond`)
- `kinetics/libraries/` - Curated rate coefficient libraries
- `solvation/` - Solvent and solute parameters
- `transport/` - Transport properties
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "Database Structure" paths listed here (e.g., thermo/, kinetics/, etc.) are under the RMG-database input/ directory when used by RMG-Py (see default settings['database.directory'] pointing to RMG-database/input). Please clarify the base path (e.g., RMG-database/input/thermo/) to avoid confusion.

Suggested change
### Database Structure (in RMG-database repo)
- `thermo/` - Thermodynamic libraries and group additivity data
- `kinetics/families/` - Reaction family templates with rate rules (e.g., `H_Abstraction`, `R_Addition_MultipleBond`)
- `kinetics/libraries/` - Curated rate coefficient libraries
- `solvation/` - Solvent and solute parameters
- `transport/` - Transport properties
### Database Structure (in RMG-database `input/` directory)
The main database subdirectories live under the `input/` directory (e.g., `RMG-database/input/thermo/`):
- `RMG-database/input/thermo/` - Thermodynamic libraries and group additivity data
- `RMG-database/input/kinetics/families/` - Reaction family templates with rate rules (e.g., `H_Abstraction`, `R_Addition_MultipleBond`)
- `RMG-database/input/kinetics/libraries/` - Curated rate coefficient libraries
- `RMG-database/input/solvation/` - Solvent and solute parameters
- `RMG-database/input/transport/` - Transport properties

Copilot uses AI. Check for mistakes.
Comment on lines +87 to +92
database.load(
path='/path/to/RMG-database',
thermo_libraries=['primaryThermoLibrary'],
kinetics_families='default',
reaction_libraries=[],
)
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the RMGDatabase.load() example, path should point to the database input folder that contains thermo/, kinetics/, etc. (typically .../RMG-database/input), not the repo root. As written, the example will fail unless the user happens to pass the input directory.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant