Make Regression Tests Pass by Default - #2983
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
|
|
f609e81 to
96cc1eb
Compare
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:52 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_3) + polycyclic(s3_5_5_ene_1) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentane) + radical(cyclopentene-allyl) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopentane) - ring(Cyclopropane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_ene_1) + polycyclic(s3_5_6_diene_1_5) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-4) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_5_ene_1) + polycyclic(s3_4_5_ene_1) + polycyclic(s3_5_5_diene_0_4) - ring(Cyclobutane) - ring(Cyclopentene) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsCsH) + group(Cdd-CdsCds) + Estimated bicyclic component: polycyclic(s4_6_6_ane) - ring(Cyclohexane) - ring(Cyclohexane) + ring(124cyclohexatriene) + ring(1,4-Cyclohexadiene) Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Errors occurred during edge comparison
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py aromatics-edge stable_regression_results/aromatics/chemkin/chem_edge_annotated.inp stable_regression_results/aromatics/chemkin/species_edge_dictionary.txt test/regression/aromatics/chemkin/chem_edge_annotated.inp test/regression/aromatics/chemkin/species_edge_dictionary.txt` failed. (See above for error)
|
|
@rwest I've taken a stab at getting the regression tests to pass by default, with the help of AI this go around. I think this actually fixes it, to boot. Please take a look when you have some time. |
|
@KnathanM could you take a look at this when you get a chance? It fixes the non-determinism in the regression tests, and I think it might be useful for your ML-based thermo estimator work since it addresses the root cause of why thermo estimates vary between runs. Much appreciated! |
KnathanM
left a comment
There was a problem hiding this comment.
I haven't run the tests myself to check if they are deterministic, but we should probably manually do that before merging this. For now, please see my comments.
| # logging.warning('For {0}, a node {1} with overlapping children {2} was encountered ' | ||
| # 'in tree with top level nodes {3}. Assuming the first match is the ' | ||
| # 'better one.'.format(structure, root, next, self.top)) | ||
| # Multiple children match - pick the first in tree order. | ||
| # The tree is constructed deterministically, so this is deterministic. | ||
| # (Sorting by label can pick the wrong node when siblings overlap, | ||
| # e.g. Nitrites sorts before Nitro but Nitro is the intended match.) |
There was a problem hiding this comment.
The logging line was commented out 12 year ago e8c7f1d, so is probably fine to remove.
What does the "sorting by label" part of the new comment refer to?
There was a problem hiding this comment.
I will actually remove the outdated lines. During an earlier attempt at fixing the non-determinism, the LLM made an ill-guided change here, the details of which I don't recall.
I also noticed when making the above fix that there is some awkward logic here. I am changing that as well.
| # 'in tree with top level nodes {3}. Assuming the first match is the ' | ||
| # 'better one.'.format(structure, root, next, self.top)) | ||
| # Multiple children match - pick the first in tree order. | ||
| # The tree is constructed deterministically, so this is deterministic. |
There was a problem hiding this comment.
I'm assuming this comment is correct, that tree construction is deterministic.
There was a problem hiding this comment.
Yes the tree is constructed from fixed 'instructions' in the database that do not involve any tie breaking.
The original construction of those trees, i.e. when they are trained, is non-deterministic. I know for a fact that this is partly because of species ring assignments -- which could warrant retraining. There may also be some tie-breaking involved in generating (fitting) the trees, but I don't know enough about it to say for sure.
| toleranceKeepInEdge=0.001, | ||
| toleranceInterruptSimulation=1e8, | ||
| maximumEdgeSpecies=10000, | ||
| maximumEdgeSpecies=300, |
There was a problem hiding this comment.
Are the changes to this file still required after your other changes, or could this be reverted? Changing from 10000 to 300 seems a little drastic to me. Can you comment on this change? (and the similar change to maxNumSpecies?
There was a problem hiding this comment.
This had nothing to do with reproducibility and everything to do with runtime. This test takes 10+ minutes on main and only a few here.
This is more in like with the size of the reg tests, as well, so I think it is still a scientifically valid regression test.
suggestion from code review here: ReactionMechanismGenerator#2983 (comment)
comment change is a suggestion from review here: ReactionMechanismGenerator#2983 (comment) logic change is just to make things more clear
came up during review see: ReactionMechanismGenerator#2983 (comment)
|
Note to self: I have opencode session floating around where this was fixed, and there should be a script either in that session or on that machine that checks for reproducibility. |
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:57 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopentane) - ring(Cyclopropane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_ene_1) + polycyclic(s3_5_6_diene_1_5) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-4) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_4_ene_1) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_1) - ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_5_ene_1) + polycyclic(s3_4_5_ene_1) + polycyclic(s3_5_5_diene_0_4) - ring(Cyclobutane) - ring(Cyclopentene) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_ene_1) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclohexane) - ring(Cyclopentane) + ring(Cyclohexene) + ring(Cyclopentene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-allyl) Non-identical thermo! ❌
Identical thermo comments: Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsCsH) + group(Cdd-CdsCds) + Estimated bicyclic component: polycyclic(s4_6_6_ane) - ring(Cyclohexane) - ring(Cyclohexane) + ring(124cyclohexatriene) + ring(1,4-Cyclohexadiene) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_4_ene_1) + polycyclic(s3_4_6_diene_1_5) + polycyclic(s3_4_6_ene_1) - ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclohexene) + radical(cyclobutane) Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Errors occurred during edge comparison
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py aromatics-edge stable_regression_results/aromatics/chemkin/chem_edge_annotated.inp stable_regression_results/aromatics/chemkin/species_edge_dictionary.txt test/regression/aromatics/chemkin/chem_edge_annotated.inp test/regression/aromatics/chemkin/species_edge_dictionary.txt` failed. (See above for error)
|
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | 8.02 | 7.64 | 7.35 | 7.11 | 6.75 | 6.48 | 5.99 | 5.64 |
| k(T): | 3.54 | 4.28 | 4.73 | 5.02 | 5.39 | 5.62 | 5.91 | 6.06 |
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(-0.265,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.""")
kinetics: 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: 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.
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py liquid_oxidation-edge stable_regression_results/liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
liquid_oxidation Passed Observable Testing ✅
Regression test nitrogen:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:58
Current: Execution time (DD:HH:MM:SS): 00:00:00:44
Reference: Memory used: 906.85 MB
Current: Memory used: 912.47 MB
nitrogen Failed Core Comparison ❌
Original model has 41 species.
Test model has 41 species. ✅
Original model has 360 reactions.
Test model has 359 reactions. ❌
The original model has 1 reactions that the tested model does not have. ❌
rxn: HNO(48) + HCO(13) <=> NO(38) + CH2O(18) origin: H_Abstraction
Errors occurred during core comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py nitrogen-core stable_regression_results/nitrogen/chemkin/chem_annotated.inp stable_regression_results/nitrogen/chemkin/species_dictionary.txt test/regression/nitrogen/chemkin/chem_annotated.inp test/regression/nitrogen/chemkin/species_dictionary.txt` failed. (See above for error)
nitrogen Failed Edge Comparison ❌
Original model has 133 species.
Test model has 133 species. ✅
Original model has 983 reactions.
Test model has 981 reactions. ❌
Non-identical thermo! ❌
original: O1[C]=N1
tested: O1[C]=N1
| Hf(300K) | S(300K) | Cp(300K) | Cp(400K) | Cp(500K) | Cp(600K) | Cp(800K) | Cp(1000K) | Cp(1500K) |
|---|---|---|---|---|---|---|---|---|
| 141.64 | 58.66 | 12.26 | 12.27 | 12.09 | 11.96 | 12.26 | 12.72 | 12.15 |
| 116.46 | 53.90 | 11.62 | 12.71 | 13.49 | 13.96 | 14.14 | 13.85 | 13.58 |
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(oxirene) + radical(CdJ-NdO)
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(Cyclopropene) + radical(CdJ-NdO)
The original model has 2 reactions that the tested 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
Non-identical kinetics! ❌
original:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
tested:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | -66.25 | -46.19 | -34.19 | -26.21 | -16.28 | -10.36 | -2.54 | 1.31 |
| k(T): | -49.54 | -33.65 | -24.16 | -17.85 | -10.01 | -5.35 | 0.80 | 3.82 |
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(111.271,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(88.327,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
Identical kinetics comments:
kinetics: Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py nitrogen-edge stable_regression_results/nitrogen/chemkin/chem_edge_annotated.inp stable_regression_results/nitrogen/chemkin/species_edge_dictionary.txt test/regression/nitrogen/chemkin/chem_edge_annotated.inp test/regression/nitrogen/chemkin/species_edge_dictionary.txt` failed. (See above for error)
nitrogen Passed Observable Testing ✅
Regression test oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:34
Current: Execution time (DD:HH:MM:SS): 00:00:01:10
Reference: Memory used: 793.51 MB
Current: Memory used: 795.12 MB
oxidation Passed Core Comparison ✅
Original model has 59 species.
Test model has 59 species. ✅
Original model has 694 reactions.
Test model has 694 reactions. ✅
oxidation Passed Edge Comparison ✅
Original model has 230 species.
Test model has 230 species. ✅
Original model has 1524 reactions.
Test model has 1524 reactions. ✅
oxidation Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test sulfur:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:37
Current: Execution time (DD:HH:MM:SS): 00:00:00:29
Reference: Memory used: 904.27 MB
Current: Memory used: 910.88 MB
sulfur Passed Core Comparison ✅
Original model has 27 species.
Test model has 27 species. ✅
Original model has 74 reactions.
Test model has 74 reactions. ✅
sulfur Failed Edge Comparison ❌
Original model has 89 species.
Test model has 89 species. ✅
Original model has 227 reactions.
Test model has 227 reactions. ✅
The original model has 1 reactions that the tested model does not have. ❌
rxn: O(4) + SO2(15) (+N2) <=> SO3(16) (+N2) origin: primarySulfurLibrary
The tested model has 1 reactions that the original model does not have. ❌
rxn: O(4) + SO2(15) (+N2) <=> SO3(16) (+N2) origin: primarySulfurLibrary
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py sulfur-edge stable_regression_results/sulfur/chemkin/chem_edge_annotated.inp stable_regression_results/sulfur/chemkin/species_edge_dictionary.txt test/regression/sulfur/chemkin/chem_edge_annotated.inp test/regression/sulfur/chemkin/species_edge_dictionary.txt` failed. (See above for error)
Details
The following observables did not match:
❌ Observable species O=S=O varied by more than 0.100 on average between old model SO2(15) and new model SO2(15) in condition 1.
Condition 1:
Reactor Type: IdealGasReactor
Reaction Time: 0.01 s
T0: 900 K
P0: 30 bar
Initial Mole Fractions: {'S': 0.000756, '[O][O]': 0.00129, 'N#N': 0.997954}
sulfur Failed Observable Testing ❌
Errors occurred during observable testing ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python rmgpy/tools/regression.py test/regression/sulfur/regression_input.py stable_regression_results/sulfur/chemkin test/regression/sulfur/chemkin` failed. (See above for error)
Regression test superminimal:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:23
Current: Execution time (DD:HH:MM:SS): 00:00:00:17
Reference: Memory used: 967.54 MB
Current: Memory used: 979.30 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:21
Current: Execution time (DD:HH:MM:SS): 00:00:01:51
Reference: Memory used: 2361.21 MB
Current: Memory used: 2371.55 MB
RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅
Regression test RMS_CSTR_liquid_oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:14:57
Current: Execution time (DD:HH:MM:SS): 00:00:01:56
Reference: Memory used: 2516.78 MB
Current: Memory used: 2492.71 MB
RMS_CSTR_liquid_oxidation Failed Core Comparison ❌
Original model has 35 species.
Test model has 17 species. ❌
Original model has 141 reactions.
Test model has 39 reactions. ❌
The original model has 18 species that the tested model does not have. ❌
spc: [CH2]CC(5)
spc: CC=CCC(16)
spc: OO(23)
spc: C[CH]CC(C)OO(34)
spc: [CH2]CC(CC)OO(38)
spc: CCCC(C)O
spc: H2O(42)
spc: CCC([O])CC(44)
spc: C[CH]CCCOO(75)
spc: [CH2]CCCCOO(76)
spc: CCCCCOO(78)
spc: CCCCCO
spc: CC1CC(C)O1(87)
spc: CC=CC(C)OO(88)
spc: C=CCC(C)OO(89)
spc: CC=O(93)
spc: [CH2]CCC(C)O(99)
spc: CC(CC(C)OO)OO
The original model has 102 reactions that the tested model does not have. ❌
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: CCCC(C)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CCC(CC)O[O](22) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: CCCC(C)O[O](20) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: [O]O(13) + C[CH]CC(C)OO(34) <=> oxygen(1) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + pentane(2) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CC(C)OO(34) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(34) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CC(C)OO(34) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O[O](20) <=> oxygen(1) + [OH](25) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCC(C)O[O](20) <=> oxygen(1) + CCCC(C)[O](41) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: [OH](25) + CCCC(C)[O](41) <=> CCCC(C)OO(24) origin: R_Recombination
rxn: OO(23) + CC[CH]CC(7) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: OO(23) + C[CH]CCC(11) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCC(12) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCC(11) <=> OO(23) + C=CCCC(17) origin: Disproportionation
rxn: [O]O(13) + [O]O(13) <=> oxygen(1) + OO(23) origin: H_Abstraction
rxn: OO(23) + CCCC(C)O[O](20) <=> [O]O(13) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + C[CH]CC(C)OO(34) <=> [O]O(13) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + CCC(CC)O[O](22) <=> [O]O(13) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](25) + [OH](25) <=> OO(23) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) 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: CC=O(93) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)OO(24) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)[O](41) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)[O](41) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + pentane(2) <=> H2O(42) + CC[CH]CC(7) origin: H_Abstraction
rxn: [OH](25) + pentane(2) <=> H2O(42) + C[CH]CCC(11) origin: H_Abstraction
rxn: [OH](25) + pentane(2) <=> H2O(42) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](25) + H2O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [O]O(13) + H2O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(27) <=> [OH](25) + H2O(42) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](25) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(99) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CCC(11) <=> [O]O(13) + CC=CCC(16) origin: Disproportionation
rxn: oxygen(1) + CC[CH]CC(7) <=> [O]O(13) + CC=CCC(16) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCC(11) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: [O]O(13) + C[CH]CCC(11) <=> OO(23) + CC=CCC(16) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CCC(11) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: [O]O(13) + CC[CH]CC(7) <=> OO(23) + CC=CCC(16) origin: Disproportionation
rxn: CC[CH]CC(7) + CC[CH]CC(7) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CCCC(C)O[O](20) <=> [O]O(13) + CC=CCC(16) origin: HO2_Elimination_from_PeroxyRadical
rxn: CCC(CC)O[O](22) <=> [O]O(13) + CC=CCC(16) origin: HO2_Elimination_from_PeroxyRadical
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(88) origin: Disproportionation
rxn: CCC(CC)O[O](22) <=> [CH2]CC(CC)OO(38) origin: intra_H_migration
rxn: [O]O(13) + [CH2]CC(CC)OO(38) <=> oxygen(1) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(27) origin: H_Abstraction
rxn: OO(23) + [CH2]CC(CC)OO(38) <=> [O]O(13) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> [CH2]CCCC(12) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CC(CC)OO(38) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CC(CC)OO(38) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: [CH2]CC(CC)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: CCCCCO[O](61) <=> C[CH]CCCOO(75) origin: intra_H_migration
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) 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: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: CCCCCO[O](61) <=> [CH2]CCCCOO(76) origin: intra_H_migration
rxn: [O]O(13) + [CH2]CCCCOO(76) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: [OH](25) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + H2O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [O]O(13) + CCC(CC)O[O](22) <=> oxygen(1) + [OH](25) + CCC([O])CC(44) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](22) + CCCC(C)O[O](20) <=> oxygen(1) + CCC([O])CC(44) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](22) + CCC(CC)O[O](22) <=> oxygen(1) + CCC([O])CC(44) + CCC([O])CC(44) origin: Peroxyl_Disproportionation
rxn: [OH](25) + CCC([O])CC(44) <=> CCC(CC)OO(27) origin: R_Recombination
rxn: CCC(CC)OO(27) + CCCC(C)OO(24) <=> H2O(42) + CCC([O])CC(44) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCC(CC)OO(27) <=> H2O(42) + CCC([O])CC(44) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(27) <=> [O]O(13) + H2O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(34) <=> [OH](25) + CC1CC(C)O1(87) origin: Cyclic_Ether_Formation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(89) origin: Disproportionation
Errors occurred during core comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-core stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌
Original model has 99 species.
Test model has 82 species. ❌
Original model has 384 reactions.
Test model has 252 reactions. ❌
The original model has 22 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: C[CH]CCOO(85)
spc: [CH2]C(C)C(C)OO(86)
spc: CC1CC(C)O1(87)
spc: CC=CC(C)OO(88)
spc: C=CCC(C)OO(89)
spc: CC([O])CC(C)O(90)
spc: CCCCO
spc: CCC(C)O
spc: CC=O(93)
spc: CCCC=O(94)
spc: CCCCO(95)
spc: CC[CH]C(C)O(96)
spc: [CH2]C(O)CCC(97)
spc: C[CH]CC(C)O(98)
spc: [CH2]CCC(C)O(99)
spc: CC(CC(C)OO)OO
The tested model has 5 species that the original model does not have. ❌
spc: [O]OOO(22)
spc: [O]OO(28)
spc: CCC(CC)OOOO
spc: CCCC(C)OOOO
spc: CCCCCOOOO
The original model has 140 reactions that the tested model does not have. ❌
rxn: CCCC(C)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CCC(CC)O[O](22) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](25) + [OH](25) <=> OO(23) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) 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: CC=O(93) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](25) + H2O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [O]O(13) + H2O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(27) <=> [OH](25) + H2O(42) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](25) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(99) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(88) origin: Disproportionation
rxn: [CH2]CC(CC)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) 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: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCCOO(76) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: [OH](25) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + H2O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(27) <=> [O]O(13) + H2O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(34) <=> [OH](25) + CC1CC(C)O1(87) origin: Cyclic_Ether_Formation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(89) origin: Disproportionation
rxn: CCC[C](C)OO(55) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[C](CC)OO(59) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C=CC[CH]C(64) + [CH2]CCCC(12) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: C=CC[CH]C(64) + C[CH]CCC(11) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: [CH2]C=CCC(66) + [CH2]CCCC(12) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: [CH2]C=CCC(66) + C[CH]CCC(11) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: [CH2]CCC=C(67) + [CH2]CCCC(12) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: [CH2]CCC=C(67) + C[CH]CCC(11) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: C=[C]CCC(68) + [CH2]CCCC(12) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: C=[C]CCC(68) + C[CH]CCC(11) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: [CH]=CCCC(69) + [CH2]CCCC(12) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: [CH]=CCCC(69) + C[CH]CCC(11) <=> C=CCCC(17) + C=CCCC(17) origin: Disproportionation
rxn: CH2(S)(3) + CCCCOO(51) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCCCOO(51) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: H(8) + CCCCCO[O](61) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]COO(80) + [CH2]CC(5) <=> CCCCCOO(78) origin: R_Recombination
rxn: C[CH2](6) + [CH2]CCOO(81) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + CC[CH]CCOO(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(S)(3) + C[CH]CCOO(85) <=> C[CH]CC(C)OO(34) origin: 1,2_Insertion_carbene
rxn: [CH2]C(C)C(C)OO(86) <=> C[CH]CC(C)OO(34) origin: 1,2_shiftC
rxn: H(8) + CC=CC(C)OO(88) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: H(8) + C=CCC(C)OO(89) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: C[CH]OO(53) + 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(55) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> [CH2]C(CCC)OO(33) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CC([O])CC(C)O(90) origin: intra_OH_migration
rxn: CH2(S)(3) + CCCC[O](91) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](92) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](92) <=> 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(94) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) <=> CCC[C](C)O(95) origin: intra_H_migration
rxn: CC[CH]C(C)O(96) <=> CCCC(C)[O](41) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> [CH2]C(O)CCC(97) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> C[CH]CC(C)O(98) origin: intra_H_migration
rxn: H(8) + [O]O(13) <=> OO(23) origin: R_Recombination
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: 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: 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: 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: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCC[C](C)OO(55) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CC[CH]C(C)OO(32) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + [CH2]C(CCC)OO(33) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(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(55) + 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: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + CC[C](CC)OO(59) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + C[CH]C(CC)OO(37) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> CC[C](CC)OO(59) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> C[CH]C(CC)OO(37) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> [CH2]CC(CC)OO(38) + CCCC(C)O(46) origin: H_Abstraction
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: 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: [OH](25) + CCCCCOO(78) <=> H2O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCC[CH]COO(73) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: CCCC(C)[O](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
The tested model has 8 reactions that the original model does not have. ❌
rxn: oxygen(1) + [O]O(13) <=> [O]OOO(22) origin: R_Recombination
rxn: [O]OO(28) + [O]OO(28) <=> oxygen(1) + [O]O(13) + [O]O(13) origin: Peroxyl_Disproportionation
rxn: oxygen(1) + CCC(CC)O[O](20) <=> CCC(CC)OOO[O](39) origin: R_Recombination
rxn: oxygen(1) + CCCC(C)O[O](21) <=> CCCC(C)OOO[O](40) origin: R_Recombination
rxn: [O]OO(28) + CCC(CC)OO[O](48) <=> oxygen(1) + [O]O(13) + CCC(CC)O[O](20) origin: Peroxyl_Disproportionation
rxn: [O]OO(28) + CCCC(C)OO[O](49) <=> oxygen(1) + [O]O(13) + CCCC(C)O[O](21) origin: Peroxyl_Disproportionation
rxn: oxygen(1) + CCCCCO[O](61) <=> CCCCCOOO[O](77) origin: R_Recombination
rxn: oxygen(1) + [OH](26) <=> [O]OO(28) origin: R_Recombination
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-edge stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
Details
The following observables did not match:
❌ Observable species CCCCC varied by more than 0.100 on average between old model pentane(2) and new model pentane(2) in condition 1.
Condition 1:
Reactor Type: IdealGasReactor
Reaction Time: 1000 s
T0: 600 K
P0: 1 bar
Initial Mole Fractions: {'CCCCC': 0.9, '[O][O]': 0.1}
RMS_CSTR_liquid_oxidation Failed Observable Testing ❌
Errors occurred during observable testing ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python rmgpy/tools/regression.py test/regression/RMS_CSTR_liquid_oxidation/regression_input.py stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin test/regression/RMS_CSTR_liquid_oxidation/chemkin` failed. (See above for error)
Regression test fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:33
Current: Execution time (DD:HH:MM:SS): 00:00:00:25
Reference: Memory used: 753.65 MB
Current: Memory used: 756.14 MB
fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
fragment Passed Edge Comparison ✅
Original model has 33 species.
Test model has 33 species. ✅
Original model has 47 reactions.
Test model has 47 reactions. ✅
fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test RMS_constantVIdealGasReactor_fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:02:48
Current: Execution time (DD:HH:MM:SS): 00:00:02:13
Reference: Memory used: 2566.77 MB
Current: Memory used: 2360.45 MB
RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅
Original model has 27 species.
Test model has 27 species. ✅
Original model has 24 reactions.
Test model has 24 reactions. ✅
RMS_constantVIdealGasReactor_fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test minimal_surface:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:30
Current: Execution time (DD:HH:MM:SS): 00:00:00:25
Reference: Memory used: 914.78 MB
Current: Memory used: 915.31 MB
minimal_surface Passed Core Comparison ✅
Original model has 11 species.
Test model has 11 species. ✅
Original model has 3 reactions.
Test model has 3 reactions. ✅
minimal_surface Passed Edge Comparison ✅
Original model has 38 species.
Test model has 38 species. ✅
Original model has 38 reactions.
Test model has 38 reactions. ✅
minimal_surface Passed Observable Testing ✅
beep boop this comment was written by a bot 🤖
When computing thermochemistry for polycyclic species, cycle sets were converted to lists using list(cycle_set). Python sets have non-deterministic iteration order due to hash randomization, causing different ring ordering across runs and inconsistent thermochemistry estimates. Fix: replace list(cycle_set) with sorted(cycle_set) in three locations: - Molecule.get_disparate_cycles() in molecule.py - Molecule.get_polycycles() in molecule.py - ThermoGroupAV.combine_cycles() in thermo.py Verification: test_polycyclic_nondeterminism.py reproduces and verifies deterministic behavior across multiple runs.
Multiple sources of non-determinism caused different edge models across consecutive runs, even with identical inputs: 1. VF2 vertex sorting in Graph.sort_vertices() used only connectivity values. Atoms with identical connectivity (e.g., equivalent ring carbons) had non-deterministic ordering. Added chemical tiebreaker (sorting_key attribute from Atom) to ensure deterministic sorting. This fix is inherited by all Graph subclasses (Molecule, Group, etc.). 2. descend_tree() in base.py matched multiple overlapping tree children (e.g., Nitro vs Nitrites) and picked next_node[0] from unsorted list, which had non-deterministic order due to hash randomization. Sorting by label was attempted but failed (alphabetical order picks Nitrites before Nitro, giving wrong match). Fixed by relying on deterministic tree construction order. 3. Species network processing in main.py used sets for species and objects_to_enlarge, causing non-deterministic iteration order. Sorted by label for deterministic processing. Verification: liquid_oxidation reproducibility check passes 5 consecutive runs with identical core/edge models (217 species, 1601 reactions).
Reaction.is_isomorphic() compared specific_collider using ==, which delegates to Species.__eq__() - an identity-only comparison (self is other). When two models are loaded from separate Chemkin files, the specific_collider (N2) species are distinct object instances despite being chemically identical, causing == to always return False. Fix: replace == with structural is_isomorphic() comparison for specific_collider. Verification: sulfur edge comparison passes 5 consecutive runs with 227 matched reactions and 0 unique reactions.
Two related fixes for deterministic vertex and tree node ordering: 1. Graph.sort_vertices(): moved the chemical tiebreaker (sorting_key attribute from Atom) from Molecule.sort_vertices() override into the parent Graph.sort_vertices(). All subclasses (Molecule, Group, etc.) now inherit deterministic sorting when connectivity values are identical. Vertex index serves as a final tiebreaker to avoid comparing vertex objects directly (GroupAtom has no __lt__). 2. Database.descend_tree(): removed alphabetical sorting of matching children. When multiple children match (e.g., Nitro vs Nitrites), sorting by label picks Nitrites (alphabetically first) instead of Nitro (tree order first, which is the intended match). The tree is constructed deterministically, so picking next_node[0] in tree order is both correct and deterministic.
The objects_to_enlarge list can contain tuples (PDepNetwork, Species) from process_pdep_networks, which don't have a .label attribute. The previous sort used a lambda that assumed all objects had .label, causing an AttributeError for superminimal regression test. Fix: use a sort key function that handles both regular objects (Species, Network) and tuples (PDepNetwork, Species) with appropriate label extraction.
suggestion from code review here: ReactionMechanismGenerator#2983 (comment)
comment change is a suggestion from review here: ReactionMechanismGenerator#2983 (comment) logic change is just to make things more clear
came up during review see: ReactionMechanismGenerator#2983 (comment)
This reverts commit 4743a3d.
13c02a2 to
719e7d7
Compare
|
@KnathanM following up on our discussion today, I have (1) reverted the #!/bin/bash
#
# usage: bash /tmp/check_repro.sh <test_name> (e.g., sulfur, liquid_oxidation, aromatics, superminimal)
#
# execute in the RMG-Py directory
#
TEST=$1
# Run 1
python rmg.py "test/regression/${TEST}/input.py" &> /tmp/repro_debug_${TEST}.txt
cp "test/regression/${TEST}/chemkin/chem_annotated.inp" "/tmp/${TEST}_ca_1.inp"
cp "test/regression/${TEST}/chemkin/species_dictionary.txt" "/tmp/${TEST}_sd_1.txt"
cp "test/regression/${TEST}/chemkin/chem_edge_annotated.inp" "/tmp/${TEST}_cea_1.inp"
cp "test/regression/${TEST}/chemkin/species_edge_dictionary.txt" "/tmp/${TEST}_sed_1.txt"
# Run 2
python rmg.py "test/regression/${TEST}/input.py" &>> /tmp/repro_debug_${TEST}.txt
cp "test/regression/${TEST}/chemkin/chem_annotated.inp" "/tmp/${TEST}_ca_2.inp"
cp "test/regression/${TEST}/chemkin/species_dictionary.txt" "/tmp/${TEST}_sd_2.txt"
cp "test/regression/${TEST}/chemkin/chem_edge_annotated.inp" "/tmp/${TEST}_cea_2.inp"
cp "test/regression/${TEST}/chemkin/species_edge_dictionary.txt" "/tmp/${TEST}_sed_2.txt"
# Compare core
echo "=== ${TEST} core ==="
python scripts/checkModels.py "${TEST}-core" \
"/tmp/${TEST}_ca_1.inp" "/tmp/${TEST}_sd_1.txt" \
"/tmp/${TEST}_ca_2.inp" "/tmp/${TEST}_sd_2.txt"
# Compare edge
echo "=== ${TEST} edge ==="
python scripts/checkModels.py "${TEST}-edge" \
"/tmp/${TEST}_cea_1.inp" "/tmp/${TEST}_sed_1.txt" \
"/tmp/${TEST}_cea_2.inp" "/tmp/${TEST}_sed_2.txt"This will emit In the course of debugging I also found that the change from Let me know how your testing goes! |
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:57 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopentane) - ring(Cyclopropane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_ene_1) + polycyclic(s3_5_6_diene_1_5) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-4) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_4_ene_1) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_1) - ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_5_ene_1) + polycyclic(s3_4_5_ene_1) + polycyclic(s3_5_5_diene_0_4) - ring(Cyclobutane) - ring(Cyclopentene) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_ene_1) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclohexane) - ring(Cyclopentane) + ring(Cyclohexene) + ring(Cyclopentene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-allyl) Non-identical thermo! ❌
Identical thermo comments: Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsCsH) + group(Cdd-CdsCds) + Estimated bicyclic component: polycyclic(s4_6_6_ane) - ring(Cyclohexane) - ring(Cyclohexane) + ring(124cyclohexatriene) + ring(1,4-Cyclohexadiene) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_4_ene_1) + polycyclic(s3_4_6_diene_1_5) + polycyclic(s3_4_6_ene_1) - ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclohexene) + radical(cyclobutane) Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Errors occurred during edge comparison
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py aromatics-edge stable_regression_results/aromatics/chemkin/chem_edge_annotated.inp stable_regression_results/aromatics/chemkin/species_edge_dictionary.txt test/regression/aromatics/chemkin/chem_edge_annotated.inp test/regression/aromatics/chemkin/species_edge_dictionary.txt` failed. (See above for error)
|
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | 8.02 | 7.64 | 7.35 | 7.11 | 6.75 | 6.48 | 5.99 | 5.64 |
| k(T): | 3.54 | 4.28 | 4.73 | 5.02 | 5.39 | 5.62 | 5.91 | 6.06 |
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(-0.265,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.""")
kinetics: 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: 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.
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py liquid_oxidation-edge stable_regression_results/liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
liquid_oxidation Passed Observable Testing ✅
Regression test nitrogen:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:58
Current: Execution time (DD:HH:MM:SS): 00:00:00:57
Reference: Memory used: 906.85 MB
Current: Memory used: 909.42 MB
nitrogen Failed Core Comparison ❌
Original model has 41 species.
Test model has 41 species. ✅
Original model has 360 reactions.
Test model has 359 reactions. ❌
The original model has 1 reactions that the tested model does not have. ❌
rxn: HNO(48) + HCO(13) <=> NO(38) + CH2O(18) origin: H_Abstraction
Errors occurred during core comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py nitrogen-core stable_regression_results/nitrogen/chemkin/chem_annotated.inp stable_regression_results/nitrogen/chemkin/species_dictionary.txt test/regression/nitrogen/chemkin/chem_annotated.inp test/regression/nitrogen/chemkin/species_dictionary.txt` failed. (See above for error)
nitrogen Failed Edge Comparison ❌
Original model has 133 species.
Test model has 133 species. ✅
Original model has 983 reactions.
Test model has 981 reactions. ❌
Non-identical thermo! ❌
original: O1[C]=N1
tested: O1[C]=N1
| Hf(300K) | S(300K) | Cp(300K) | Cp(400K) | Cp(500K) | Cp(600K) | Cp(800K) | Cp(1000K) | Cp(1500K) |
|---|---|---|---|---|---|---|---|---|
| 141.64 | 58.66 | 12.26 | 12.27 | 12.09 | 11.96 | 12.26 | 12.72 | 12.15 |
| 116.46 | 53.90 | 11.62 | 12.71 | 13.49 | 13.96 | 14.14 | 13.85 | 13.58 |
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(oxirene) + radical(CdJ-NdO)
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(Cyclopropene) + radical(CdJ-NdO)
The original model has 2 reactions that the tested 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
Non-identical kinetics! ❌
original:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
tested:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | -66.25 | -46.19 | -34.19 | -26.21 | -16.28 | -10.36 | -2.54 | 1.31 |
| k(T): | -49.54 | -33.65 | -24.16 | -17.85 | -10.01 | -5.35 | 0.80 | 3.82 |
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(111.271,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(88.327,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
Identical kinetics comments:
kinetics: Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py nitrogen-edge stable_regression_results/nitrogen/chemkin/chem_edge_annotated.inp stable_regression_results/nitrogen/chemkin/species_edge_dictionary.txt test/regression/nitrogen/chemkin/chem_edge_annotated.inp test/regression/nitrogen/chemkin/species_edge_dictionary.txt` failed. (See above for error)
nitrogen Passed Observable Testing ✅
Regression test oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:34
Current: Execution time (DD:HH:MM:SS): 00:00:01:32
Reference: Memory used: 793.51 MB
Current: Memory used: 794.27 MB
oxidation Passed Core Comparison ✅
Original model has 59 species.
Test model has 59 species. ✅
Original model has 694 reactions.
Test model has 694 reactions. ✅
oxidation Passed Edge Comparison ✅
Original model has 230 species.
Test model has 230 species. ✅
Original model has 1524 reactions.
Test model has 1524 reactions. ✅
oxidation Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test sulfur:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:37
Current: Execution time (DD:HH:MM:SS): 00:00:00:37
Reference: Memory used: 904.27 MB
Current: Memory used: 906.01 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 Passed Edge Comparison ✅
Original model has 89 species.
Test model has 89 species. ✅
Original model has 227 reactions.
Test model has 227 reactions. ✅
sulfur Passed Observable Testing ✅
Regression test superminimal:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:23
Current: Execution time (DD:HH:MM:SS): 00:00:00:23
Reference: Memory used: 967.54 MB
Current: Memory used: 967.25 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:21
Current: Execution time (DD:HH:MM:SS): 00:00:02:54
Reference: Memory used: 2361.21 MB
Current: Memory used: 2437.38 MB
RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅
Regression test RMS_CSTR_liquid_oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:14:57
Current: Execution time (DD:HH:MM:SS): 00:00:03:08
Reference: Memory used: 2516.78 MB
Current: Memory used: 2689.63 MB
RMS_CSTR_liquid_oxidation Failed Core Comparison ❌
Original model has 35 species.
Test model has 17 species. ❌
Original model has 141 reactions.
Test model has 39 reactions. ❌
The original model has 18 species that the tested model does not have. ❌
spc: [CH2]CC(5)
spc: CC=CCC(16)
spc: OO(23)
spc: C[CH]CC(C)OO(34)
spc: [CH2]CC(CC)OO(38)
spc: CCCC(C)O
spc: H2O(42)
spc: CCC([O])CC(44)
spc: C[CH]CCCOO(75)
spc: [CH2]CCCCOO(76)
spc: CCCCCOO(78)
spc: CCCCCO
spc: CC1CC(C)O1(87)
spc: CC=CC(C)OO(88)
spc: C=CCC(C)OO(89)
spc: CC=O(93)
spc: [CH2]CCC(C)O(99)
spc: CC(CC(C)OO)OO
The original model has 102 reactions that the tested model does not have. ❌
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: CCCC(C)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CCC(CC)O[O](22) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: CCCC(C)O[O](20) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: [O]O(13) + C[CH]CC(C)OO(34) <=> oxygen(1) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + pentane(2) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(34) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CC(C)OO(34) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(34) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CC(C)OO(34) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O[O](20) <=> oxygen(1) + [OH](25) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCC(C)O[O](20) <=> oxygen(1) + CCCC(C)[O](41) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: [OH](25) + CCCC(C)[O](41) <=> CCCC(C)OO(24) origin: R_Recombination
rxn: OO(23) + CC[CH]CC(7) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: OO(23) + C[CH]CCC(11) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCC(12) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCC(11) <=> OO(23) + C=CCCC(17) origin: Disproportionation
rxn: [O]O(13) + [O]O(13) <=> oxygen(1) + OO(23) origin: H_Abstraction
rxn: OO(23) + CCCC(C)O[O](20) <=> [O]O(13) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + C[CH]CC(C)OO(34) <=> [O]O(13) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + CCC(CC)O[O](22) <=> [O]O(13) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](25) + [OH](25) <=> OO(23) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) 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: CC=O(93) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)OO(24) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)[O](41) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)[O](41) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + pentane(2) <=> H2O(42) + CC[CH]CC(7) origin: H_Abstraction
rxn: [OH](25) + pentane(2) <=> H2O(42) + C[CH]CCC(11) origin: H_Abstraction
rxn: [OH](25) + pentane(2) <=> H2O(42) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](25) + H2O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [O]O(13) + H2O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(27) <=> [OH](25) + H2O(42) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](25) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(99) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CCC(11) <=> [O]O(13) + CC=CCC(16) origin: Disproportionation
rxn: oxygen(1) + CC[CH]CC(7) <=> [O]O(13) + CC=CCC(16) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCC(11) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: [O]O(13) + C[CH]CCC(11) <=> OO(23) + CC=CCC(16) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CCC(11) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: [O]O(13) + CC[CH]CC(7) <=> OO(23) + CC=CCC(16) origin: Disproportionation
rxn: CC[CH]CC(7) + CC[CH]CC(7) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CCCC(C)O[O](20) <=> [O]O(13) + CC=CCC(16) origin: HO2_Elimination_from_PeroxyRadical
rxn: CCC(CC)O[O](22) <=> [O]O(13) + CC=CCC(16) origin: HO2_Elimination_from_PeroxyRadical
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(88) origin: Disproportionation
rxn: CCC(CC)O[O](22) <=> [CH2]CC(CC)OO(38) origin: intra_H_migration
rxn: [O]O(13) + [CH2]CC(CC)OO(38) <=> oxygen(1) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(27) origin: H_Abstraction
rxn: OO(23) + [CH2]CC(CC)OO(38) <=> [O]O(13) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> [CH2]CCCC(12) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CC(CC)OO(38) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CC(CC)OO(38) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: [CH2]CC(CC)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: CCCCCO[O](61) <=> C[CH]CCCOO(75) origin: intra_H_migration
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) 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: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: CCCCCO[O](61) <=> [CH2]CCCCOO(76) origin: intra_H_migration
rxn: [O]O(13) + [CH2]CCCCOO(76) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: [OH](25) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + H2O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [O]O(13) + CCC(CC)O[O](22) <=> oxygen(1) + [OH](25) + CCC([O])CC(44) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](22) + CCCC(C)O[O](20) <=> oxygen(1) + CCC([O])CC(44) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](22) + CCC(CC)O[O](22) <=> oxygen(1) + CCC([O])CC(44) + CCC([O])CC(44) origin: Peroxyl_Disproportionation
rxn: [OH](25) + CCC([O])CC(44) <=> CCC(CC)OO(27) origin: R_Recombination
rxn: CCC(CC)OO(27) + CCCC(C)OO(24) <=> H2O(42) + CCC([O])CC(44) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCC(CC)OO(27) <=> H2O(42) + CCC([O])CC(44) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(27) <=> [O]O(13) + H2O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(34) <=> [OH](25) + CC1CC(C)O1(87) origin: Cyclic_Ether_Formation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(89) origin: Disproportionation
Errors occurred during core comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-core stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌
Original model has 99 species.
Test model has 82 species. ❌
Original model has 384 reactions.
Test model has 272 reactions. ❌
The original model has 22 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: C[CH]CCOO(85)
spc: [CH2]C(C)C(C)OO(86)
spc: CC1CC(C)O1(87)
spc: CC=CC(C)OO(88)
spc: C=CCC(C)OO(89)
spc: CC([O])CC(C)O(90)
spc: CCCCO
spc: CCC(C)O
spc: CC=O(93)
spc: CCCC=O(94)
spc: CCCCO(95)
spc: CC[CH]C(C)O(96)
spc: [CH2]C(O)CCC(97)
spc: C[CH]CC(C)O(98)
spc: [CH2]CCC(C)O(99)
spc: CC(CC(C)OO)OO
The tested model has 5 species that the original model does not have. ❌
spc: [O]OOO(22)
spc: [O]OO(28)
spc: CCC(CC)OOOO
spc: CCCC(C)OOOO
spc: CCCCCOOOO
The original model has 120 reactions that the tested model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](25) + [OH](25) <=> OO(23) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) 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: CC=O(93) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](25) + H2O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [O]O(13) + H2O(42) + CCCC(C)[O](41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(27) <=> [OH](25) + H2O(42) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](25) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: CCCC(C)[O](41) <=> [CH2]CCC(C)O(99) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(88) origin: Disproportionation
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCCOO(75) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) 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: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCCOO(76) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(76) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: [OH](25) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](22) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + H2O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(27) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(27) <=> [O]O(13) + H2O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(34) <=> [OH](25) + CC1CC(C)O1(87) origin: Cyclic_Ether_Formation
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(89) origin: Disproportionation
rxn: CH2(S)(3) + CCCCOO(51) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCCCOO(51) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: H(8) + CCCCCO[O](61) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]COO(80) + [CH2]CC(5) <=> CCCCCOO(78) origin: R_Recombination
rxn: C[CH2](6) + [CH2]CCOO(81) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + CC[CH]CCOO(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(S)(3) + C[CH]CCOO(85) <=> C[CH]CC(C)OO(34) origin: 1,2_Insertion_carbene
rxn: [CH2]C(C)C(C)OO(86) <=> C[CH]CC(C)OO(34) origin: 1,2_shiftC
rxn: H(8) + CC=CC(C)OO(88) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: H(8) + C=CCC(C)OO(89) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: C[CH]OO(53) + 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(55) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> [CH2]C(CCC)OO(33) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CC([O])CC(C)O(90) origin: intra_OH_migration
rxn: CH2(S)(3) + CCCC[O](91) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](92) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](92) <=> 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(94) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) <=> CCC[C](C)O(95) origin: intra_H_migration
rxn: CC[CH]C(C)O(96) <=> CCCC(C)[O](41) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> [CH2]C(O)CCC(97) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> C[CH]CC(C)O(98) origin: intra_H_migration
rxn: H(8) + [O]O(13) <=> OO(23) origin: R_Recombination
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: 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: 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: 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: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCC[C](C)OO(55) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CC[CH]C(C)OO(32) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + [CH2]C(CCC)OO(33) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(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(55) + 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: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + CC[C](CC)OO(59) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + C[CH]C(CC)OO(37) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> CC[C](CC)OO(59) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> C[CH]C(CC)OO(37) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(27) <=> [CH2]CC(CC)OO(38) + CCCC(C)O(46) origin: H_Abstraction
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: 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: [OH](25) + CCCCCOO(78) <=> H2O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCC[CH]COO(73) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: CCCC(C)[O](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
The tested model has 8 reactions that the original model does not have. ❌
rxn: oxygen(1) + [O]O(13) <=> [O]OOO(22) origin: R_Recombination
rxn: [O]OO(28) + [O]OO(28) <=> oxygen(1) + [O]O(13) + [O]O(13) origin: Peroxyl_Disproportionation
rxn: oxygen(1) + CCC(CC)O[O](20) <=> CCC(CC)OOO[O](39) origin: R_Recombination
rxn: oxygen(1) + CCCC(C)O[O](21) <=> CCCC(C)OOO[O](40) origin: R_Recombination
rxn: [O]OO(28) + CCC(CC)OO[O](48) <=> oxygen(1) + [O]O(13) + CCC(CC)O[O](20) origin: Peroxyl_Disproportionation
rxn: [O]OO(28) + CCCC(C)OO[O](49) <=> oxygen(1) + [O]O(13) + CCCC(C)O[O](21) origin: Peroxyl_Disproportionation
rxn: oxygen(1) + CCCCCO[O](61) <=> CCCCCOOO[O](77) origin: R_Recombination
rxn: oxygen(1) + [OH](26) <=> [O]OO(28) origin: R_Recombination
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-edge stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
Details
The following observables did not match:
❌ Observable species CCCCC varied by more than 0.100 on average between old model pentane(2) and new model pentane(2) in condition 1.
Condition 1:
Reactor Type: IdealGasReactor
Reaction Time: 1000 s
T0: 600 K
P0: 1 bar
Initial Mole Fractions: {'CCCCC': 0.9, '[O][O]': 0.1}
RMS_CSTR_liquid_oxidation Failed Observable Testing ❌
Errors occurred during observable testing ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python rmgpy/tools/regression.py test/regression/RMS_CSTR_liquid_oxidation/regression_input.py stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin test/regression/RMS_CSTR_liquid_oxidation/chemkin` failed. (See above for error)
Regression test fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:33
Current: Execution time (DD:HH:MM:SS): 00:00:00:33
Reference: Memory used: 753.65 MB
Current: Memory used: 753.89 MB
fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
fragment Passed Edge Comparison ✅
Original model has 33 species.
Test model has 33 species. ✅
Original model has 47 reactions.
Test model has 47 reactions. ✅
fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test RMS_constantVIdealGasReactor_fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:02:48
Current: Execution time (DD:HH:MM:SS): 00:00:03:24
Reference: Memory used: 2566.77 MB
Current: Memory used: 2635.40 MB
RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅
Original model has 27 species.
Test model has 27 species. ✅
Original model has 24 reactions.
Test model has 24 reactions. ✅
RMS_constantVIdealGasReactor_fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test minimal_surface:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:30
Current: Execution time (DD:HH:MM:SS): 00:00:00:30
Reference: Memory used: 914.78 MB
Current: Memory used: 912.62 MB
minimal_surface Passed Core Comparison ✅
Original model has 11 species.
Test model has 11 species. ✅
Original model has 3 reactions.
Test model has 3 reactions. ✅
minimal_surface Passed Edge Comparison ✅
Original model has 38 species.
Test model has 38 species. ✅
Original model has 38 reactions.
Test model has 38 reactions. ✅
minimal_surface Passed Observable Testing ✅
beep boop this comment was written by a bot 🤖
KnathanM
left a comment
There was a problem hiding this comment.
Two questions on the comments. Otherwise, I have run the tests locally (except for the surface tests) several times and they look deterministic to me. I think the code is ready to merge. @rwest, can you take a look at this PR?
I'll also note the change to RMS_CSTR_liquid_oxidation is motivated by wanting the test to run faster, see Jackson's comment about that.
see review comment here: ReactionMechanismGenerator#2983 (comment)
|
@rwest we have reviewed this PR and confirmed that it does solve the non-determinism in ring decomposition. locally executing the regression tests now passes (see this comment for instructions to do so yourself) - could you review as well? |
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:55 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_4_ene_1) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_1) - ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_5_ene_1) + polycyclic(s3_4_5_ene_1) + polycyclic(s3_5_5_diene_0_4) - ring(Cyclobutane) - ring(Cyclopentene) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_ene_1) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclohexane) - ring(Cyclopentane) + ring(Cyclohexene) + ring(Cyclopentene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-allyl) Non-identical thermo! ❌
Identical thermo comments: Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_4_ene_1) + polycyclic(s3_4_6_diene_1_5) + polycyclic(s3_4_6_ene_1) - ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclohexene) + radical(cyclobutane) Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Errors occurred during edge comparison
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py aromatics-edge stable_regression_results/aromatics/chemkin/chem_edge_annotated.inp stable_regression_results/aromatics/chemkin/species_edge_dictionary.txt test/regression/aromatics/chemkin/chem_edge_annotated.inp test/regression/aromatics/chemkin/species_edge_dictionary.txt` failed. (See above for error)
|
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | 8.02 | 7.64 | 7.35 | 7.11 | 6.75 | 6.48 | 5.99 | 5.64 |
| k(T): | 3.54 | 4.28 | 4.73 | 5.02 | 5.39 | 5.62 | 5.91 | 6.06 |
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(-0.265,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.""")
kinetics: 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: 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.
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py liquid_oxidation-edge stable_regression_results/liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
liquid_oxidation Passed Observable Testing ✅
Regression test nitrogen:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:03
Current: Execution time (DD:HH:MM:SS): 00:00:00:57
Reference: Memory used: 910.00 MB
Current: Memory used: 909.56 MB
nitrogen Passed Core Comparison ✅
Original model has 41 species.
Test model has 41 species. ✅
Original model has 359 reactions.
Test model has 359 reactions. ✅
nitrogen Passed Edge Comparison ✅
Original model has 133 species.
Test model has 133 species. ✅
Original model has 981 reactions.
Test model has 981 reactions. ✅
nitrogen Passed Observable Testing ✅
Regression test oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:36
Current: Execution time (DD:HH:MM:SS): 00:00:01:33
Reference: Memory used: 787.65 MB
Current: Memory used: 792.25 MB
oxidation Passed Core Comparison ✅
Original model has 59 species.
Test model has 59 species. ✅
Original model has 694 reactions.
Test model has 694 reactions. ✅
oxidation Passed Edge Comparison ✅
Original model has 230 species.
Test model has 230 species. ✅
Original model has 1524 reactions.
Test model has 1524 reactions. ✅
oxidation Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test sulfur:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:39
Current: Execution time (DD:HH:MM:SS): 00:00:00:38
Reference: Memory used: 904.62 MB
Current: Memory used: 910.21 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 Passed Edge Comparison ✅
Original model has 89 species.
Test model has 89 species. ✅
Original model has 227 reactions.
Test model has 227 reactions. ✅
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:23
Reference: Memory used: 962.79 MB
Current: Memory used: 968.77 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:27
Current: Execution time (DD:HH:MM:SS): 00:00:02:22
Reference: Memory used: 2441.45 MB
Current: Memory used: 2453.43 MB
RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅
Regression test RMS_CSTR_liquid_oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:13:19
Current: Execution time (DD:HH:MM:SS): 00:00:02:37
Reference: Memory used: 2513.60 MB
Current: Memory used: 2533.69 MB
RMS_CSTR_liquid_oxidation Failed Core Comparison ❌
Original model has 35 species.
Test model has 17 species. ❌
Original model has 135 reactions.
Test model has 39 reactions. ❌
The original model has 18 species that the tested model does not have. ❌
spc: [CH2]CC(5)
spc: CCH2
spc: CH3
spc: CC=CCC(16)
spc: C=CC(19)
spc: OO(23)
spc: CC[CH]C(C)OO(32)
spc: [CH2]C(CCC)OO(33)
spc: C[CH]CC(C)OO(34)
spc: C[CH]C(CC)OO(37)
spc: [CH2]CC(CC)OO(38)
spc: CCCC(C)O
spc: H2O(42)
spc: CCC([O])CC(44)
spc: CC[CH]CCOO(64)
spc: C[CH]CCCOO(65)
spc: [CH2]CCCCOO(66)
spc: CCCCCOO(78)
The original model has 96 reactions that the tested model does not have. ❌
rxn: [OH](26) + pentane(2) <=> H2O(42) + CC[CH]CC(7) origin: H_Abstraction
rxn: [OH](26) + pentane(2) <=> H2O(42) + C[CH]CCC(11) origin: H_Abstraction
rxn: [OH](26) + pentane(2) <=> H2O(42) + [CH2]CCCC(12) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCCCCO[O](61) + pentane(2) origin: H_Abstraction
rxn: CCC(CC)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: CCCC(C)O[O](21) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(25) origin: H_Abstraction
rxn: OO(23) + CC[CH]CC(7) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: OO(23) + C[CH]CCC(11) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCC(12) <=> [O]O(13) + pentane(2) origin: H_Abstraction
rxn: [O]O(13) + C[CH]CCC(11) <=> OO(23) + C=CCCC(18) origin: Disproportionation
rxn: [O]O(13) + [O]O(13) <=> oxygen(1) + OO(23) origin: H_Abstraction
rxn: OO(23) + CCC(CC)O[O](20) <=> [O]O(13) + CCC(CC)OO(24) origin: H_Abstraction
rxn: OO(23) + CCCC(C)O[O](21) <=> [O]O(13) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O[O](21) <=> oxygen(1) + [OH](26) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCC(C)O[O](21) <=> oxygen(1) + CCCC(C)[O](41) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: [OH](26) + CCCC(C)[O](41) <=> CCCC(C)OO(25) origin: R_Recombination
rxn: CCC(CC)OO(24) + CCCC(C)OO(25) <=> H2O(42) + CCCC(C)[O](41) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(25) + CCCC(C)OO(25) <=> H2O(42) + CCCC(C)[O](41) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)O[O](21) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: [O]O(13) + C[CH]CC(C)OO(34) <=> oxygen(1) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(34) + pentane(2) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(25) origin: H_Abstraction
rxn: OO(23) + C[CH]CC(C)OO(34) <=> [O]O(13) + CCCC(C)OO(25) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCC(C)OO(25) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(34) + pentane(2) origin: H_Abstraction
rxn: C[CH]CC(C)OO(34) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CC(C)OO(34) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(34) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
rxn: CCC(CC)O[O](20) <=> [CH2]CC(CC)OO(38) origin: intra_H_migration
rxn: [O]O(13) + [CH2]CC(CC)OO(38) <=> oxygen(1) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(24) origin: H_Abstraction
rxn: OO(23) + [CH2]CC(CC)OO(38) <=> [O]O(13) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + pentane(2) <=> [CH2]CCCC(12) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CC(CC)OO(38) <=> C=CCCC(18) + CCC(CC)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CC(CC)OO(38) <=> C=CCCC(18) + CCC(CC)OO(24) origin: Disproportionation
rxn: C[CH]C(CC)OO(37) <=> CCC(CC)O[O](20) origin: intra_H_migration
rxn: [O]O(13) + C[CH]C(CC)OO(37) <=> oxygen(1) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(24) origin: H_Abstraction
rxn: OO(23) + C[CH]C(CC)OO(37) <=> [O]O(13) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCC(CC)OO(24) <=> C[CH]C(CC)OO(37) + pentane(2) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]C(CC)OO(37) <=> C=CCCC(18) + CCC(CC)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]C(CC)OO(37) <=> C=CCCC(18) + CCC(CC)OO(24) origin: Disproportionation
rxn: CC[CH]C(C)OO(32) <=> CCCC(C)O[O](21) origin: intra_H_migration
rxn: [O]O(13) + CC[CH]C(C)OO(32) <=> oxygen(1) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(25) origin: H_Abstraction
rxn: OO(23) + CC[CH]C(C)OO(32) <=> [O]O(13) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(25) <=> CC[CH]C(C)OO(32) + pentane(2) origin: H_Abstraction
rxn: CC[CH]C(C)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]C(C)OO(32) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]C(C)OO(32) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
rxn: oxygen(1) + CC[CH]CC(7) <=> [O]O(13) + CC=CCC(16) origin: Disproportionation
rxn: oxygen(1) + C[CH]CCC(11) <=> [O]O(13) + CC=CCC(16) origin: Disproportionation
rxn: CC[CH]CC(7) + CC[CH]CC(7) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CCC(11) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: [O]O(13) + CC[CH]CC(7) <=> OO(23) + CC=CCC(16) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCC(11) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: [O]O(13) + C[CH]CCC(11) <=> OO(23) + CC=CCC(16) origin: Disproportionation
rxn: CCCC(C)O[O](21) <=> [O]O(13) + CC=CCC(16) origin: HO2_Elimination_from_PeroxyRadical
rxn: CCC(CC)O[O](20) <=> [O]O(13) + CC=CCC(16) origin: HO2_Elimination_from_PeroxyRadical
rxn: [O]O(13) + CCC(CC)O[O](20) <=> oxygen(1) + [OH](26) + CCC([O])CC(44) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](20) + CCCC(C)O[O](21) <=> oxygen(1) + CCC([O])CC(44) + CCCC(C)[O](41) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](20) + CCC(CC)O[O](20) <=> oxygen(1) + CCC([O])CC(44) + CCC([O])CC(44) origin: Peroxyl_Disproportionation
rxn: [OH](26) + CCC([O])CC(44) <=> CCC(CC)OO(24) origin: R_Recombination
rxn: CCC(CC)OO(24) + CCC(CC)OO(24) <=> H2O(42) + CCC([O])CC(44) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCCC(C)OO(25) <=> H2O(42) + CCC([O])CC(44) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCO[O](61) <=> C[CH]CCCOO(65) origin: intra_H_migration
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: CCCC(C)O[O](21) <=> [CH2]C(CCC)OO(33) origin: intra_H_migration
rxn: [O]O(13) + [CH2]C(CCC)OO(33) <=> oxygen(1) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(25) origin: H_Abstraction
rxn: OO(23) + [CH2]C(CCC)OO(33) <=> [O]O(13) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(33) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [O]O(13) + C=CCCC(18) <=> [CH2]C(CCC)OO(33) origin: R_Addition_MultipleBond
rxn: [CH2]C(CCC)OO(33) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]C(CCC)OO(33) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]C(CCC)OO(33) <=> C=CCCC(18) + CCCC(C)OO(25) origin: Disproportionation
Errors occurred during core comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-core stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌
Original model has 77 species.
Test model has 82 species. ❌
Original model has 264 reactions.
Test model has 272 reactions. ❌
The tested model has 5 species that the original model does not have. ❌
spc: [O]OOO(22)
spc: [O]OO(28)
spc: CCC(CC)OOOO
spc: CCCC(C)OOOO
spc: CCCCCOOOO
The tested model has 8 reactions that the original model does not have. ❌
rxn: oxygen(1) + [O]O(13) <=> [O]OOO(22) origin: R_Recombination
rxn: [O]OO(28) + [O]OO(28) <=> oxygen(1) + [O]O(13) + [O]O(13) origin: Peroxyl_Disproportionation
rxn: oxygen(1) + CCC(CC)O[O](20) <=> CCC(CC)OOO[O](39) origin: R_Recombination
rxn: oxygen(1) + CCCC(C)O[O](21) <=> CCCC(C)OOO[O](40) origin: R_Recombination
rxn: [O]OO(28) + CCC(CC)OO[O](48) <=> oxygen(1) + [O]O(13) + CCC(CC)O[O](20) origin: Peroxyl_Disproportionation
rxn: [O]OO(28) + CCCC(C)OO[O](49) <=> oxygen(1) + [O]O(13) + CCCC(C)O[O](21) origin: Peroxyl_Disproportionation
rxn: oxygen(1) + CCCCCO[O](61) <=> CCCCCOOO[O](77) origin: R_Recombination
rxn: oxygen(1) + [OH](26) <=> [O]OO(28) origin: R_Recombination
Errors occurred during edge comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-edge stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Passed Observable Testing ✅
Regression test fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:33
Current: Execution time (DD:HH:MM:SS): 00:00:00:31
Reference: Memory used: 753.38 MB
Current: Memory used: 753.96 MB
fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
fragment Passed Edge Comparison ✅
Original model has 33 species.
Test model has 33 species. ✅
Original model has 47 reactions.
Test model has 47 reactions. ✅
fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test RMS_constantVIdealGasReactor_fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:02:55
Current: Execution time (DD:HH:MM:SS): 00:00:02:46
Reference: Memory used: 2454.90 MB
Current: Memory used: 2539.27 MB
RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅
Original model has 27 species.
Test model has 27 species. ✅
Original model has 24 reactions.
Test model has 24 reactions. ✅
RMS_constantVIdealGasReactor_fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING: Initial mole fractions do not sum to one; normalizing.
Regression test minimal_surface:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:32
Current: Execution time (DD:HH:MM:SS): 00:00:00:30
Reference: Memory used: 918.12 MB
Current: Memory used: 910.67 MB
minimal_surface Passed Core Comparison ✅
Original model has 11 species.
Test model has 11 species. ✅
Original model has 3 reactions.
Test model has 3 reactions. ✅
minimal_surface Passed Edge Comparison ✅
Original model has 38 species.
Test model has 38 species. ✅
Original model has 38 reactions.
Test model has 38 reactions. ✅
minimal_surface Passed Observable Testing ✅
beep boop this comment was written by a bot 🤖
This PR is two things: (1) an important effort towards fixing reproducibility issues that crop up in RMG and its regression tests and (2) an experiment for me in using AI to fix bugs.
All of the code changes in this PR were made by Qwen 3.6 27B in opencode. I gave the model a script that ran a given regression test twice and then used
scripts/checkModel.pyon the output to ensure reproducibility, then asked the model to fix any non-reproducible regression tests.Description
Our regression tests 'fail' by default - in reality, RMG just doesn't always make consistent estimates of thermochemistry (and consequently kinetics). This PR resolves it.
sulfurThe sulfur regression test typically fails with:
Obviously this is not actually a failure, we just aren't checking equality correctly. This was resolved in 8b52c36 by checking for isomorphism rather than equality (there may be a better way to do this, read the extended description of that commit to understand why it was done this way).
aromaticsThe test typically fails with:
which is due to a non-deterministic choice in ring decomposition. PR #2920 partially resolved this, and the remaining issue was fixed here: 9156e75 - all that was required was changing
listtosorted(sortedreturns a list) to ensure that lists of component cycles are always in the same order.liquid_oxidationandRMS_CSTR_liquid_oxidationBoth of these often failed, typically with missing reactions and species in the edge (and sometimes core, too):
This was resolved in the remaining commits, which are a bit messy. From what I understand it is also related to sorting, but now with regard to the order in which species are added to the model. Would appreciate some further insight on this one.