Skip to content

Coverage-dependent thermochemistry for catalysis#2646

Merged
rwest merged 49 commits intoReactionMechanismGenerator:mainfrom
12Chao:cov_dep_therm
Apr 10, 2026
Merged

Coverage-dependent thermochemistry for catalysis#2646
rwest merged 49 commits intoReactionMechanismGenerator:mainfrom
12Chao:cov_dep_therm

Conversation

@12Chao
Copy link
Copy Markdown
Contributor

@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
Copy Markdown

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)

Details Observables Test Case: Aromatics Comparison

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

aromatics Passed Observable Testing ✅

Regression test liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00: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.

Details Observables Test Case: liquid_oxidation Comparison

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

liquid_oxidation Passed Observable Testing ✅

Regression test nitrogen:

Reference: Execution time (DD:HH:MM:SS): 00:00:01: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. ✅

Details Observables Test Case: NC Comparison

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

nitrogen Passed Observable Testing ✅

Regression test oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00: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. ✅

Details Observables Test Case: Oxidation Comparison

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

oxidation Passed Observable Testing ✅

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

Details 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. ✅

Details Observables Test Case: RMS_constantVIdealGasReactor_superminimal Comparison

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

RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅

Regression test RMS_CSTR_liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00: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

Details Observables Test Case: RMS_CSTR_liquid_oxidation Comparison

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

RMS_CSTR_liquid_oxidation Passed Observable Testing ✅

Regression test fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:00: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. ✅

Details Observables Test Case: fragment Comparison

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

fragment Passed Observable Testing ✅

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. ✅

Details Observables Test Case: RMS_constantVIdealGasReactor_fragment Comparison

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

RMS_constantVIdealGasReactor_fragment Passed Observable Testing ✅

beep boop this comment was written by a bot 🤖

@codecov
Copy link
Copy Markdown

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
Copy Markdown

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
Copy Markdown

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
Copy Markdown

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
Copy Markdown

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
12Chao and others added 21 commits April 9, 2026 17:19
Previously the as_dict and the __repr__ would both return thermo_coverage_dependence={}
for absolutely everything.
Now if it starts as None, it stays None.
The on-disk/YAML format for enthalpy-coefficients/entropy-coefficients changed:

Old: {'class': 'np_array', 'object': [<Enthalpy>, ...]}
New: [{'class': 'ScalarQuantity', 'value': ..., 'units': '...'}, ...]
The default_flow_style=None will let it
use a single line for things like [1.3, 4.0, 4.45].
Which should look more like we expected.

It's a bit clunky that we have to read the yaml, modify the dicts, and dump the yaml, but this should
make the changes less obnoxious.
Now it just modifies the part of the yaml file that has changed, instead
of reading and writing the whole thing.
Will probably still do some refactoring, but making an intermediate commit
to check it's working so far.

Second commit: (squashed)
A refactor of the coverage-dependence-thermo to cantera yaml code.

Moved the _add_coverage_dependence_to_cantera_yaml function,
and made it pass strings instead of dictionaries.
@rwest
Copy link
Copy Markdown
Member

rwest commented Apr 9, 2026

I changed the way we edit the cantera yaml file. Now it makes minimal changes - most of the file remains intact.

Here's the new diff between the non-cov-dep and the cov-dep:

 diff temp/base_rmg_run/cantera/chem_annotated.yaml temp/cov_dep_rmg_run/cantera/chem_annotated.yaml                           
5c5
< date: Thu, 09 Apr 2026 18:25:54 -0400
---
> date: Thu, 09 Apr 2026 18:32:50 -0400
24c24,25
<   thermo: ideal-surface
---
>   thermo: coverage-dependent-surface
>   reference-state-coverage: 0.11
526a528,533
>   coverage-dependencies:
>     COX(23):
>       model: polynomial
>       enthalpy-coefficients: [30103.426817162992, -31164.765583152708, 85871.95470280468]
>       entropy-coefficients: [10.70987300225991, -6.252250185103083, -15.72711080512041]
>       units: {energy: J, quantity: mol}

Sevy's notebook in #2918 seems to show it still works.
Are we good to merge?

Copy link
Copy Markdown
Contributor

@bjkreitz bjkreitz left a comment

Choose a reason for hiding this comment

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

All looks good to me. Thanks for pushing it over the finish line, Richard!

@rwest rwest enabled auto-merge April 10, 2026 01:06
@rwest rwest merged commit 9cc2cfd into ReactionMechanismGenerator:main Apr 10, 2026
10 of 13 checks passed
rwest added a commit that referenced this pull request Apr 10, 2026
When surface species have thermo_coverage_dependence set (from PR #2646),
CanteraWriter1 now writes coverage-dependencies into the species entries
and switches the surface phase thermo from 'ideal-surface' to
'coverage-dependent-surface', adding the required reference-state-coverage.

The new build_coverage_dependencies() helper resolves the adjacency-list
keys in thermo_coverage_dependence to Chemkin-style species identifiers,
converting ScalarQuantity coefficients to SI float values.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
rwest added a commit that referenced this pull request Apr 10, 2026
When surface species have thermo_coverage_dependence set (from PR #2646),
CanteraWriter2 now writes coverage-dependencies into the species entries
(in species_to_dict) and switches the surface phase thermo from
'ideal-surface' to 'coverage-dependent-surface', adding the required
reference-state-coverage field.

Species names in coverage-dependencies keys use the same get_label()
format as the rest of CanteraWriter2's output, consistent with how
dependent species are referenced throughout that file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

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:54
Current: Execution time (DD:HH:MM:SS): 00:00:00:55
Reference: Memory used: 810.24 MB
Current: Memory used: 810.18 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: [CH]1C2=CC3C1C=CC23
tested: [CH]1C2=CC3C1C=CC23

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
167.21 73.60 28.78 36.79 44.00 50.25 59.65 65.52 74.04
169.15 73.17 31.27 38.45 44.76 50.28 59.14 65.47 72.92

thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s3_4_5_ene_3) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s2_5_5_diene_1_5) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentene) + radical(cyclopentene-allyl)
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_3) + polycyclic(s3_5_5_ene_1) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentane) + radical(cyclopentene-allyl)

Non-identical thermo! ❌
original: [CH]1C2C=CC3C(=C2)C13
tested: [CH]1C2C=CC3C(=C2)C13

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
125.44 71.45 27.43 34.15 40.42 46.18 56.01 63.43 71.86
144.84 79.03 29.08 35.37 40.95 45.86 53.89 59.79 67.35

thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopropane) - ring(Cyclopentane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_ene_1) + polycyclic(s3_5_6_diene_1_5) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-4)
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopropane) - ring(Cyclopentane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_diene_0_3) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclopentane) - ring(Cyclohexane) + ring(Cyclopentene) + ring(1,4-Cyclohexadiene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(1,4-Cyclohexadiene) + radical(cyclopentene-4)

Non-identical thermo! ❌
original: [CH]1C2=CC3C1C3C=C2
tested: [CH]1C2=CC3C1C3C=C2

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
100.48 61.70 25.50 33.41 40.70 47.02 56.22 61.78 71.32
98.15 66.21 25.82 33.30 40.19 46.24 55.47 61.34 70.49

thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_ene_1) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclopentane) - ring(Cyclohexane) + ring(Cyclopentene) + ring(Cyclohexene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-allyl)
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_diene_1_3) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclopentane) - ring(Cyclohexane) + ring(Cyclopentene) + ring(1,3-Cyclohexadiene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(1,3-Cyclohexadiene) + radical(cyclopentene-allyl)

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2=CC3C1C=CC23(62) origin: Intra_R_Add_Endocyclic
tested:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2=CC3C1C=CC23(62) origin: Intra_R_Add_Endocyclic

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -46.27 -30.58 -21.19 -14.94 -7.15 -2.49 3.67 6.72
k(T): -47.51 -31.51 -21.94 -15.56 -7.62 -2.87 3.42 6.54

kinetics: Arrhenius(A=(1.08454e+19,'s^-1'), n=-0.859, Ea=(86.724,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone1_2R!H-inRing_1R!H-inRing in family Intra_R_Add_Endocyclic.""")
kinetics: Arrhenius(A=(1.08454e+19,'s^-1'), n=-0.859, Ea=(88.43,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone1_2R!H-inRing_1R!H-inRing in family Intra_R_Add_Endocyclic.""")
Identical kinetics comments:
kinetics: Estimated from node Backbone1_2R!H-inRing_1R!H-inRing in family Intra_R_Add_Endocyclic.

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2C=CC3C(=C2)C13(63) origin: Intra_R_Add_Endocyclic
tested:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2C=CC3C(=C2)C13(63) origin: Intra_R_Add_Endocyclic

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -27.05 -17.33 -11.49 -7.60 -2.72 0.21 4.13 6.10
k(T): -37.76 -25.37 -17.92 -12.96 -6.74 -3.01 1.98 4.49

kinetics: Arrhenius(A=(1.12e+11,'s^-1'), n=0.26, Ea=(53.177,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone3_Sp-4R!H=1R!H_Sp-3R!H-2R!H_Sp-2R!H-1R!H_Ext-2R!H-R in family Intra_R_Add_Endocyclic.""")
kinetics: Arrhenius(A=(1.12e+11,'s^-1'), n=0.26, Ea=(67.891,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone3_Sp-4R!H=1R!H_Sp-3R!H-2R!H_Sp-2R!H-1R!H_Ext-2R!H-R in family Intra_R_Add_Endocyclic.""")
Identical kinetics comments:
kinetics: Estimated from node Backbone3_Sp-4R!H=1R!H_Sp-3R!H-2R!H_Sp-2R!H-1R!H_Ext-2R!H-R in family Intra_R_Add_Endocyclic.

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2=CC3C1C3C=C2(67) origin: Intra_R_Add_Endocyclic
tested:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2=CC3C1C3C=C2(67) origin: Intra_R_Add_Endocyclic

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -15.17 -8.42 -4.36 -1.66 1.73 3.77 6.50 7.88
k(T): -14.18 -7.68 -3.77 -1.16 2.10 4.07 6.70 8.03

kinetics: Arrhenius(A=(1.12e+11,'s^-1'), n=0.26, Ea=(36.869,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone3_Sp-4R!H=1R!H_Sp-3R!H-2R!H_Sp-2R!H-1R!H_Ext-2R!H-R in family Intra_R_Add_Endocyclic.""")
kinetics: Arrhenius(A=(1.12e+11,'s^-1'), n=0.26, Ea=(35.513,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone3_Sp-4R!H=1R!H_Sp-3R!H-2R!H_Sp-2R!H-1R!H_Ext-2R!H-R in family Intra_R_Add_Endocyclic.""")
Identical kinetics comments:
kinetics: Estimated from node Backbone3_Sp-4R!H=1R!H_Sp-3R!H-2R!H_Sp-2R!H-1R!H_Ext-2R!H-R in family Intra_R_Add_Endocyclic.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) <=> [CH]1C2=CC3C1C3C=C2(67) origin: Intra_R_Add_Endocyclic
tested:
rxn: C1=CC2C=C[C]1C=C2(49) <=> [CH]1C2=CC3C1C3C=C2(67) origin: Intra_R_Add_Endocyclic

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -8.89 -3.16 0.28 2.58 5.46 7.19 9.52 10.69
k(T): -8.00 -2.50 0.81 3.02 5.79 7.46 9.70 10.83

kinetics: Arrhenius(A=(1.49409e+13,'s^-1'), n=0.283, Ea=(31.249,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone2_Sp-3R!H=1R!H_N-4R!H->S_2R!H-inRing_5R!H-inRing_Ext-5R!H-R_Ext-6R!H-R_Ext-7R!H-R_1R!H-inRing in family Intra_R_Add_Endocyclic. Multiplied by reaction path degeneracy 3.0""")
kinetics: Arrhenius(A=(1.49409e+13,'s^-1'), n=0.283, Ea=(30.033,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone2_Sp-3R!H=1R!H_N-4R!H->S_2R!H-inRing_5R!H-inRing_Ext-5R!H-R_Ext-6R!H-R_Ext-7R!H-R_1R!H-inRing in family Intra_R_Add_Endocyclic. Multiplied by reaction path degeneracy 3.0""")
Identical kinetics comments:
kinetics: Estimated from node Backbone2_Sp-3R!H=1R!H_N-4R!H->S_2R!H-inRing_5R!H-inRing_Ext-5R!H-R_Ext-6R!H-R_Ext-7R!H-R_1R!H-inRing in family Intra_R_Add_Endocyclic.
Multiplied by reaction path degeneracy 3.0

Details Observables Test Case: Aromatics Comparison

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

aromatics Passed Observable Testing ✅

Regression test liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:59
Current: Execution time (DD:HH:MM:SS): 00:00:01:59
Reference: Memory used: 892.54 MB
Current: Memory used: 893.62 MB

liquid_oxidation Passed Core Comparison ✅

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

liquid_oxidation Failed Edge Comparison ❌

Original model has 214 species.
Test model has 214 species. ✅
Original model has 1588 reactions.
Test model has 1591 reactions. ❌
The original model has 2 reactions that the tested model does not have. ❌
rxn: CC(C[CH]COO)OO(118) <=> CC(CC[CH]OO)OO(133) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> C[C](CCCOO)OO(132) origin: intra_H_migration
The tested model has 5 reactions that the original model does not have. ❌
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(CCC=O)OO(116) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(=O)CCCOO(112) origin: intra_H_migration
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC([O])CC(C)OO(110) + CC([O])CCCOO(122) origin: Peroxyl_Disproportionation
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CC(C)OO(100) + 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](37) + CCCCCO[O](35) <=> oxygen(1) + CCC([O])CC(67) + CCCCC[O](69) origin: Peroxyl_Disproportionation
tested:
rxn: CCC(CC)O[O](36) + CCCCCO[O](37) <=> 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.

Details Observables Test Case: liquid_oxidation Comparison

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

liquid_oxidation Passed Observable Testing ✅

Regression test nitrogen:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:03
Current: Execution time (DD:HH:MM:SS): 00:00:01:03
Reference: Memory used: 896.08 MB
Current: Memory used: 891.06 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)
141.64 58.66 12.26 12.27 12.09 11.96 12.26 12.72 12.15
116.46 53.90 11.62 12.71 13.49 13.96 14.14 13.85 13.58

thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(oxirene) + radical(CdJ-NdO)
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(Cyclopropene) + radical(CdJ-NdO)

Non-identical kinetics! ❌
original:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
tested:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -66.25 -46.19 -34.19 -26.21 -16.28 -10.36 -2.54 1.31
k(T): -49.54 -33.65 -24.16 -17.85 -10.01 -5.35 0.80 3.82

kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(111.271,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(88.327,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
Identical kinetics comments:
kinetics: Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.

Details Observables Test Case: NC Comparison

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

nitrogen Passed Observable Testing ✅

Regression test oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:45
Current: Execution time (DD:HH:MM:SS): 00:00:01:47
Reference: Memory used: 772.96 MB
Current: Memory used: 771.17 MB

oxidation Passed Core Comparison ✅

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

oxidation Passed Edge Comparison ✅

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

Details Observables Test Case: Oxidation Comparison

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

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

Regression test sulfur:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:40
Current: Execution time (DD:HH:MM:SS): 00:00:00:42
Reference: Memory used: 892.20 MB
Current: Memory used: 891.11 MB

sulfur Passed Core Comparison ✅

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

sulfur Failed Edge Comparison ❌

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

Details Observables Test Case: SO2 Comparison

✅ 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:26
Reference: Memory used: 949.07 MB
Current: Memory used: 944.88 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:03:06
Reference: Memory used: 2337.26 MB
Current: Memory used: 2449.40 MB

RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅

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

Details Observables Test Case: RMS_constantVIdealGasReactor_superminimal Comparison

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

RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅

Regression test RMS_CSTR_liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:30:23
Current: Execution time (DD:HH:MM:SS): 00:00:10:10
Reference: Memory used: 2633.13 MB
Current: Memory used: 2626.83 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

Original model has 35 species.
Test model has 35 species. ✅
Original model has 181 reactions.
Test model has 142 reactions. ❌
The original model has 5 species that the tested model does not have. ❌
spc: CH3
spc: CCCC(C)O(47)
spc: CC=O(87)
spc: CCCC=O(88)
spc: [CH2]CCC(C)O(93)
The tested model has 5 species that the original model does not have. ❌
spc: CCH2
spc: CC[CH]CCOO(64)
spc: [CH2]CCCCOO(66)
spc: CC1CC(C)O1(87)
spc: C=CCC(C)OO(89)
The original model has 56 reactions that the tested model does not have. ❌
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: [OH](24) + CCC(CC)OO(27) <=> O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + CCCCCO[O](61) origin: H_Abstraction
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: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [CH3](10) + CCCC=O(88) <=> 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) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + 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) + 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: 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) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) 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) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](22) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCC(CC)OO(27) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)OO(26) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)O(47) origin: Disproportionation
rxn: [OH](24) + CCC(CC)OO(27) <=> O(42) + [CH2]CC(CC)OO(32) 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: [CH2]CC(CC)OO(32) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(27) 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: 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: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(75) + pentane(2) origin: H_Abstraction
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(75) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
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 17 reactions that the original model does not have. ❌
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: [CH2]CCCCOO(66) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) 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[CH]CC(C)OO(34) <=> [OH](25) + CC1CC(C)O1(87) origin: Cyclic_Ether_Formation
rxn: C[CH2](6) + [CH2]CC(5) <=> pentane(2) origin: R_Recombination
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(89) origin: Disproportionation
rxn: CC[CH]CCOO(64) <=> CCCCCO[O](61) origin: intra_H_migration
rxn: [O]O(13) + CC[CH]CCOO(64) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CC[CH]CCOO(64) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]CCOO(64) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(64) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 107 species.
Test model has 90 species. ❌
Original model has 545 reactions.
Test model has 342 reactions. ❌
The original model has 17 species that the tested model does not have. ❌
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: 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 203 reactions that the tested model does not have. ❌
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: [OH](24) + CCC(CC)OO(27) <=> O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + CCCCCO[O](61) origin: H_Abstraction
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: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [CH3](10) + CCCC=O(88) <=> 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) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + 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) + 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: 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) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) 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) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(26) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](22) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCC(CC)OO(27) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)OO(26) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)O(47) origin: Disproportionation
rxn: [OH](24) + CCC(CC)OO(27) <=> O(42) + [CH2]CC(CC)OO(32) 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: [CH2]CC(CC)OO(32) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(27) 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: 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: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(75) + pentane(2) origin: H_Abstraction
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(75) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC(CC)O[O](22) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: [CH2](3) + CCCC[O](85) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCC(C)=O(34) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> CCC[C](C)O(89) origin: intra_H_migration
rxn: CC[CH]C(C)O(90) <=> CCCC(C)[O](44) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> [CH2]C(O)CCC(91) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> C[CH]CC(C)O(92) origin: intra_H_migration
rxn: oxygen(1) + CCCC(C)[O](44) <=> [O]O(13) + CCCC(C)=O(34) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](44) <=> CCCC(C)OO[O](49) origin: R_Recombination
rxn: [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: [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(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](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) 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](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: C=CC[CH]C(64) + 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(66) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + CCC(CC)OO(27) <=> C=CCCC(17) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCC(CC)OO(27) <=> C=CCCC(17) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCC(CC)OO(27) <=> C=CCCC(17) + CCC(CC)O[O](22) origin: H_Abstraction
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(72) + CCC(O)CC(46) origin: Peroxyl_Termination
rxn: CCCC(C)[O](44) + CCC(CC)O[O](22) <=> CCCC(C)=O(34) + CCC(CC)OO(27) origin: Disproportionation
rxn: CCC(CC)O[O](22) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCC(CC)OO(27) origin: Disproportionation
rxn: C=CC[CH]C(64) + 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(66) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + CCCC(C)OO(26) <=> C=CCCC(17) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCCC(C)OO(26) <=> C=CCCC(17) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCCC(C)OO(26) <=> C=CCCC(17) + CCCC(C)O[O](21) origin: H_Abstraction
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(72) + CCCC(C)O(47) origin: Peroxyl_Termination
rxn: CCCC(C)[O](44) + CCCC(C)O[O](21) <=> CCCC(C)=O(34) + CCCC(C)OO(26) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCC(C)OO(26) origin: Disproportionation
rxn: [OH](24) + CCC(CC)OO(27) <=> O(42) + CC[C](CC)OO(52) origin: H_Abstraction
rxn: [OH](24) + CCC(CC)OO(27) <=> O(42) + C[CH]C(CC)OO(31) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> CC[C](CC)OO(52) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> C[CH]C(CC)OO(31) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCC(CC)OO(27) <=> CC[C](CC)OO(52) + 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: 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](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + CCC[C](C)OO(58) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + CC[CH]C(C)OO(35) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + [CH2]C(CCC)OO(36) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)OO(26) <=> O(42) + [CH2]CCC(C)OO(38) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(26) <=> CCC[C](C)OO(58) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(26) <=> CC[CH]C(C)OO(35) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(26) <=> [CH2]C(CCC)OO(36) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(26) <=> [CH2]CCC(C)OO(38) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCCC(C)OO(26) <=> CCC[C](C)OO(58) + 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: [OH](24) + C=CCCC(17) <=> O(42) + C=CC[CH]C(64) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + [CH2]C=CCC(66) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + [CH2]CCC=C(67) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + C=[C]CCC(68) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> O(42) + [CH]=CCCC(69) origin: H_Abstraction
rxn: [OH](24) + C=CCCC(17) <=> [CH2]C(O)CCC(91) origin: R_Addition_MultipleBond
rxn: [OH](24) + C=CCCC(17) <=> CCC[CH]CO(104) origin: R_Addition_MultipleBond
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + CCC[CH]COO(73) origin: H_Abstraction
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: [OH](24) + CCCCCOO(78) <=> O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: [OH](24) + CCCC(C)[O](44) <=> O(42) + CCCC(C)=O(34) origin: Disproportionation
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: O(42) + C=CCCC(17) <=> CCCCCO(103) origin: 1,3_Insertion_ROR
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> C=CC[CH]C(64) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> [CH2]C=CCC(66) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> [CH2]CCC=C(67) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCCC(C)O(47) <=> C=CCCC(17) + CCCC(C)[O](44) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCCC(C)O(47) <=> C=CCCC(17) + CCCC(C)[O](44) origin: H_Abstraction
rxn: C=CC[CH]C(64) + 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(66) + CCCC(C)OO(26) origin: H_Abstraction
rxn: [CH2]CCC=C(67) + CCCC(C)OO(26) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=[C]CCC(68) + CCCC(C)OO(26) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [CH]=CCCC(69) + CCCC(C)OO(26) <=> C=CCCC(17) + C[CH]CC(C)OO(37) 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](44) + CCCCCO[O](61) <=> CCCC(C)=O(34) + CCCCCOO(78) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CC[CH]CCOO(74) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCC[CH]COO(73) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> [CH2]CCCCOO(76) + CCCC(C)O(47) origin: H_Abstraction
rxn: CC[CH]CCOO(74) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + 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(76) + CCCC(C)OO(26) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCC(C)O(47) origin: Disproportionation
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[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

Details Observables Test Case: RMS_CSTR_liquid_oxidation Comparison

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

RMS_CSTR_liquid_oxidation Passed Observable Testing ✅

Regression test fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:34
Current: Execution time (DD:HH:MM:SS): 00:00:00:35
Reference: Memory used: 737.47 MB
Current: Memory used: 736.56 MB

fragment Passed Core Comparison ✅

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

fragment Passed Edge Comparison ✅

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

Details Observables Test Case: fragment Comparison

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

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

Regression test RMS_constantVIdealGasReactor_fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:47
Current: Execution time (DD:HH:MM:SS): 00:00:03:28
Reference: Memory used: 2473.45 MB
Current: Memory used: 2541.67 MB

RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅

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

Details Observables Test Case: RMS_constantVIdealGasReactor_fragment Comparison

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

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

Regression test minimal_surface:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:32
Current: Execution time (DD:HH:MM:SS): 00:00:00:33
Reference: Memory used: 899.19 MB
Current: Memory used: 892.41 MB

minimal_surface Passed Core Comparison ✅

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

minimal_surface Passed Edge Comparison ✅

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

Details Observables Test Case: minimal_surface Comparison

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

minimal_surface Passed Observable Testing ✅

beep boop this comment was written by a bot 🤖

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