fix(arkane): make PDep sensitivity meaningful for ILT-based path reactions - #2990
fix(arkane): make PDep sensitivity meaningful for ILT-based path reactions#2990alongd wants to merge 2 commits into
Conversation
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:42 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_3) + polycyclic(s3_5_5_ene_1) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentane) + radical(cyclopentene-allyl) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopentane) - ring(Cyclopropane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_ene_1) + polycyclic(s3_5_6_diene_1_5) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-4) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_diene_1_3) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclohexane) - ring(Cyclopentane) + ring(1,3-Cyclohexadiene) + ring(Cyclopentene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(1,3-Cyclohexadiene) + radical(cyclopentene-allyl) Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Errors occurred during edge comparison
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py aromatics-edge stable_regression_results/aromatics/chemkin/chem_edge_annotated.inp stable_regression_results/aromatics/chemkin/species_edge_dictionary.txt test/regression/aromatics/chemkin/chem_edge_annotated.inp test/regression/aromatics/chemkin/species_edge_dictionary.txt` failed. (See above for error)
|
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | 3.54 | 4.28 | 4.73 | 5.02 | 5.39 | 5.62 | 5.91 | 6.06 |
| k(T): | 8.02 | 7.64 | 7.35 | 7.11 | 6.75 | 6.48 | 5.99 | 5.64 |
kinetics: Arrhenius(A=(3.2e+12,'cm^3/(mol*s)'), n=0, Ea=(4.064,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R in family Peroxyl_Disproportionation.""")
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(-0.265,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.""")
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R in family Peroxyl_Disproportionation.
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py liquid_oxidation-edge stable_regression_results/liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
liquid_oxidation Passed Observable Testing ✅
Regression test nitrogen:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:44
Current: Execution time (DD:HH:MM:SS): 00:00:00:56
Reference: Memory used: 914.42 MB
Current: Memory used: 920.14 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 Failed Edge Comparison ❌
Original model has 133 species.
Test model has 133 species. ✅
Original model has 981 reactions.
Test model has 981 reactions. ✅
Non-identical thermo! ❌
original: O1[C]=N1
tested: O1[C]=N1
| Hf(300K) | S(300K) | Cp(300K) | Cp(400K) | Cp(500K) | Cp(600K) | Cp(800K) | Cp(1000K) | Cp(1500K) |
|---|---|---|---|---|---|---|---|---|
| 141.64 | 58.66 | 12.26 | 12.27 | 12.09 | 11.96 | 12.26 | 12.72 | 12.15 |
| 116.46 | 53.90 | 11.62 | 12.71 | 13.49 | 13.96 | 14.14 | 13.85 | 13.58 |
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(oxirene) + radical(CdJ-NdO)
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(Cyclopropene) + radical(CdJ-NdO)
Non-identical kinetics! ❌
original:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
tested:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | -66.25 | -46.19 | -34.19 | -26.21 | -16.28 | -10.36 | -2.54 | 1.31 |
| k(T): | -49.54 | -33.65 | -24.16 | -17.85 | -10.01 | -5.35 | 0.80 | 3.82 |
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(111.271,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(88.327,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
Identical kinetics comments:
kinetics: Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py nitrogen-edge stable_regression_results/nitrogen/chemkin/chem_edge_annotated.inp stable_regression_results/nitrogen/chemkin/species_edge_dictionary.txt test/regression/nitrogen/chemkin/chem_edge_annotated.inp test/regression/nitrogen/chemkin/species_edge_dictionary.txt` failed. (See above for error)
nitrogen Passed Observable Testing ✅
Regression test oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:10
Current: Execution time (DD:HH:MM:SS): 00:00:01:31
Reference: Memory used: 799.14 MB
Current: Memory used: 795.92 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 1524 reactions.
Test model has 1524 reactions. ✅
oxidation Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test sulfur:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:30
Current: Execution time (DD:HH:MM:SS): 00:00:00:36
Reference: Memory used: 911.36 MB
Current: Memory used: 914.26 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
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py sulfur-edge stable_regression_results/sulfur/chemkin/chem_edge_annotated.inp stable_regression_results/sulfur/chemkin/species_edge_dictionary.txt test/regression/sulfur/chemkin/chem_edge_annotated.inp test/regression/sulfur/chemkin/species_edge_dictionary.txt` failed. (See above for error)
sulfur Passed Observable Testing ✅
Regression test superminimal:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:18
Current: Execution time (DD:HH:MM:SS): 00:00:00:23
Reference: Memory used: 986.91 MB
Current: Memory used: 957.87 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:01:51
Current: Execution time (DD:HH:MM:SS): 00:00:02:44
Reference: Memory used: 2422.47 MB
Current: Memory used: 2524.87 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. ✅
RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅
Regression test RMS_CSTR_liquid_oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:15:22
Current: Execution time (DD:HH:MM:SS): 00:00:11:40
Reference: Memory used: 3312.12 MB
Current: Memory used: 2785.91 MB
RMS_CSTR_liquid_oxidation Failed Core Comparison ❌
Original model has 35 species.
Test model has 35 species. ✅
Original model has 132 reactions.
Test model has 147 reactions. ❌
The original model has 5 species that the tested model does not have. ❌
spc: CH3
spc: C=CC(18)
spc: CC[CH]C(C)OO(32)
spc: [CH2]C(CCC)OO(33)
spc: C[CH]C(CC)OO(37)
The tested model has 5 species that the original model does not have. ❌
spc: CCCCCO
spc: CC=O(87)
spc: CC1CC(C)O1(96)
spc: CC=CC(C)OO(97)
spc: CC(CC(C)OO)OO
The original model has 34 reactions that the tested model does not have. ❌
rxn: C[CH]C(CC)OO(37) <=> CCC(CC)O[O](22) origin: intra_H_migration
rxn: [O]O(13) + C[CH]C(CC)OO(37) <=> oxygen(1) + CCC(CC)OO(27) origin: H_Abstraction
rxn: OO(23) + C[CH]C(CC)OO(37) <=> [O]O(13) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCCC(C)OO(26) <=> CCCC(C)O[O](21) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCC(CC)OO(27) <=> C[CH]C(CC)OO(37) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]C(CC)OO(37) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]C(CC)OO(37) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: CC[CH]C(C)OO(32) <=> CCCC(C)O[O](21) origin: intra_H_migration
rxn: [O]O(13) + CC[CH]C(C)OO(32) <=> oxygen(1) + CCCC(C)OO(26) origin: H_Abstraction
rxn: OO(23) + CC[CH]C(C)OO(32) <=> [O]O(13) + CCCC(C)OO(26) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(26) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)OO(26) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + CCCC(C)OO(26) <=> CCCC(C)O[O](21) + CCCC(C)OO(26) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(26) <=> CC[CH]C(C)OO(32) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]C(C)OO(32) <=> C=CCCC(17) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]C(C)OO(32) <=> C=CCCC(17) + CCCC(C)OO(26) origin: Disproportionation
rxn: CC[CH]C(C)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
rxn: C[CH]CCC(11) <=> C[CH2](6) + C=CC(18) origin: R_Addition_MultipleBond
rxn: CCCC(C)O[O](21) <=> [CH2]C(CCC)OO(33) origin: intra_H_migration
rxn: [O]O(13) + [CH2]C(CCC)OO(33) <=> oxygen(1) + CCCC(C)OO(26) origin: H_Abstraction
rxn: OO(23) + [CH2]C(CCC)OO(33) <=> [O]O(13) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + CCCC(C)OO(26) <=> CCCC(C)O[O](21) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [O]O(13) + C=CCCC(17) <=> [CH2]C(CCC)OO(33) origin: R_Addition_MultipleBond
rxn: [CH2]CCCC(12) + [CH2]C(CCC)OO(33) <=> C=CCCC(17) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]C(CCC)OO(33) <=> C=CCCC(17) + CCCC(C)OO(26) origin: Disproportionation
rxn: [CH2]C(CCC)OO(33) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
The tested model has 49 reactions that the original model does not have. ❌
rxn: CCC(CC)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](25) + [OH](25) <=> 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](44) origin: R_Addition_MultipleBond
rxn: [OH](25) + CCC(CC)OO(24) <=> H2O(42) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(24) <=> [OH](25) + H2O(42) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + CCCC(C)O[O](22) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: CCCC(C)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(27) <=> [OH](25) + H2O(42) + CCCC(C)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(27) <=> [O]O(13) + H2O(42) + CCCC(C)[O](44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](25) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(24) <=> H2O(42) + [CH2]CC(CC)OO(32) origin: H_Abstraction
rxn: [OH](25) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + H2O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(75) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(75) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCCOO(76) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(76) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(76) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(24) <=> [O]O(13) + H2O(42) + CCC([O])CC(41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [O]O(13) + CC[CH]CCOO(74) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CC[CH]CCOO(74) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CCOO(74) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]CCOO(74) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(74) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) <=> [OH](25) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
Errors occurred during core comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-core stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌
Original model has 77 species.
Test model has 99 species. ❌
Original model has 260 reactions.
Test model has 384 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 tested model has 124 reactions that the original model does not have. ❌
rxn: CCC(CC)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](25) + [OH](25) <=> 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](44) origin: R_Addition_MultipleBond
rxn: [OH](25) + CCC(CC)OO(24) <=> H2O(42) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(24) <=> [OH](25) + H2O(42) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + CCCC(C)O[O](22) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: CCCC(C)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(27) <=> [OH](25) + H2O(42) + CCCC(C)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(27) <=> [O]O(13) + H2O(42) + CCCC(C)[O](44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](25) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(24) <=> H2O(42) + [CH2]CC(CC)OO(32) origin: H_Abstraction
rxn: [OH](25) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + H2O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(75) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(75) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCCOO(76) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(76) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(76) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(24) <=> [O]O(13) + H2O(42) + CCC([O])CC(41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [O]O(13) + CC[CH]CCOO(74) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CC[CH]CCOO(74) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CCOO(74) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]CCOO(74) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(74) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) <=> [OH](25) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
rxn: CC[C](CC)OO(53) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: CH2(S)(3) + CCCCOO(55) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCCCOO(55) <=> 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(74) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]OO(82) + [CH2]CCC(9) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + CCC[CH]COO(73) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH3](10) + [CH2]CCCOO(83) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + C[CH]CCCOO(75) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + CCCC[CH]OO(84) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + [CH2]CCCCOO(76) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + [O]O(13) <=> OO(23) origin: R_Recombination
rxn: CH2(S)(3) + CCCC[O](85) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: H(8) + CCCC(C)=O(34) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: [CH3](10) + CCCC=O(88) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> CCC[C](C)O(89) origin: intra_H_migration
rxn: CC[CH]C(C)O(90) <=> CCCC(C)[O](44) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> [CH2]C(O)CCC(91) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> C[CH]CC(C)O(92) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: CH2(S)(3) + C[CH]CCOO(94) <=> C[CH]CC(C)OO(37) origin: 1,2_Insertion_carbene
rxn: [CH2]C(C)C(C)OO(95) <=> C[CH]CC(C)OO(37) origin: 1,2_shiftC
rxn: H(8) + CC=CC(C)OO(97) <=> C[CH]CC(C)OO(37) origin: R_Addition_MultipleBond
rxn: H(8) + C=CCC(C)OO(98) <=> C[CH]CC(C)OO(37) origin: R_Addition_MultipleBond
rxn: C[CH]OO(56) + C=CC(19) <=> C[CH]CC(C)OO(37) origin: R_Addition_MultipleBond
rxn: CC[CH]C(C)OO(35) <=> C[CH]CC(C)OO(37) origin: intra_H_migration
rxn: [CH2]CCC(C)OO(38) <=> C[CH]CC(C)OO(37) origin: intra_H_migration
rxn: C[CH]CC(C)OO(37) <=> CCC[C](C)OO(58) origin: intra_H_migration
rxn: C[CH]CC(C)OO(37) <=> [CH2]C(CCC)OO(36) origin: intra_H_migration
rxn: C[CH]CC(C)OO(37) <=> CC([O])CC(C)O(99) origin: intra_OH_migration
rxn: [O]O(13) + CCC[CH]COO(73) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCC[CH]OO(84) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: oxygen(1) + CCCC(C)[O](44) <=> [O]O(13) + CCCC(C)=O(34) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](44) <=> CCCC(C)OO[O](49) origin: R_Recombination
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + C=CCC(C)OO(98) origin: Disproportionation
rxn: CCCC(C)[O](44) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(47) origin: H_Abstraction
rxn: OO(23) + CCC[CH]COO(73) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCCCOO(78) <=> OO(23) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: CCC[CH]COO(73) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(24) <=> H2O(42) + CC[C](CC)OO(53) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(24) <=> H2O(42) + C[CH]C(CC)OO(31) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(24) <=> CC[C](CC)OO(53) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(24) <=> C[CH]C(CC)OO(31) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(24) <=> [CH2]CC(CC)OO(32) + CCCC(C)O(47) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + CCC[C](C)OO(58) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + CC[CH]C(C)OO(35) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + [CH2]C(CCC)OO(36) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(27) <=> H2O(42) + [CH2]CCC(C)OO(38) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> CCC[C](C)OO(58) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> CC[CH]C(C)OO(35) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> C[CH]CC(C)OO(37) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> [CH2]C(CCC)OO(36) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> [CH2]CCC(C)OO(38) + CCCC(C)O(47) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCC[CH]COO(73) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC[CH]OO(84) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC[CH]COO(73) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC[CH]OO(84) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCC[CH]COO(73) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CC[CH]CCOO(74) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCC[CH]COO(73) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(75) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> [CH2]CCCCOO(76) + CCCC(C)O(47) origin: H_Abstraction
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-edge stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Passed Observable Testing ✅
Regression test fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:26
Current: Execution time (DD:HH:MM:SS): 00:00:00:31
Reference: Memory used: 758.73 MB
Current: Memory used: 758.18 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. ✅
fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test RMS_constantVIdealGasReactor_fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:02:14
Current: Execution time (DD:HH:MM:SS): 00:00:03:06
Reference: Memory used: 2443.54 MB
Current: Memory used: 2552.80 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. ✅
RMS_constantVIdealGasReactor_fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test minimal_surface:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:23
Current: Execution time (DD:HH:MM:SS): 00:00:00:29
Reference: Memory used: 922.80 MB
Current: Memory used: 915.28 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. ✅
minimal_surface Passed Observable Testing ✅
beep boop this comment was written by a bot 🤖
…tions
PDepSensitivity perturbs only conformer.E0. For a path reaction whose
microcanonical rate k(E) comes from an inverse Laplace transform of the
high-pressure-limit kinetics rather than from RRKM theory, that perturbation is a
structural no-op, so the reported sensitivity coefficient is identically zero.
This is the common case for RMG-generated networks: RMG synthesizes a transition
state with E0 = sum(E0 reactants) + Ea and no statmech modes, so Reaction.can_tst()
is False and rmgpy/pdep/reaction.pyx takes the ILT branch. There, the TS E0 is
referenced only inside the n < 0.25 branch -- and typical rate-rule / group-additivity
kinetics have n of roughly 0.3 to 2.5 -- while the result is subsequently renormalized
to kf_expected, which is the high-pressure-limit Arrhenius and independent of the TS E0.
Perturb the barrier at its source instead. Since E0(TS) = sum(E0 reactants) + Ea by
construction, shifting Ea by the same amount as E0 is the physically consistent
perturbation, and it reaches both the ILT convolution and the renormalization target.
Scoped carefully:
- Only when the synthetic relation actually holds. A hand-authored modeless TS may
carry an independent, physically meaningful E0; for those, moving Ea too would be
wrong, so only E0 is perturbed and the reason is logged. The check is written to be
invariant across a perturb/unperturb pair, so a reaction can never be perturbed
without being restored.
- For every path reaction sharing the TS object, not just the first. An Arkane input
may point several reaction blocks at one transitionState label; the E0 perturbation
already affects all of them, so the Ea perturbation must match that blast radius or
the two representations of the same barrier desynchronize.
- Not for RRKM-based reactions, which genuinely use the TS E0 and sum of states;
perturbing both would double-count.
- MultiArrhenius is not handled: apply_inverse_laplace_transform_method is Cython-typed
for Arrhenius, so such a reaction cannot reach the ILT path at all.
The output text now says plainly that ILT TS rows are a derivative along the coordinate
that raises the synthetic barrier, rather than a plain dln(r)/dE0. The YAML key format
is unchanged.
Measured on two RMG-generated networks, holding everything else fixed:
network1_1 (MSC) before: 4/4 TS coefficients exactly 0.0
after: 0/4 zero, max |coefficient| 1.15e-4
network4_1 (MSC) before: 300/300 TS coefficients exactly 0.0
after: 0/300 zero, max |coefficient| 1.16e-4
which is the same order as the well coefficients, and as the TS coefficients an
Arkane job with genuine statmech data already produced.
…etic The previous commit perturbed an ILT-based path reaction's Arrhenius Ea alongside the TS E0 only when the "synthetic" relation E0(TS) = sum(E0(reactants)) + Ea held to within 1 kJ/mol (`_ts_e0_is_synthetic`). That guard is broken on real RMG output: across 400 real RMG-written networks, only 24 of the 6,434 path reactions with a resolvable species E0 satisfy the relation (0.4%), with a median miss of 146 kJ/mol against the 1 kJ/mol tolerance. The relation is generally unrecoverable from a written network file: RMG mutates Ea via `fix_barrier_height(force_positive=True)` just before synthesizing E0(TS) (rmgpy/rmg/pdep.py), and Arkane strips `energy_correction` when writing the file (arkane/pdep.py), so the file does not carry the information the arithmetic check needs. In practice the guard therefore reverted essentially every real network to the old behaviour: a structurally zero TS sensitivity coefficient (~1e-14 mol/J of numerical noise, nine orders below the well rows). Replace the arithmetic gate with the structural condition that actually identifies "ILT is the only path": `not rxn.can_tst()` (no TS statmech modes, so RRKM is impossible) and the kinetics in use (`network_kinetics` if set, else `kinetics`) being an `Arrhenius`. This also drops the carve-out for hand-authored modeless TSs with an "independent" E0, deliberately: for an ILT-based reaction the TS E0 is never referenced by `apply_inverse_laplace_transform_method` when n >= 0.25, acts only as a grain-threshold cutoff when n < 0.25, and in every case the resulting k(E) is renormalized so its canonical average reproduces the high-pressure-limit Arrhenius k(T) (rmgpy/pdep/network.py), which depends on Ea and not on E0(TS). So the old "protection" gave those inputs a meaningless structural zero, not a correct dln(r)/dE0; the joint E0+Ea coordinate is the only meaningful "raise this barrier" derivative for any ILT reaction, whatever the provenance of its E0. `_ts_e0_is_synthetic` and its tolerance constant are deleted outright (not demoted to a log line): the relation carries no decision weight, and warning about a relation that fails for 99.6% of real networks would only mislead. The structural condition is trivially invariant across a perturb/unperturb pair -- it depends only on the presence of statmech modes and the kinetics type, neither of which the perturbation touches -- so Ea can never be left shifted. Verified on a real RMG-written T3 network (network13_2, CH2CNH <=> CH3CN, ILT barrier with n=0, E0(TS) missing the relation by 137 kJ/mol): TS coefficients move from +5e-16..+2.5e-14 mol/J (noise) to -1.7e-5..-9.1e-5 mol/J at the four sensitivity conditions, negative as expected (raising the barrier slows the reaction), identical in both direction keys (the equilibrium constant is barrier-independent), and of the same order as -1/RT; the well rows (1.0e-7..3.8e-6 mol/J) are unchanged. Test updates, and why each new expectation is correct: - test_modeless_ts_with_independent_e0_is_not_perturbed_for_ea is replaced by test_ilt_reaction_with_unrelated_ts_e0_still_perturbs_ea, a regression test using the real network13_2 energies: the old test asserted the guard's carve-out (Ea untouched when the relation fails), which is exactly the defect; the new contract is that Ea moves for every ILT/Arrhenius reaction. - test_ts_e0_is_synthetic_tries_products_side_when_reactants_side_fails and test_ts_e0_is_synthetic_tolerance_boundary are deleted with the function they tested. - test_ilt_reaction_perturbs_e0_and_ea and test_network_kinetics_is_perturbed_when_present no longer arrange species E0s to satisfy the relation, since it is no longer read. - The tst_ilt_mixed fixture's 'entrance1' TS E0 moves from 0.0 to 2.0 kcal/mol so it no longer satisfies the relation. The fixture previously satisfied it trivially (every energy involved was 0.0), which is precisely why the earlier revision's integration test passed while real networks failed; the integration test now asserts the relation is broken and that the ILT TS coefficients are within two orders of magnitude of the well coefficients, not just nonzero.
Arkane's PDep sensitivity analysis perturbs
conformer.E0. For path reactions whose k(E) comes from an inverse Laplace transform instead of RRKM, that does nothing at all — the sensitivity coefficients come back as exactly zero.Since
E0(TS) = Σ E0(reactants) + Eaby construction, this perturbsEaby the same amount alongside E0, which reaches both the ILT convolution and the renormalization target.A hand-authored modeless TS with a real E0 keeps the old behavior; applied to every path reaction sharing the TS object, matching the E0 perturbation's reach; and skipped for RRKM reactions, where it would double-count.