Skip to content

Conversation

@12Chao
Copy link

@12Chao 12Chao commented Apr 1, 2024

Motivation or Problem

This PR adds in coverage dependent thermodynamic models for heterogeneous catalysis modeling. An adsorbate's enthalpy and entropy should be affected by other adsorbates around it. The PR enables RMG to use a polynomial model to estimate the change of an adsorbate's enthalpy or entropy based on the coverage of other adsorbates on the catalyst surface. By doing this, a Cantera yaml file with thermodynamic coverage dependent data can be generated at the end of a RMG simulation, and it can be used by Cantera (>=3.0) to run PFR simulation. RMG looks into the database to read the thermo coverage dependent models.

Description of Changes

surface.pyx file is modified to change the species enthalpy and entropy based on the coverage dependent (polynomial) models in the database.
nasa.pyx, wilhoit.pyx, and thermodata.pyx are all modified to be able to save the thermo coverage dependent model for each species.
main.py is modified to be able to incorporate thermo coverage dependence modeling as an option and be able to write Cantera yaml file with thermo coverage models in.

Testing

Unit tests are added in thermo and solver folders to test if a species with thermo coverage dependent model can be created and whether the simulation can be run.
To further test the effect to the model generation, a thermo database is made up with the thermo coverage-dependent models, and the data base was used to make a CPOX model on Pt. In the CPOX on Pt model, OX self interaction and COX self interaction are included. The model was then run through a PFR simulation with Cantera 3.0, a significant drop of coverage of COX on the surface was observed, and therefore validate the code modification. Test files are attached here.
test.zip

Reviewer Tips

Please try to pull the changes from this branch and used the database provided in the test.zip to generate a model of your own choice see if it makes any difference to your model compared to without thermo cov dependent model. You can also generate a model with the RMG input file provided in the test.zip, then in the input file turn thermoCoverageDependence to False to generate another model without coverage dependence. Then use simultion.py in test.zip to run simulations for the two RMG models generated to test if there is any difference in the simulation results.

@github-actions
Copy link

github-actions bot commented Apr 2, 2024

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:01:05
Current: Execution time (DD:HH:MM:SS): 00:00:01:05
Reference: Memory used: 2775.86 MB
Current: Memory used: 2793.33 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)

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:02:08
Current: Execution time (DD:HH:MM:SS): 00:00:02:09
Reference: Memory used: 2895.55 MB
Current: Memory used: 2918.08 MB

liquid_oxidation Failed Core Comparison ❌

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

Non-identical kinetics! ❌
original:
rxn: CCCC(C)O[O](20) + CCCCCO[O](103) <=> oxygen(1) + CCCC(C)[O](64) + CCCCC[O](128) origin: Peroxyl_Disproportionation
tested:
rxn: CCCC(C)O[O](20) + CCCCCO[O](104) <=> oxygen(1) + CCCC(C)[O](61) + CCCCC[O](127) origin: Peroxyl_Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): 3.77 4.45 4.86 5.14 5.48 5.68 5.96 6.09
k(T): 7.83 7.49 7.23 7.02 6.68 6.42 5.95 5.61

kinetics: Arrhenius(A=(3.2e+12,'cm^3/(mol*s)'), n=0, Ea=(3.756,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R""")
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(0,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing""")
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing

liquid_oxidation Failed Edge Comparison ❌

Original model has 202 species.
Test model has 202 species. ✅
Original model has 1610 reactions.
Test model has 1613 reactions. ❌
The original model has 1 reactions that the tested model does not have. ❌
rxn: CCCCCO[O](103) + CCCCCO[O](103) <=> oxygen(1) + CCCCC=O(120) + CCCCCO(130) origin: Peroxyl_Termination
The tested model has 4 reactions that the original model does not have. ❌
rxn: C[CH]CCCO(157) + CCCCCO[O](104) <=> CC=CCCO(183) + CCCCCOO(105) origin: Disproportionation
rxn: C[CH]CCCO(157) + CCCCCO[O](104) <=> C=CCCCO(184) + CCCCCOO(105) origin: Disproportionation
rxn: C[CH]CCCO(157) + C[CH]CCCO(157) <=> CC=CCCO(183) + CCCCCO(130) origin: Disproportionation
rxn: C[CH]CCCO(157) + C[CH]CCCO(157) <=> C=CCCCO(184) + CCCCCO(130) origin: Disproportionation

Non-identical kinetics! ❌
original:
rxn: CCCC(C)O[O](20) + CCCCCO[O](103) <=> oxygen(1) + CCCC(C)[O](64) + CCCCC[O](128) origin: Peroxyl_Disproportionation
tested:
rxn: CCCC(C)O[O](20) + CCCCCO[O](104) <=> oxygen(1) + CCCC(C)[O](61) + CCCCC[O](127) origin: Peroxyl_Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): 3.77 4.45 4.86 5.14 5.48 5.68 5.96 6.09
k(T): 7.83 7.49 7.23 7.02 6.68 6.42 5.95 5.61

kinetics: Arrhenius(A=(3.2e+12,'cm^3/(mol*s)'), n=0, Ea=(3.756,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R""")
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(0,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing""")
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing

Non-identical kinetics! ❌
original:
rxn: CCCCCO[O](103) + CC(CC(C)OO)O[O](104) <=> oxygen(1) + CCCCC[O](128) + CC([O])CC(C)OO(127) origin: Peroxyl_Disproportionation
tested:
rxn: CCCCCO[O](104) + CC(CC(C)OO)O[O](103) <=> oxygen(1) + CCCCC[O](127) + CC([O])CC(C)OO(129) origin: Peroxyl_Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): 3.52 4.27 4.71 5.01 5.39 5.61 5.91 6.06
k(T): 7.79 7.46 7.21 7.00 6.67 6.41 5.94 5.60

kinetics: Arrhenius(A=(3.2e+12,'cm^3/(mol*s)'), n=0, Ea=(4.096,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R""")
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(0.053,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing Ea raised from 0.0 to 0.2 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing
Ea raised from 0.0 to 0.2 kJ/mol to match endothermicity of reaction.

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:22
Current: Execution time (DD:HH:MM:SS): 00:00:01:23
Reference: Memory used: 2909.03 MB
Current: Memory used: 2919.82 MB

nitrogen Passed Core Comparison ✅

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

nitrogen Passed Edge Comparison ✅

Original model has 132 species.
Test model has 132 species. ✅
Original model has 997 reactions.
Test model has 997 reactions. ✅

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:02:22
Current: Execution time (DD:HH:MM:SS): 00:00:02:22
Reference: Memory used: 2764.76 MB
Current: Memory used: 2775.02 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. ✅

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 ✅

Regression test sulfur:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:54
Current: Execution time (DD:HH:MM:SS): 00:00:00:54
Reference: Memory used: 2876.49 MB
Current: Memory used: 2867.09 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

Observables Test Case: SO2 Comparison

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

sulfur Passed Observable Testing ✅

Regression test superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:35
Current: Execution time (DD:HH:MM:SS): 00:00:00:35
Reference: Memory used: 2980.01 MB
Current: Memory used: 2989.79 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:24
Current: Execution time (DD:HH:MM:SS): 00:00:02:25
Reference: Memory used: 3457.63 MB
Current: Memory used: 3446.78 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. ✅

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:06:07
Current: Execution time (DD:HH:MM:SS): 00:00:06:08
Reference: Memory used: 3371.70 MB
Current: Memory used: 3386.42 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

Original model has 37 species.
Test model has 37 species. ✅
Original model has 233 reactions.
Test model has 232 reactions. ❌
The original model has 1 reactions that the tested model does not have. ❌
rxn: CCO[O](36) <=> [OH](22) + CC=O(61) origin: intra_H_migration

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 206 species.
Test model has 206 species. ✅
Original model has 1508 reactions.
Test model has 1508 reactions. ✅
The original model has 2 reactions that the tested model does not have. ❌
rxn: CCO[O](36) <=> [OH](22) + CC=O(61) origin: intra_H_migration
rxn: CCCO[O](35) <=> CC[CH]OO(45) origin: intra_H_migration
The tested model has 2 reactions that the original model does not have. ❌
rxn: CCCO[O](35) <=> [OH](21) + CCC=O(50) origin: intra_H_migration
rxn: CCO[O](36) <=> C[CH]OO(63) origin: intra_H_migration

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:40
Current: Execution time (DD:HH:MM:SS): 00:00:00:40
Reference: Memory used: 2698.19 MB
Current: Memory used: 2722.21 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. ✅

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 ✅

Regression test RMS_constantVIdealGasReactor_fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:03:03
Current: Execution time (DD:HH:MM:SS): 00:00:03:05
Reference: Memory used: 3595.30 MB
Current: Memory used: 3578.98 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. ✅

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 ✅

beep boop this comment was written by a bot 🤖

@codecov
Copy link

codecov bot commented Apr 2, 2024

Codecov Report

Attention: Patch coverage is 24.39024% with 31 lines in your changes missing coverage. Please review.

Project coverage is 54.83%. Comparing base (a458b1d) to head (5411e20).
Report is 50 commits behind head on main.

Files Patch % Lines
rmgpy/rmg/main.py 9.09% 30 Missing ⚠️
rmgpy/rmg/input.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2646      +/-   ##
==========================================
- Coverage   54.86%   54.83%   -0.03%     
==========================================
  Files         125      125              
  Lines       37050    37091      +41     
==========================================
+ Hits        20326    20340      +14     
- Misses      16724    16751      +27     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@rwest rwest changed the title Cov dep therm Coverage-dependent thermochemistry for catalysis Apr 5, 2024
@github-actions
Copy link

github-actions bot commented Jul 5, 2024

This pull request is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant pull request, otherwise it will automatically be closed in 30 days.

@github-actions github-actions bot added stale stale issue/PR as determined by actions bot and removed stale stale issue/PR as determined by actions bot labels Jul 5, 2024
@github-actions
Copy link

This pull request is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant pull request, otherwise it will automatically be closed in 30 days.

@github-actions github-actions bot added the stale stale issue/PR as determined by actions bot label Oct 16, 2024
@github-actions github-actions bot removed the stale stale issue/PR as determined by actions bot label Oct 20, 2024
@github-actions
Copy link

This pull request is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant pull request, otherwise it will automatically be closed in 30 days.

@github-actions github-actions bot added the stale stale issue/PR as determined by actions bot label Jan 19, 2025
@github-actions github-actions bot removed the stale stale issue/PR as determined by actions bot label Jan 22, 2025
@rwest rwest self-assigned this Apr 22, 2025
@sevyharris sevyharris self-requested a review April 29, 2025 14:48
@github-actions
Copy link

This pull request is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant pull request, otherwise it will automatically be closed in 30 days.

@github-actions github-actions bot added the stale stale issue/PR as determined by actions bot label Aug 12, 2025
@github-actions github-actions bot added the abandoned abandoned issue/PR as determined by actions bot label Sep 12, 2025
@github-actions github-actions bot closed this Sep 12, 2025
@sevyharris sevyharris removed stale stale issue/PR as determined by actions bot abandoned abandoned issue/PR as determined by actions bot labels Sep 12, 2025
@sevyharris sevyharris reopened this Sep 12, 2025
@rwest rwest self-requested a review October 6, 2025 20:16
@bjkreitz bjkreitz self-requested a review October 7, 2025 21:00
@github-actions
Copy link

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:57
Current: Execution time (DD:HH:MM:SS): 00:00:00:49
Reference: Memory used: 747.30 MB
Current: Memory used: 747.85 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: C1=CC2C=CC=1C=C2
tested: C1=CC2C=CC=1C=C2

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
164.90 80.93 22.21 28.97 35.25 40.69 48.70 53.97 64.36
129.39 79.85 22.98 30.09 36.61 42.21 50.22 55.39 65.95

thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsCsH) + group(Cdd-CdsCds) + Estimated bicyclic component: polycyclic(s4_6_6_ane) - ring(Cyclohexane) - ring(Cyclohexane) + ring(124cyclohexatriene) + ring(124cyclohexatriene)
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsCsH) + group(Cdd-CdsCds) + Estimated bicyclic component: polycyclic(s4_6_6_ane) - ring(Cyclohexane) - ring(Cyclohexane) + ring(124cyclohexatriene) + ring(1,4-Cyclohexadiene)

Non-identical kinetics! ❌
original:
rxn: [c]1ccccc1(3) + C1=CC2C=C[C]1C=C2(49) <=> benzene(1) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [c]1ccccc1(3) + C1=CC2C=C[C]1C=C2(49) <=> benzene(1) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -3.00 -0.74 0.70 1.71 3.07 3.97 5.33 6.15
k(T): 4.24 4.69 5.05 5.33 5.79 6.14 6.78 7.23

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(9.943,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 38.5 to 41.6 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(0,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 38.5 to 41.6 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: [H](4) + C1=CC2C=C[C]1C=C2(49) <=> [H][H](11) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [H](4) + C1=CC2C=C[C]1C=C2(49) <=> [H][H](11) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -7.44 -4.08 -2.05 -0.69 1.02 2.06 3.46 4.18
k(T): 5.77 5.83 5.88 5.92 5.97 6.02 6.10 6.16

kinetics: Arrhenius(A=(4.06926e+10,'cm^3/(mol*s)'), n=0.47, Ea=(18.137,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 75.2 to 75.9 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(4.06926e+10,'cm^3/(mol*s)'), n=0.47, Ea=(0,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 75.2 to 75.9 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: [CH]=C(7) + C1=CC2C=C[C]1C=C2(49) <=> C=C(13) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]=C(7) + C1=CC2C=C[C]1C=C2(49) <=> C=C(13) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -7.17 -3.66 -1.56 -0.16 1.60 2.65 4.05 4.75
k(T): 4.06 4.76 5.18 5.46 5.81 6.02 6.30 6.44

kinetics: Arrhenius(A=(7.23e+12,'cm^3/(mol*s)'), n=0, Ea=(19.262,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_N-Sp-6R!H-4CHNS in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Arrhenius(A=(7.23e+12,'cm^3/(mol*s)'), n=0, Ea=(3.841,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_N-Sp-6R!H-4CHNS in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
Identical kinetics comments:
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_N-Sp-6R!H-4CHNS in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2CC2=C1(27) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2CC2=C1(27) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -30.48 -21.35 -15.79 -12.03 -7.23 -4.28 -0.16 2.03
k(T): -4.55 -1.90 -0.23 0.94 2.49 3.50 5.02 5.92

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(47.659,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(12.063,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=C2C1(29) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=C2C1(29) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -31.23 -21.91 -16.23 -12.40 -7.51 -4.50 -0.31 1.91
k(T): -5.30 -2.46 -0.68 0.57 2.21 3.28 4.87 5.80

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(48.686,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 202.2 to 203.7 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(13.089,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 53.5 to 54.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 202.2 to 203.7 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 53.5 to 54.8 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2=CC2C1(28) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2=CC2C1(28) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -27.24 -18.91 -13.84 -10.40 -6.02 -3.30 0.48 2.51
k(T): -1.38 0.48 1.67 2.52 3.68 4.45 5.66 6.39

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(43.208,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 180.2 to 180.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(7.718,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 180.2 to 180.8 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: [CH]=CC=C(15) + C1=CC2C=C[C]1C=C2(49) <=> C=CC=C(17) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]=CC=C(15) + C1=CC2C=C[C]1C=C2(49) <=> C=CC=C(17) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -11.95 -7.61 -5.01 -3.27 -1.10 0.20 1.93 2.80
k(T): -0.49 0.99 1.87 2.46 3.19 3.64 4.23 4.52

kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(23.821,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(8.084,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
Identical kinetics comments:
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]=Cc1ccccc1(12) <=> C1=CC2C=CC=1C=C2(79) + C=Cc1ccccc1(16) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]=Cc1ccccc1(12) <=> C1=CC2C=CC=1C=C2(79) + C=Cc1ccccc1(16) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -12.28 -7.86 -5.21 -3.44 -1.23 0.10 1.87 2.75
k(T): -0.66 0.85 1.76 2.37 3.13 3.58 4.19 4.49

kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(24.273,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(8.328,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
Identical kinetics comments:
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C1)C2(69) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C1)C2(69) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -30.44 -21.32 -15.76 -12.01 -7.22 -4.26 -0.16 2.03
k(T): -4.51 -1.87 -0.20 0.96 2.51 3.52 5.03 5.92

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(47.606,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 195.1 to 199.2 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(12.01,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 46.5 to 50.2 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 195.1 to 199.2 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 46.5 to 50.2 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C2)C1(70) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C2)C1(70) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -32.11 -22.57 -16.76 -12.84 -7.84 -4.76 -0.49 1.78
k(T): -6.18 -3.12 -1.20 0.13 1.88 3.01 4.70 5.67

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(49.895,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 205.2 to 208.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(14.299,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 56.6 to 59.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 205.2 to 208.8 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 56.6 to 59.8 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2=CC(C=C2)C1(71) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2=CC(C=C2)C1(71) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -33.97 -23.97 -17.88 -13.77 -8.54 -5.32 -0.86 1.50
k(T): -8.04 -4.52 -2.32 -0.81 1.18 2.46 4.32 5.39

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(52.457,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 214.4 to 219.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(16.86,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 65.8 to 70.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 214.4 to 219.5 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 65.8 to 70.5 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1C=C2(82) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1C=C2(82) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -30.48 -21.35 -15.79 -12.03 -7.23 -4.28 -0.16 2.03
k(T): -4.55 -1.90 -0.23 0.94 2.49 3.50 5.02 5.92

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(47.659,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(12.063,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1=CC2(83) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1=CC2(83) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -19.49 -12.98 -9.00 -6.29 -2.81 -0.64 2.42 4.08
k(T): 3.96 4.60 5.07 5.43 5.98 6.39 7.11 7.60

kinetics: Arrhenius(A=(51.5097,'cm^3/(mol*s)'), n=3.635, Ea=(33.226,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 9.0 Ea raised from 133.4 to 139.0 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(51.5097,'cm^3/(mol*s)'), n=3.635, Ea=(1.036,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 9.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 9.0
Ea raised from 133.4 to 139.0 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 9.0

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:02:20
Current: Execution time (DD:HH:MM:SS): 00:00:01:56
Reference: Memory used: 845.11 MB
Current: Memory used: 846.24 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(33) <=> CCC[C](C)OO(78) origin: intra_H_migration
rxn: CCCC[CH]OO(96) <=> C[CH]CCCOO(63) origin: intra_H_migration
The tested model has 5 reactions that the original model does not have. ❌
rxn: C[CH]CC(C)OO(32) <=> [OH](22) + CCCC(C)=O(29) origin: intra_H_migration
rxn: C[CH]CCCOO(60) <=> [OH](22) + CCCCC=O(57) 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(123) origin: Peroxyl_Disproportionation
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CC(C)OO(101) + 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

Non-identical kinetics! ❌
original:
rxn: CCC(CC)O[O](36) + CCCCCO[O](35) <=> oxygen(1) + CCC([O])CC(67) + CCCCC[O](69) origin: Peroxyl_Disproportionation
tested:
rxn: CCC(CC)O[O](37) + CCCCCO[O](35) <=> oxygen(1) + CCC([O])CC(69) + CCCCC[O](67) origin: Peroxyl_Disproportionation

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): 7.83 7.49 7.23 7.02 6.68 6.42 5.95 5.61

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,'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.

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:11
Current: Execution time (DD:HH:MM:SS): 00:00:01:03
Reference: Memory used: 848.15 MB
Current: Memory used: 849.01 MB

nitrogen Failed Core Comparison ❌

Original model has 41 species.
Test model has 41 species. ✅
Original model has 359 reactions.
Test model has 360 reactions. ❌
The tested model has 1 reactions that the original model does not have. ❌
rxn: HNO(48) + HCO(13) <=> NO(38) + CH2O(18) origin: H_Abstraction

nitrogen Failed Edge Comparison ❌

Original model has 133 species.
Test model has 133 species. ✅
Original model has 981 reactions.
Test model has 983 reactions. ❌
The tested model has 2 reactions that the original model does not have. ❌
rxn: HNO(48) + HCO(13) <=> NO(38) + CH2O(18) origin: H_Abstraction
rxn: HON(T)(83) + HCO(13) <=> NO(38) + CH2O(18) origin: Disproportionation

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:02:04
Current: Execution time (DD:HH:MM:SS): 00:00:01:48
Reference: Memory used: 733.81 MB
Current: Memory used: 734.38 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. ✅

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:47
Current: Execution time (DD:HH:MM:SS): 00:00:00:39
Reference: Memory used: 842.12 MB
Current: Memory used: 845.25 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

Observables Test Case: SO2 Comparison

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

sulfur Passed Observable Testing ✅

Regression test superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:30
Current: Execution time (DD:HH:MM:SS): 00:00:00:25
Reference: Memory used: 934.03 MB
Current: Memory used: 933.70 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:03:30
Current: Execution time (DD:HH:MM:SS): 00:00:02:56
Reference: Memory used: 2334.90 MB
Current: Memory used: 2408.35 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. ✅

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:33:54
Current: Execution time (DD:HH:MM:SS): 00:00:14:16
Reference: Memory used: 3473.13 MB
Current: Memory used: 3281.38 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

Original model has 35 species.
Test model has 35 species. ✅
Original model has 185 reactions.
Test model has 140 reactions. ❌
The original model has 3 species that the tested model does not have. ❌
spc: CH3
spc: CCCC(C)O(47)
spc: CCCC=O(94)
The tested model has 3 species that the original model does not have. ❌
spc: CCH2
spc: [CH2]CCCCOO(66)
spc: CC1CC(C)O1(96)
The original model has 54 reactions that the tested model does not have. ❌
rxn: CCC(CC)O[O](22) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
rxn: oxygen(1) + O(42) <=> [OH](24) + [O]O(13) origin: H_Abstraction
rxn: [OH](24) + OO(23) <=> [O]O(13) + O(42) origin: H_Abstraction
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> C=CCCC(17) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> C=CCCC(17) + pentane(2) origin: Disproportionation
rxn: [OH](24) + [CH2]CCCC(12) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](24) + C[CH]CCC(11) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [CH3](10) + CCCC=O(94) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
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: [O]O(13) + CCCC(C)[O](44) <=> oxygen(1) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> C=CCCC(17) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCCC(C)OO(26) <=> CCCC(C)O[O](21) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCC(C)O(47) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> C=CCCC(17) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)O(47) origin: H_Abstraction
rxn: O(42) + C=CCCC(17) <=> CCCC(C)O(47) origin: 1,3_Insertion_ROR
rxn: [OH](24) + CCCC(C)O(47) <=> O(42) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(47) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O(47) <=> OO(23) + CCCC(C)[O](44) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCC(CC)O[O](22) <=> CC=CCC(16) + CCC(CC)OO(27) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](22) <=> CC=CCC(16) + CCC(CC)OO(27) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: CC[CH]CC(7) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(32) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(27) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> [CH2]CC(CC)OO(32) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](22) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCC(CC)OO(27) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCCC(C)OO(26) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCCOO(65) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(65) + CCCC(C)O(47) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](24) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](22) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
The tested model has 9 reactions that the original model does not have. ❌
rxn: C[CH]CC(C)OO(37) <=> [OH](25) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
rxn: CCCCCO[O](61) <=> [CH2]CCCCOO(66) origin: intra_H_migration
rxn: [O]O(13) + [CH2]CCCCOO(66) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(66) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> O(42) + [CH2]CCCCOO(66) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(66) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(66) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH2](6) + [CH2]CC(5) <=> pentane(2) origin: R_Recombination

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 107 species.
Test model has 99 species. ❌
Original model has 549 reactions.
Test model has 377 reactions. ❌
The original model has 8 species that the tested model does not have. ❌
spc: CCCCCOOOO(101)
spc: CCCC(C)OOO(102)
spc: CCCCCO(103)
spc: CCC[CH]CO(104)
spc: CCCCCOOO
spc: OOO(106)
spc: CCC(CC)OOO(107)
spc: CCCCCOOO(108)
The original model has 172 reactions that the tested model does not have. ❌
rxn: CCC(CC)O[O](22) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
rxn: oxygen(1) + O(42) <=> [OH](24) + [O]O(13) origin: H_Abstraction
rxn: [OH](24) + OO(23) <=> [O]O(13) + O(42) origin: H_Abstraction
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> C=CCCC(17) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> C=CCCC(17) + pentane(2) origin: Disproportionation
rxn: [OH](24) + [CH2]CCCC(12) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](24) + C[CH]CCC(11) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [O]O(13) + CCCC(C)[O](44) <=> oxygen(1) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> C=CCCC(17) + CCCC(C)O(47) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> C=CCCC(17) + CCCC(C)O(47) origin: Disproportionation
rxn: O(42) + C=CCCC(17) <=> CCCC(C)O(47) origin: 1,3_Insertion_ROR
rxn: [OH](24) + CCCC(C)O(47) <=> O(42) + CCCC(C)[O](44) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O(47) <=> OO(23) + CCCC(C)[O](44) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCC(CC)O[O](22) <=> CC=CCC(16) + CCC(CC)OO(27) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](22) <=> CC=CCC(16) + CCC(CC)OO(27) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: CC[CH]CC(7) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(32) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](22) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCC(CC)OO(27) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCCC(C)OO(26) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCCOO(65) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](24) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](22) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC[C](C)OO(54) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(36) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(26) origin: H_Abstraction
rxn: CC[C](CC)OO(59) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [H](8) + [OH](24) <=> O(42) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + O(42) + CCCCC=O(62) origin: Peroxyl_Termination
rxn: [O]O(13) + CCCCCO[O](61) <=> CCCCCOOOO(101) origin: R_Recombination
rxn: [O]O(13) + CCCC(C)[O](44) <=> OO(23) + CCCC(C)=O(34) origin: Disproportionation
rxn: [O]O(13) + CCCC(C)[O](44) <=> CCCC(C)OOO(102) origin: R_Recombination
rxn: C=CC[CH]C(69) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=CCCC(17) + C[CH]CCC(11) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(89) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: C=CCCC(17) + CC[CH]CC(7) <=> C=CC[CH]C(69) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(17) + CC[CH]CC(7) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> CCCC[CH]OO(84) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(89) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](22) + CCCCCO[O](61) <=> oxygen(1) + CCC(=O)CC(30) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCC(CC)O[O](22) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCC(O)CC(46) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCC(CC)OO(27) <=> C=CCCC(17) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: C=CCCC(17) + CCC(CC)O[O](22) <=> [CH2]C=CCC(71) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCC(CC)OO(27) <=> C=CCCC(17) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCC(CC)OO(27) <=> C=CCCC(17) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCC(CC)OO(27) <=> C=CCCC(17) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC(CC)O[O](22) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(89) + CCC(CC)OO(27) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCC(CC)O[O](22) <=> CCCC(C)=O(34) + CCC(CC)OO(27) origin: Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)=O(34) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCCC(C)O(47) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCCC(C)OO(26) <=> C=CCCC(17) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)O[O](21) <=> [CH2]C=CCC(71) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCC(C)OO(26) <=> C=CCCC(17) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)OO(26) <=> C=CCCC(17) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)OO(26) <=> C=CCCC(17) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(89) + CCCC(C)OO(26) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCCC(C)O[O](21) <=> CCCC(C)=O(34) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CC(C)OO(37) + CCCC(C)OO(26) <=> CCC[C](C)OO(54) + CCCC(C)OO(26) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(36) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(38) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(26) origin: H_Abstraction
rxn: C=CCCC(17) + [CH2]CCCC(12) <=> C=CC[CH]C(69) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(17) + [CH2]CCCC(12) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CC[CH]CCOO(64) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCC[CH]COO(63) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCCC[CH]OO(84) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> [CH2]CCCC(12) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: C[CH]CC(C)OO(37) + CCC(CC)OO(27) <=> CC[C](CC)OO(59) + CCCC(C)OO(26) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(27) origin: H_Abstraction
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCCCCO(103) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=CCCC(17) + CCCCCO[O](61) <=> [CH2]C=CCC(71) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(89) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCCCCO[O](61) <=> CCCC(C)=O(34) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](24) + C=CCCC(17) <=> O(42) + C=CC[CH]C(69) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + [CH2]C=CCC(71) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + [CH2]CCC=C(72) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + C=[C]CCC(73) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + [CH]=CCCC(74) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> [CH2]C(O)CCC(97) origin: R_Addition_MultipleBond
rxn: [OH](24) + C=CCCC(17) <=> CCC[CH]CO(104) origin: R_Addition_MultipleBond
rxn: [OH](24) + CCCC(C)[O](44) <=> O(42) + CCCC(C)=O(34) origin: Disproportionation
rxn: O(42) + C=CCCC(17) <=> CCCCCO(103) origin: 1,3_Insertion_ROR
rxn: C=CC[CH]C(69) + CCCC(C)OO(26) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=CCCC(17) + C[CH]CC(C)OO(37) <=> [CH2]C=CCC(71) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCC(C)OO(26) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)OO(26) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)OO(26) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> C=CC[CH]C(69) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> [CH2]C=CCC(71) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> [CH2]CCC=C(72) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)O(47) <=> C=CCCC(17) + CCCC(C)[O](44) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)O(47) <=> C=CCCC(17) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CCCC(C)=O(34) + CCCC(C)OO(26) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(89) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)O[O](21) + CCC(CC)OO[O](48) <=> oxygen(1) + CCCC(C)[O](44) + CCC(CC)O[O](22) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCC(C)OO[O](49) <=> oxygen(1) + CCCC(C)[O](44) + CCCC(C)O[O](21) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCOO[O](105) <=> oxygen(1) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Peroxyl_Disproportionation
rxn: OO(23) + OOO(106) <=> [O]O(13) + [O]O(13) + O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCC(CC)OO(27) <=> [O]O(13) + O(42) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OOO(107) <=> [O]O(13) + O(42) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCCC(C)OO(26) <=> [O]O(13) + O(42) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OOO(102) <=> [O]O(13) + O(42) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCCCCOO(78) <=> [O]O(13) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOOO(108) <=> [O]O(13) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](22) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(26) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](22) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCC(C)OOO(102) <=> O(42) + CCC(CC)O[O](22) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](22) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOOO(108) <=> O(42) + CCC(CC)O[O](22) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(26) + CCCC(C)OOO(102) <=> O(42) + CCCC(C)O[O](21) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCC(C)OOO(102) <=> O(42) + CCCC(C)O[O](21) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(26) + CCCCCOOO(108) <=> O(42) + CCCC(C)O[O](21) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOOO(108) <=> O(42) + CCCCCO[O](61) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition

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:33
Current: Execution time (DD:HH:MM:SS): 00:00:00:30
Reference: Memory used: 699.38 MB
Current: Memory used: 697.97 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. ✅

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:03:43
Current: Execution time (DD:HH:MM:SS): 00:00:03:19
Reference: Memory used: 2449.65 MB
Current: Memory used: 2514.58 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. ✅

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:34
Current: Execution time (DD:HH:MM:SS): 00:00:00:31
Reference: Memory used: 849.88 MB
Current: Memory used: 849.33 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. ✅

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 🤖

@sevyharris
Copy link
Contributor

I was able to build a CO(g) + H2(g) surface reaction model with and without coverage dependence:
image

I had been assuming the wrong units (J/mol instead of eV/molecule) on my earlier attempts, so it's definitely a good idea to force the author to include units and be extra careful when entering these coefficients.

@sevyharris
Copy link
Contributor

sevyharris commented Nov 7, 2025

Just a few more things left to work through:

  1. Is it possible to remove the np_list definition in util.py? This feels like an unnecessary layer of abstraction that can perhaps be avoided by adding .value_si to some of the quantity variables
  2. I need to delve a little deeper into the solver.pyx code before I sign off on it
  3. I want to see if it's possible to avoid adding the import cantera call in main.py. It's a big dependency to be adding just to get the index of the coverage-dependent species ✔️ yes this is possible. See suggestions below
  4. I was having trouble exercising the new code in main.py that writes the cantera file, so I want to confirm whether that's just a me problem or a sign of bigger trouble I was able to reach the code in the debugger, but there is one potential problem: thermo dependence is only written at the very end of model generation. So if the model generation gets cut short or never converges, then you end up with just chemkin files that have no coverage dependence. You'd have to run ck2yaml and then manually copy your thermo dependence into the cantera file. I think fixing this problem is outside the scope of this PR, but it's still something we should be aware of. ✔️
  5. I need to test whether writing coverage-dependent thermo works for cross species interactions. ❌ this does not work. may be worth adding a unit test in addition to suggestions below

import yaml
from cantera import ck2yaml
from scipy.optimize import brute
import cantera as ct
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we can avoid importing cantera here because it's just used to look up the order of the species in a yaml file, and this can be done with information that already exists in memory.

# add thermo coverage dependence to Cantera files
chem_yaml_path = os.path.join(self.output_directory, "cantera", "chem.yaml")
gas = ct.Solution(chem_yaml_path, "gas")
surf = ct.Interface(chem_yaml_path, "surface1", [gas])
Copy link
Contributor

Choose a reason for hiding this comment

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

Instead of loading the cantera gas and surf objects, we can get the order of species names in the cantera file with something like this:
cantera_names = [content["species"][i]['name'] for i in range(len(content["species"]))]

parameters['enthalpy-coefficients'] = [value.value_si for value in parameters['enthalpy-coefficients']]
parameters['entropy-coefficients'] = [value.value_si for value in parameters['entropy-coefficients']]
try:
content["species"][gas.n_species+surf.species_index(sp.to_chemkin())]['coverage-dependencies'][sp.to_chemkin()] = parameters
Copy link
Contributor

@sevyharris sevyharris Nov 7, 2025

Choose a reason for hiding this comment

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

Then we can get the species order with a call like this:

content["species"][cantera_names.index(s.to_chemkin())]['coverage-dependencies'][sp.to_chemkin()] = parameters

Copy link
Contributor

Choose a reason for hiding this comment

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

(I edited this suggestion to fix the cross-species interaction bug described below)

try:
content["species"][gas.n_species+surf.species_index(sp.to_chemkin())]['coverage-dependencies'][sp.to_chemkin()] = parameters
except KeyError:
content["species"][gas.n_species+surf.species_index(sp.to_chemkin())]['coverage-dependencies'] = {sp.to_chemkin(): parameters}
Copy link
Contributor

Choose a reason for hiding this comment

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

I think there's a bug here preventing the code from writing cross-species interactions. The first index should reference the species we're writing thermo for. The second index should reference the species it's interacting with, and these should be allowed to be different.

content["species"][FIRST INDEX]['coverage-dependencies][SECOND INDEX]

Here, I think FIRST INDEX refers to species s in the code, and SECOND INDEX should come from the sp variable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants