Skip to content

Conversation

jonwzheng
Copy link
Contributor

@jonwzheng jonwzheng commented Jul 8, 2025

Motivation or Problem

Some examples have also fallen out of date.
The process of fixing the examples shows that the codebase could perhaps be improved or more clear, so this includes some code updates too.

Description of Changes

Sometimes the simulations are really long. If it appears to run fine and doesn't have any obvious errors, I didn't run to completion, but it should be OK. I denote these with "seems OK"

Since the number of examples is large, here I will only include comments if it was fixed. A checkmark just indicates that it was fine:

  • 1,3-hexadiene At the very end you get Error: Invalid k(E) values computed for path reaction "[CH2]C(C=CCC)C([CH2])C=CCC(47) <=> [CH2]C=CC(CC)C([CH2])C=CCC(44)". Error: Increasing number of grains did not decrease error enough (Current badness: 0.8, previous 0.8). Something must be wrong with network PDepNetwork #13 rmgpy.exceptions.InvalidMicrocanonicalRateError: ('Invalid k(E) values computed for path reaction "[CH2]C(C=CCC)C([CH2])C=CCC(47) <=> [CH2]C=CC(CC)C([CH2])C=CCC(44)".', 6.254637800015352, 1.0)
  • c3h4 seems OK
  • catalysis/ch4_o2
  • catalysis/methane_steam OSError: Couldn't find kinetics library /home/jonzheng/greengroup/RMG/RMG-database/input/kinetics/libraries/Surface/Deutschmann_Ni/reactions.py This is fixed by updating the library path.
  • ch3no2
  • CO2RR seems OK
  • commented Fixed by modifying the sampled datapoints in interval rmgpy.exceptions.KineticsError: The master equation data needs more temperature and pressure data points than are placed into Chebyshev polynomial. Currently, the data has 2 temperatures and the polynomial is set to have 6. The data has 3 pressures and the polynomial is set ot have 4
  • diesel seems OK
  • e85 Fixed by adding !surface rmgpy.exceptions.DatabaseError: Can't estimate thermo of vacant site. Should be in library (and should be 0).
  • ethane-oxidation
  • external_library seems OK
  • gri_mech_rxn_lib Fixed. The library fails carbene species constraints. This accompanies an update to the species constraints code to be more descriptive.
  • halogens seems OK
  • heptane-eg5
  • heptane-filterReactions seems OK
  • liquid_cat seems OK
  • liquid_phase seems OK
  • liquid_phase_constSPC seems OK
  • methylformate Fixed by adding !surface, but another error pops up. AttributeError: 'NoneType' object has no attribute 'kinetics' . This second error should be fixed by Update incorrect Glarborg/C2 database entry RMG-database#699. Original error: rmgpy/data/thermo.py", line 1572, in get_thermo_data_for_surface_species raise DatabaseError("Can't estimate thermo of vacant site. Should be in library (and should be 0).")
  • minimal
  • minimal_dynamics
  • minimal_ml Currently broken as we await a patch for Chemprop from RMG 3.9 to 3.11
  • minimal_multisurf
  • minimal_restart_from_seed Had a problem with initiating kinetics family and libraries of seed, edge_seed which aren't handled by the code.
  • minimal_sensitivity Fixed by adding !surface for error: Error: Error attempting to get thermo for species Ni_4 with structure 1 X u0 p0 c0. rmgpy.exceptions.DatabaseError: Can't estimate thermo of vacant site. Should be in library (and should be 0).
  • minimal_staged
  • minimal_surface
  • minimal_thermofilter
  • MR_test Fixed by modifying the sampled datapoints in interval File "rmgpy/kinetics/chebyshev.pyx", line 193, in rmgpy.kinetics.chebyshev.Chebyshev.fit_to_data rmgpy.exceptions.KineticsError: The master equation data needs more temperature and pressure data points than are placed into Chebyshev polynomial. Currently, the data has 2 temperatures and the polynomial is set to have 6. The data has 3 pressures and the polynomial is set ot have 4
  • nox_transitory_edge Initial error fixed by allowing singlet O2, which may form from primaryThermoLibrary. Initially fails with rmgpy.exceptions.ForbiddenStructureException: Species constraints forbids input species O2(S) RMG[...] Leads to new error from the Julia side: Error: Model core reactions: Error: Too many to print in detail File "/home/jonzheng/greengroup/RMG/RMG-Py/rmgpy/rmg/reactionmechanismsimulator_reactors.py", line 624, in generate_reactor react = Main.Reactor(domain, y0, (0.0, self.tf), p=p) File "/home/jonzheng/.julia/packages/PythonCall/L4cjh/src/JlWrap/any.jl", line 262, in __call__ return self._jl_callmethod($(pyjl_methodnum(pyjlany_call)), args, kwargs) juliacall.JuliaError: MethodError: no method matching +(::Vector{Float64}, ::Float64) For element-wise addition, use broadcasting with dot syntax: array .+ scalar
  • propane_branching seems OK
  • pruning_test
  • rms_constant_V
  • SEI_pure_ACN error: rmgpy/rmg/main.py", line 990, in execute for val in item.reactants + item.products: File "/home/jonzheng/.julia/packages/PythonCall/L4cjh/src/JlWrap/any.jl", line 288, in __add__ return self._jl_callmethod($(pyjl_methodnum(pyjlany_op(+))), other) juliacall.JuliaError: DimensionMismatch: dimensions must match: a has dims (Base.OneTo(2),), b has dims (Base.OneTo(1),), mismatch at 1
  • SEI_pure_EC same as above.
  • SR_test
  • superminimal
  • TEOS Fixed by adding !surface for error: rmgpy.exceptions.DatabaseError: Can't estimate thermo of vacant site. Should be in library (and should be 0).

Other

We may want to add some of these to our testing suite?

This comment was marked as outdated.

@jonwzheng
Copy link
Contributor Author

jonwzheng commented Jul 9, 2025

Some notes so far, now that I've gone through all the examples:

  • A recurring thing is the "Failed to get surface thermo" error, but that's especially mystifying considering those examples don't include surfaces.
  • SEI_pure_ACN error may be a bug with the new PyCall stuff. Wonder why a unit test didn't catch that previously.

Copy link
Member

Choose a reason for hiding this comment

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

I like having more details, but it's a bit annoying that the False is no longer False but is a tuple which would evaluate to True when cast to a boolean. Now you can't use the function so easily inside if blocks etc.

How about returning the reason (as a string) if it's true, and False if it's false?

As long as someone doesn't do something like if fails_species_constraints(species) == True: then that should be safe?

But maybe this is ok.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe we can refactor it to "passes_species_constraint" which evaluates to either True or the reason for failing (str). Then we need to check for passes_species_constraint == True, and if not, the reason is provided.

It's a safer coding practice to explicitly state the equality check (for example if passes = True: rather than if passes).

Copy link
Member

Choose a reason for hiding this comment

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

might want !electrochem and !surface_development as well as !surface ?
(possibly some other things in the recommended.py file)

Copy link
Contributor Author

@jonwzheng jonwzheng Sep 19, 2025

Choose a reason for hiding this comment

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

this example crashed previously, which is why !surface was added. AFAIK these others aren't problematic as their inclusion does not lead to a crash. but we can add this if you want to be preventative

@jonwzheng
Copy link
Contributor Author

Status update: at this point, the easiest problems have been fixed. The remaining ones are either related to codebase functionality or Julia/RMS stuff...

Copy link

github-actions bot commented Jul 9, 2025

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:52
Current: Execution time (DD:HH:MM:SS): 00:00:00:56
Reference: Memory used: 756.82 MB
Current: Memory used: 749.07 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:02
Current: Execution time (DD:HH:MM:SS): 00:00:01:57
Reference: Memory used: 847.42 MB
Current: Memory used: 847.75 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 1590 reactions. ✅
The original model has 2 reactions that the tested 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(51) <=> [OH](22) + CCCCC=O(48) origin: intra_H_migration
The tested model has 2 reactions that the original model does not have. ❌
rxn: C[CH]CC(C)OO(31) <=> CCC[C](C)OO(78) origin: intra_H_migration
rxn: CCCC[CH]OO(96) <=> C[CH]CCCOO(48) origin: intra_H_migration

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

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:00:58
Current: Execution time (DD:HH:MM:SS): 00:00:00:58
Reference: Memory used: 847.00 MB
Current: Memory used: 849.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 Failed Edge Comparison ❌

Original model has 133 species.
Test model has 133 species. ✅
Original model has 983 reactions.
Test model has 983 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)
116.46 53.90 11.62 12.71 13.49 13.96 14.14 13.85 13.58
141.64 58.66 12.26 12.27 12.09 11.96 12.26 12.72 12.15

thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(Cyclopropene) + radical(CdJ-NdO)
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(oxirene) + 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): -49.54 -33.65 -24.16 -17.85 -10.01 -5.35 0.80 3.82
k(T): -66.25 -46.19 -34.19 -26.21 -16.28 -10.36 -2.54 1.31

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""")
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""")
Identical kinetics comments:
kinetics: Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H

Observables Test Case: NC Comparison

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

nitrogen Passed Observable Testing ✅

Regression test oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:31
Current: Execution time (DD:HH:MM:SS): 00:00:01:32
Reference: Memory used: 744.83 MB
Current: Memory used: 746.83 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:38
Current: Execution time (DD:HH:MM:SS): 00:00:00:38
Reference: Memory used: 843.26 MB
Current: Memory used: 845.17 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:25
Current: Execution time (DD:HH:MM:SS): 00:00:00:24
Reference: Memory used: 933.72 MB
Current: Memory used: 935.19 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:00
Current: Execution time (DD:HH:MM:SS): 00:00:02:53
Reference: Memory used: 2369.79 MB
Current: Memory used: 2372.07 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:14:07
Current: Execution time (DD:HH:MM:SS): 00:00:17:46
Reference: Memory used: 3171.76 MB
Current: Memory used: 3218.35 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

Original model has 35 species.
Test model has 35 species. ✅
Original model has 173 reactions.
Test model has 126 reactions. ❌
The original model has 7 species that the tested model does not have. ❌
spc: CCCCCO
spc: CC=O(87)
spc: [CH2]CCC(C)O(93)
spc: CC1CC(C)O1(96)
spc: CC=CC(C)OO(97)
spc: C=CCC(C)OO(98)
spc: CC(CC(C)OO)OO
The tested model has 7 species that the original model does not have. ❌
spc: CCH2
spc: [CH2]CCC(9)
spc: C=CC(19)
spc: C[CH]C(CC)OO(31)
spc: CC[CH]C(C)OO(35)
spc: CC[CH]CCOO(64)
spc: [CH2]CCCCOO(66)
The original model has 74 reactions that the tested model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](26) + [OH](26) <=> OO(23) origin: R_Recombination
rxn: oxygen(1) + O(42) <=> [OH](26) + [O]O(13) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) 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: C[CH]CCC(11) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + [CH2]CCCC(12) <=> OO(23) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + OO(23) <=> [O]O(13) + O(42) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: OO(23) + CCC(CC)OO(25) <=> [OH](26) + O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](26) + O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [O]O(13) + O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + [CH2]CCCC(12) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + C[CH]CCC(11) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](26) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](26) + [O]O(13) + O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: C[CH]CCC(11) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) 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(34) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) 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(34) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCCC(C)O[O](20) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCC(CC)O[O](21) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCC(CC)OO(25) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(75) + pentane(2) 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(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(75) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(75) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(75) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCCOO(75) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](26) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCOO(78) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(25) <=> [O]O(13) + O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(34) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(98) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: CCCC(C)O[O](20) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCC(CC)O[O](21) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
The tested model has 27 reactions that the original model does not have. ❌
rxn: C[CH]C(CC)OO(31) <=> CCC(CC)O[O](20) origin: intra_H_migration
rxn: [O]O(13) + C[CH]C(CC)OO(31) <=> oxygen(1) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(24) origin: H_Abstraction
rxn: OO(23) + C[CH]C(CC)OO(31) <=> [O]O(13) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCC(CC)OO(24) <=> C[CH]C(CC)OO(31) + pentane(2) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]C(CC)OO(31) <=> C=CCCC(18) + CCC(CC)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]C(CC)OO(31) <=> C=CCCC(18) + CCC(CC)OO(24) origin: Disproportionation
rxn: CC[CH]C(C)OO(35) <=> CCCC(C)O[O](21) origin: intra_H_migration
rxn: [O]O(13) + CC[CH]C(C)OO(35) <=> oxygen(1) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(25) origin: H_Abstraction
rxn: OO(23) + CC[CH]C(C)OO(35) <=> [O]O(13) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(25) <=> CC[CH]C(C)OO(35) + pentane(2) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]C(C)OO(35) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]C(C)OO(35) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) <=> [CH2]CCCCOO(66) origin: intra_H_migration
rxn: CC[CH]CCOO(64) <=> CCCCCO[O](61) origin: intra_H_migration
rxn: C[CH2](6) + [CH2]CC(5) <=> pentane(2) origin: R_Recombination
rxn: C[CH]CCC(11) <=> C[CH2](6) + C=CC(19) origin: R_Addition_MultipleBond
rxn: [CH3](10) + [CH2]CCC(9) <=> pentane(2) origin: R_Recombination

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 107 species.
Test model has 77 species. ❌
Original model has 549 reactions.
Test model has 266 reactions. ❌
The original model has 30 species that the tested 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
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 283 reactions that the tested model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](26) + [OH](26) <=> OO(23) origin: R_Recombination
rxn: oxygen(1) + O(42) <=> [OH](26) + [O]O(13) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) 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: C[CH]CCC(11) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + [CH2]CCCC(12) <=> OO(23) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + OO(23) <=> [O]O(13) + O(42) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: OO(23) + CCC(CC)OO(25) <=> [OH](26) + O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](26) + O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [O]O(13) + O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + [CH2]CCCC(12) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + C[CH]CCC(11) <=> O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](26) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](26) + [O]O(13) + O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: C[CH]CCC(11) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) 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(34) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) 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(34) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCCC(C)O[O](20) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCC(CC)O[O](21) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCC(CC)OO(25) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(75) + pentane(2) 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(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(75) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(75) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(75) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCCOO(75) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](26) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCOO(78) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(25) <=> [O]O(13) + O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(34) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(98) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: CCCC(C)O[O](20) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCC(CC)O[O](21) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [H](8) + [OH](26) <=> O(42) origin: R_Recombination
rxn: [CH2](3) + CCCCOO(55) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: [CH2](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: [CH2](3) + CCCC[O](85) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCC(C)=O(31) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: [CH3](10) + CCCC=O(88) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) <=> CCC[C](C)O(89) origin: intra_H_migration
rxn: CC[CH]C(C)O(90) <=> CCCC(C)[O](41) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> [CH2]C(O)CCC(91) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> C[CH]CC(C)O(92) origin: intra_H_migration
rxn: [H](8) + [O]O(13) <=> OO(23) origin: R_Recombination
rxn: [CH2](3) + C[CH]CCOO(94) <=> C[CH]CC(C)OO(34) origin: 1,2_Insertion_carbene
rxn: [CH2]C(C)C(C)OO(95) <=> C[CH]CC(C)OO(34) origin: 1,2_shiftC
rxn: [H](8) + CC=CC(C)OO(97) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: [H](8) + C=CCC(C)OO(98) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: C[CH]OO(56) + C=CC(18) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: CC[CH]C(C)OO(32) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: [CH2]CCC(C)OO(35) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CCC[C](C)OO(58) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> [CH2]C(CCC)OO(33) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CC([O])CC(C)O(99) origin: intra_OH_migration
rxn: [O]O(13) + CC[CH]CCOO(74) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
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: [O]O(13) + [CH2]CCCCOO(76) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: oxygen(1) + CCCC(C)[O](41) <=> [O]O(13) + CCCC(C)=O(31) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](41) <=> CCCC(C)OO[O](48) origin: R_Recombination
rxn: CCCC(C)[O](41) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(46) origin: H_Abstraction
rxn: C=CC[CH]C(64) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=CCCC(17) + C[CH]CCC(11) <=> [CH2]C=CCC(66) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=[C]CCC(68) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: [CH]=CCCC(69) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: CC[CH]CCOO(74) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + 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(76) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCC(C)[O](41) <=> CCCC(C)=O(31) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](41) <=> CC=CCC(16) + CCCC(C)O(46) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](41) <=> C=CCCC(17) + CCCC(C)O(46) origin: Disproportionation
rxn: C=CCCC(17) + CC[CH]CC(7) <=> C=CC[CH]C(64) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(17) + CC[CH]CC(7) <=> [CH2]C=CCC(66) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: C=[C]CCC(68) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: [CH]=CCCC(69) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: CC[CH]CCOO(74) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + 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(76) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCC(C)[O](41) <=> CCCC(C)=O(31) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)[O](41) <=> CC=CCC(16) + CCCC(C)O(46) origin: Disproportionation
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + O(42) + CCCCC=O(72) origin: Peroxyl_Termination
rxn: [O]O(13) + CCCCCO[O](61) <=> CCCCCOOOO(101) origin: R_Recombination
rxn: OO(23) + CC[CH]CCOO(74) <=> [O]O(13) + CCCCCOO(78) 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: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)[O](41) <=> OO(23) + CCCC(C)=O(31) origin: Disproportionation
rxn: [O]O(13) + CCCC(C)[O](41) <=> oxygen(1) + CCCC(C)O(46) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)[O](41) <=> CCCC(C)OOO(102) origin: R_Recombination
rxn: C=CC[CH]C(64) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)O[O](20) <=> [CH2]C=CCC(66) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)=O(31) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(72) + CCCC(C)O(46) origin: Peroxyl_Termination
rxn: CC[CH]CCOO(74) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)O[O](20) <=> CCCC(C)=O(31) + CCCC(C)OO(24) origin: Disproportionation
rxn: C=CC[CH]C(64) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: C=CCCC(17) + CCC(CC)O[O](21) <=> [CH2]C=CCC(66) + CCC(CC)OO(25) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: CCC(CC)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCC(=O)CC(36) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCC(CC)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(72) + CCC(O)CC(47) origin: Peroxyl_Termination
rxn: CC[CH]CCOO(74) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)O[O](21) <=> CCCC(C)=O(31) + CCC(CC)OO(25) origin: Disproportionation
rxn: C=CCCC(17) + [CH2]CCCC(12) <=> C=CC[CH]C(64) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(17) + [CH2]CCCC(12) <=> [CH2]C=CCC(66) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: C=[C]CCC(68) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH]=CCCC(69) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CC[CH]CCOO(74) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCC[CH]COO(73) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCCC[CH]OO(84) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + pentane(2) <=> [CH2]CCCC(12) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)[O](41) <=> CCCC(C)=O(31) + pentane(2) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC(C)[O](41) <=> C=CCCC(17) + CCCC(C)O(46) origin: Disproportionation
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + CC[C](CC)OO(53) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + C[CH]C(CC)OO(37) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(25) <=> CC[C](CC)OO(53) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(25) <=> C[CH]C(CC)OO(37) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(25) <=> [CH2]CC(CC)OO(38) + CCCC(C)O(46) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCC(CC)OO(25) <=> CC[C](CC)OO(53) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCC(CC)OO(25) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + CCC[C](C)OO(58) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + CC[CH]C(C)OO(32) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + [CH2]C(CCC)OO(33) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + [CH2]CCC(C)OO(35) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(24) <=> CCC[C](C)OO(58) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(24) <=> CC[CH]C(C)OO(32) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(24) <=> [CH2]C(CCC)OO(33) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(24) <=> [CH2]CCC(C)OO(35) + CCCC(C)O(46) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCCC(C)OO(24) <=> CCC[C](C)OO(58) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(35) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C=CC[CH]C(64) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=CCCC(17) + CCCCCO[O](61) <=> [CH2]C=CCC(66) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> O(42) + C=CC[CH]C(64) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> O(42) + [CH2]C=CCC(66) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> O(42) + [CH2]CCC=C(67) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> O(42) + C=[C]CCC(68) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> O(42) + [CH]=CCCC(69) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> [CH2]C(O)CCC(91) origin: R_Addition_MultipleBond
rxn: [OH](26) + C=CCCC(17) <=> CCC[CH]CO(104) origin: R_Addition_MultipleBond
rxn: O(42) + C=CCCC(17) <=> CCCCCO(103) origin: 1,3_Insertion_ROR
rxn: O(42) + C=CCCC(17) <=> CCCC(C)O(46) origin: 1,3_Insertion_ROR
rxn: [CH2]CCCC(12) + CC[CH]CCOO(74) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCC[CH]COO(73) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC[CH]OO(84) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(74) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC[CH]COO(73) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC[CH]OO(84) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C=CCCC(17) + CCCC(C)[O](41) <=> C=CC[CH]C(64) + CCCC(C)O(46) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](41) <=> [CH2]C=CCC(66) + CCCC(C)O(46) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](41) <=> [CH2]CCC=C(67) + CCCC(C)O(46) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCCC(C)O(46) <=> C=CCCC(17) + CCCC(C)[O](41) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCCC(C)O(46) <=> C=CCCC(17) + CCCC(C)[O](41) origin: H_Abstraction
rxn: C=CC[CH]C(64) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: C=CCCC(17) + C[CH]CC(C)OO(34) <=> [CH2]C=CCC(66) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(72) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CC[CH]CCOO(74) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + 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(76) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCO[O](61) <=> CCCC(C)=O(31) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCC[CH]COO(73) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)[O](41) <=> O(42) + CCCC(C)=O(31) origin: Disproportionation
rxn: [OH](26) + CCCC(C)O(46) <=> O(42) + CCCC(C)[O](41) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CC[CH]CCOO(74) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCC[CH]COO(73) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> C[CH]CCCOO(75) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> [CH2]CCCCOO(76) + CCCC(C)O(46) origin: H_Abstraction
rxn: CC[CH]CCOO(74) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)[O](41) <=> CCCC(C)=O(31) + CCCC(C)O(46) origin: Disproportionation
rxn: [O]O(13) + CCCC(C)O(46) <=> OO(23) + CCCC(C)[O](41) origin: H_Abstraction
rxn: CCCC(C)[O](41) + C[CH]CC(C)OO(34) <=> CC=CC(C)OO(97) + CCCC(C)O(46) origin: Disproportionation
rxn: CCCC(C)[O](41) + C[CH]CC(C)OO(34) <=> C=CCC(C)OO(98) + CCCC(C)O(46) origin: Disproportionation
rxn: CCCC(C)[O](41) + C[CH]CC(C)OO(34) <=> CCCC(C)=O(31) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](20) + CCCC(C)OO[O](48) <=> oxygen(1) + CCCC(C)[O](41) + CCCC(C)O[O](20) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCC(CC)OO[O](49) <=> oxygen(1) + CCCC(C)[O](41) + CCC(CC)O[O](21) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCCCOO[O](105) <=> oxygen(1) + CCCC(C)[O](41) + 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) + CCCC(C)OO(24) <=> [O]O(13) + O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OOO(102) <=> [O]O(13) + O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCC(CC)OO(25) <=> [O]O(13) + O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OOO(107) <=> [O]O(13) + O(42) + CCC(CC)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: CCCC(C)OO(24) + CCCC(C)OOO(102) <=> O(42) + CCCC(C)O[O](20) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCCC(C)OOO(102) <=> O(42) + CCC(CC)O[O](21) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](21) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCC(C)OOO(102) <=> O(42) + CCCC(C)O[O](20) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCCCOOO(108) <=> O(42) + CCCC(C)O[O](20) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](21) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](21) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCCCCOOO(108) <=> O(42) + CCC(CC)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:31
Current: Execution time (DD:HH:MM:SS): 00:00:00:30
Reference: Memory used: 699.76 MB
Current: Memory used: 701.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 ✅
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:32
Current: Execution time (DD:HH:MM:SS): 00:00:03:19
Reference: Memory used: 2560.78 MB
Current: Memory used: 2526.36 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:32
Current: Execution time (DD:HH:MM:SS): 00:00:00:31
Reference: Memory used: 849.04 MB
Current: Memory used: 850.93 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 🤖

@jonwzheng
Copy link
Contributor Author

We probably will also want to write unit tests for codebase issues that weren't caught.
The prime candidates:

  • minimal_restart_from_seed
  • The julia problems

@JacksonBurns
Copy link
Contributor

According to @whgreen the restart mechanism has been known-"not super functional" for a while. The Julia stuff was untested from the get-go because it wasn't compatible with nose (testing apparatus) and pyjulia - both of those are gone now.

Previously, failing a species constraint would not give the user any
specific reason why the species failed the constraint check. This
refactors the fails_species_constraint code so that it also returns a
reason for the test failure. This required a small refactor to existing
usages of the function.
@jonwzheng jonwzheng marked this pull request as ready for review September 19, 2025 18:49
@jonwzheng
Copy link
Contributor Author

The aforementioned RMS/julia issues are outside the scope of what can be fixed in this PR, so I've marked this as ready for review.

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:50
Current: Execution time (DD:HH:MM:SS): 00:00:00:57
Reference: Memory used: 747.09 MB
Current: Memory used: 747.05 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:01:57
Current: Execution time (DD:HH:MM:SS): 00:00:01:59
Reference: Memory used: 846.98 MB
Current: Memory used: 847.26 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 1593 reactions.
Test model has 1590 reactions. ❌
The original model has 4 reactions that the tested model does not have. ❌
rxn: C[CH]CC(C)OO(31) <=> [OH](22) + CCCC(C)=O(28) origin: intra_H_migration
rxn: 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(105) + CC(O)CCCOO(152) origin: Peroxyl_Termination
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CCCOO(115) + CC(O)CC(C)OO(143) origin: Peroxyl_Termination
The tested model has 1 reactions that the original model does not have. ❌
rxn: C[CH]CC(C)OO(32) <=> CCC[C](C)OO(81) origin: intra_H_migration

Non-identical kinetics! ❌
original:
rxn: CCC(CC)O[O](37) + CCCCCO[O](36) <=> 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:02
Current: Execution time (DD:HH:MM:SS): 00:00:01:03
Reference: Memory used: 848.72 MB
Current: Memory used: 847.86 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:01:48
Current: Execution time (DD:HH:MM:SS): 00:00:01:50
Reference: Memory used: 733.56 MB
Current: Memory used: 732.57 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:40
Current: Execution time (DD:HH:MM:SS): 00:00:00:40
Reference: Memory used: 837.21 MB
Current: Memory used: 836.12 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:25
Current: Execution time (DD:HH:MM:SS): 00:00:00:25
Reference: Memory used: 933.86 MB
Current: Memory used: 937.84 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:18
Current: Execution time (DD:HH:MM:SS): 00:00:02:52
Reference: Memory used: 2227.68 MB
Current: Memory used: 2381.96 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:17:40
Current: Execution time (DD:HH:MM:SS): 00:00:14:51
Reference: Memory used: 2551.98 MB
Current: Memory used: 2776.93 MB

RMS_CSTR_liquid_oxidation Passed Core Comparison ✅

Original model has 35 species.
Test model has 35 species. ✅
Original model has 130 reactions.
Test model has 130 reactions. ✅

RMS_CSTR_liquid_oxidation Passed Edge Comparison ✅

Original model has 77 species.
Test model has 77 species. ✅
Original model has 256 reactions.
Test model has 256 reactions. ✅

Observables Test Case: RMS_CSTR_liquid_oxidation Comparison

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

RMS_CSTR_liquid_oxidation Passed Observable Testing ✅

Regression test fragment:

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

Observables Test Case: fragment Comparison

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

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

Regression test RMS_constantVIdealGasReactor_fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:42
Current: Execution time (DD:HH:MM:SS): 00:00:03:17
Reference: Memory used: 2438.17 MB
Current: Memory used: 2467.66 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:31
Current: Execution time (DD:HH:MM:SS): 00:00:00:31
Reference: Memory used: 849.97 MB
Current: Memory used: 845.09 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 🤖

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants