Modify node regularization in kinetic families. #2856
Conversation
|
Use testing_regularization.ipynb for testing. |
|
As a sanity check to see if this would work on a family other than Retroene, I ran this fix on 1+2_Cycloaddition family. Tree is generated and regularized without errors and passes final isomorphism check. Here's a file that shares the nodes that were unregularized, and the resulting group after regularization with my fix: 1+2_Cycloaddition.txt |
|
New groups and their complements are regularized at the same time in the same way: RMG-Py/rmgpy/data/kinetics/family.py Line 3005 in d65c5f3 I was able to identify an issue with leaf nodes though (and Root_N-4R!H->C is a leaf node). Since regularization dimensions are computed when we extend a group, leaf nodes where we didn't need to extend seem to only have the copied regularization dimensions of their parent. I added a step in PySIDT regularization where it runs extension expansion (without recursive extension expansion for the split exiting before collecting groups to be expanded, which is quite quick) on each leaf node before regularizing it and that seemed to fix things. |
|
Another comment, mostly to keep track of my thinking. There is definitely a more sophisticated way to fix this issue that doesn't involve reading in atomtypes directly from the training reactions of that node. It's probably better to keep with the architecture that Matt already has. Similar to the fix with the leaf nodes Matt mentioned, I see now that the problem should be solved if the problematic node then acts as a parent node and generates a further extension that is non-splitting on the atom of interest (even if that isn't the extension that is ultimately selected to extend the tree). This would update the reg_dict to include regularization information on the atom of interest in the parent (our problematic node). i.e. our problematic node can be passed regularization info for *5 if a non-splitting extension could be found on that atom. However, some debugging is showing me that attempts to extend this node doesn't propose any non-splitting extensions on *5 (only on *2 and *6). Hence why there's no regularization information for that atom in the group, and why it isn't regularized. I'm still figuring out how exactly Looks like all the training reactions at this node have their *5 atom as N or C, so I would think there should be a proposed extension on *5. Going to focus now on figuring out 1) whether or not there should be a non-splitting extension on *5 and 2) if there shouldn't be, how can we still pass regularization information to *5? |
|
Looks like this fix works on small families, however, I'm not seeing regularization on families that use the cascade algorithm (i.e. R_Addition_MultipleBond). For example, this node here remains unregularized (*3 should only have F as an atomtype). I can load in the tree, remove the children from this node (to simulate first time tree generation) and get the extension edge, and I get the correct regularization dimensions and can run simple regularization so that the node regularizes to: I think regularization dimensions clear between cascade algorithm steps (commit 5e753c9). Working on handling this. |
|
To save time, above commit was tested by regenerating tree of Retroene family instead of a bulky family. This family only has ~70 training reactions and doesn't require the cascade algorithm, but we can build the tree with cascading if we lower max_batch_size to 20 when generating tree. Confirmed that nodes in Retroene family are regularized when cascading is not used, but regularization is not performed on non-leaf nodes when cascading is used on this family. |
|
Used this fix to regenerate the R_Addition_MultipleBond family tree, and looks like regularization is now being performed on most nodes in this family. There are some that remain unregularized, but I think these are the nodes that have >400 training reactions. |
|
Hopefully the CI is now fixed, so please could you rebase onto the latest |
214865a to
be27bb8
Compare
|
This pull request is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant pull request, otherwise it will automatically be closed in 30 days. |
be27bb8 to
03529f0
Compare
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)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s3_4_5_ene_3) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_5_5_ene_1) - ring(Cyclobutene) - ring(Cyclopentane) - ring(Cyclopentene) + 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(Cyclopropane) - ring(Cyclopentane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_diene_0_3) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclopentane) - ring(Cyclohexane) + ring(Cyclopentene) + ring(1,4-Cyclohexadiene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(1,4-Cyclohexadiene) + radical(cyclopentene-4) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_diene_1_3) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclopentane) - ring(Cyclohexane) + ring(Cyclopentene) + ring(1,3-Cyclohexadiene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(1,3-Cyclohexadiene) + radical(cyclopentene-allyl) Non-identical thermo! ❌
Identical thermo comments: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: DetailsObservables Test Case: Aromatics Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions! aromatics Passed Observable Testing ✅Regression test liquid_oxidation:Reference: Execution time (DD:HH:MM:SS): 00:00:01:56 liquid_oxidation Failed Core Comparison ❌Original model has 37 species. liquid_oxidation Failed Edge Comparison ❌Original model has 214 species. DetailsObservables Test Case: liquid_oxidation Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions! liquid_oxidation Passed Observable Testing ✅Regression test nitrogen:Reference: Execution time (DD:HH:MM:SS): 00:00:01:01 nitrogen Failed Core Comparison ❌Original model has 41 species. nitrogen Failed Edge Comparison ❌Original model has 133 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(Cyclopropene) + radical(CdJ-NdO) Non-identical kinetics! ❌
kinetics: DetailsObservables Test Case: NC Comparison✅ All Observables varied by less than 0.200 on average between old model and new model in all conditions! nitrogen Passed Observable Testing ✅Regression test oxidation:Reference: Execution time (DD:HH:MM:SS): 00:00:01:43 oxidation Passed Core Comparison ✅Original model has 59 species. oxidation Passed Edge Comparison ✅Original model has 230 species. DetailsObservables Test Case: Oxidation Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions! oxidation Passed Observable Testing ✅Errors occurred during observable testing
WARNING:root:Initial mole fractions do not sum to one; normalizing.
|
…tead of using their atom symbol to make an atomtype
…ows problematic nodes to generate atomExt extensions that aren't node splitting if the optimization dimension of the regularization dictionary is more specific than the atomtype at the atom of interest being extended. For example, if the atomtype of an atom labeled *5 is [Si, F, Li, N, C, P, S] and the regulatization dictionary has an optimization dimension that narrows down these atomtypes (i.e. reg_dim_atm[0] = <N,C>), then we can allow for atomExt extensions that change *5's atomtype to be [N,C] (rather than just [N] or just [C]). This way, we have an extension that narrows down *5 to <N,C> from [Si, F, Li, N, C, P, S] but also matches all of the training reactions at the node, so the regularization information (reg_dim_atm{1]) is passed to the group.
… regularization info is passed (but not actually extending them).
…cade algorithm. Allows optimization dimensions of reg_dim_atm dictionary to clear (first list in dictionary), but preserves the regularization dimension in reg_dim_atm (second list in dictionary).
03529f0 to
50e7588
Compare
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR aims to ensure node regularization is consistently applied across kinetics families by preserving regularization dimensions during pruning and ensuring leaf/complement nodes receive the right regularization metadata when atom extensions split nodes.
Changes:
- Preserve regularization dimensions while clearing optimization dimensions during
prune_tree. - Add logic to extend leaf nodes during
simple_regularizationso regularization info is populated. - Add a “non-splitting” atom extension path in
Group.specify_atom_extensions.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| rmgpy/molecule/group.py | Adds a new atomExt-labeled extension path (including a non-splitting option) when specifying atom extensions. |
| rmgpy/data/kinetics/family.py | Adjusts pruning to clear only optimization dims, and adds leaf-node handling to populate regularization info during regularization. |
| #generate an extension without node splitting | ||
| if len(self.atoms[i].atomtype)>len(Rset): | ||
| print('generating a non-splitting extension') | ||
| if all(r in self.atoms[i].atomtype for r in Rset): | ||
| #that means even if we update the atomtype of the atom to the Rset, it will still be a specification | ||
| grp = deepcopy(self) | ||
| grp.atoms[i].atomtype = list(Rset) | ||
|
|
||
| #rename | ||
| old_atom_type = grp.atoms[i].atomtype | ||
|
|
||
| if len(old_atom_type) > 1: | ||
| labelList = [] | ||
| old_atom_type_str = '' | ||
| for k in old_atom_type: | ||
| labelList.append(k.label) | ||
| for p in sorted(labelList): | ||
| old_atom_type_str += p | ||
| elif len(old_atom_type) == 0: | ||
| old_atom_type_str = "" | ||
| else: | ||
| old_atom_type_str = old_atom_type[0].label | ||
|
|
||
| grps.append( | ||
| (grp, None, basename + '_' + str(i + 1) + old_atom_type_str + '->' + ''.join(r.label for r in Rset), 'atomExt', (i,))) |
| grp.atoms[i].atomtype = list(Rset) | ||
|
|
||
| #rename | ||
| old_atom_type = grp.atoms[i].atomtype |
| old_atom_type_str = old_atom_type[0].label | ||
|
|
||
| grps.append( | ||
| (grp, None, basename + '_' + str(i + 1) + old_atom_type_str + '->' + ''.join(r.label for r in Rset), 'atomExt', (i,))) |
|
|
||
| #generate an extension without node splitting | ||
| if len(self.atoms[i].atomtype)>len(Rset): | ||
| print('generating a non-splitting extension') |
| for atm in entry.item.atoms: | ||
| atm.reg_dim_atm[0] = [] #only clear the optimization dimension, preserve the regularization dimension | ||
| atm.reg_dim_u[0] = [] | ||
| atm.reg_dim_r[0] = [] | ||
| atm.reg_dim_site[0] = [] | ||
| atm.reg_dim_morphology[0] = [] | ||
| for bd in entry.item.get_all_edges(): | ||
| bd.reg_dim[0] = [] |
| if node.children==[]: #if this is a leaf node, run it through get_extension_edge so that the regularization info is passed to leaf node | ||
| print('extending leaf nodes to get regularization info') | ||
| _, _ = self.get_extension_edge(node, template_rxn_map, obj=None, T=1000.0, iter_max=1, iter_item_cap=1) |
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:56 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(s2_5_5_diene_1_5) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentene) + 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)(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-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_ene_1) + polycyclic(s3_4_6_diene_1_5) - ring(Cyclobutane) - ring(Cyclobutene) - 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: 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)
Details
Observables Test Case: liquid_oxidation Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!
liquid_oxidation Passed Observable Testing ✅
Regression test nitrogen:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:58
Current: Execution time (DD:HH:MM:SS): 00:00:01:04
Reference: Memory used: 897.79 MB
Current: Memory used: 896.90 MB
nitrogen Passed Core Comparison ✅
Original model has 41 species.
Test model has 41 species. ✅
Original model has 360 reactions.
Test model has 360 reactions. ✅
nitrogen Failed Edge Comparison ❌
Original model has 133 species.
Test model has 133 species. ✅
Original model has 983 reactions.
Test model has 983 reactions. ✅
Non-identical thermo! ❌
original: O1[C]=N1
tested: O1[C]=N1
| Hf(300K) | S(300K) | Cp(300K) | Cp(400K) | Cp(500K) | Cp(600K) | Cp(800K) | Cp(1000K) | Cp(1500K) |
|---|---|---|---|---|---|---|---|---|
| 116.46 | 53.90 | 11.62 | 12.71 | 13.49 | 13.96 | 14.14 | 13.85 | 13.58 |
| 141.64 | 58.66 | 12.26 | 12.27 | 12.09 | 11.96 | 12.26 | 12.72 | 12.15 |
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(Cyclopropene) + radical(CdJ-NdO)
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(oxirene) + radical(CdJ-NdO)
Non-identical kinetics! ❌
original:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
tested:
rxn: NCO(66) <=> O1[C]=N1(126) origin: Intra_R_Add_Endocyclic
| k(1bar) | 300K | 400K | 500K | 600K | 800K | 1000K | 1500K | 2000K |
|---|---|---|---|---|---|---|---|---|
| k(T): | -49.54 | -33.65 | -24.16 | -17.85 | -10.01 | -5.35 | 0.80 | 3.82 |
| k(T): | -66.25 | -46.19 | -34.19 | -26.21 | -16.28 | -10.36 | -2.54 | 1.31 |
kinetics: Arrhenius(A=(6.95187e+18,'s^-1'), n=-1.628, Ea=(88.327,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone0_N-2R!H-inRing_N-1R!H-inRing_Sp-2R!H-1R!H in family Intra_R_Add_Endocyclic.""")
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.""")
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)
Details
Observables Test Case: NC Comparison✅ All Observables varied by less than 0.200 on average between old model and new model in all conditions!
nitrogen Passed Observable Testing ✅
Regression test oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:34
Current: Execution time (DD:HH:MM:SS): 00:00:01:43
Reference: Memory used: 772.85 MB
Current: Memory used: 773.21 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. ✅
Details
Observables Test Case: Oxidation Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions!
oxidation Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING:root:Initial mole fractions do not sum to one; normalizing.
Regression test sulfur:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:40
Current: Execution time (DD:HH:MM:SS): 00:00:00:42
Reference: Memory used: 891.49 MB
Current: Memory used: 887.25 MB
sulfur Passed Core Comparison ✅
Original model has 27 species.
Test model has 27 species. ✅
Original model has 74 reactions.
Test model has 74 reactions. ✅
sulfur Failed Edge Comparison ❌
Original model has 89 species.
Test model has 89 species. ✅
Original model has 227 reactions.
Test model has 227 reactions. ✅
The original model has 1 reactions that the tested model does not have. ❌
rxn: O(4) + SO2(15) (+N2) <=> SO3(16) (+N2) origin: primarySulfurLibrary
The tested model has 1 reactions that the original model does not have. ❌
rxn: O(4) + SO2(15) (+N2) <=> SO3(16) (+N2) origin: primarySulfurLibrary
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
Observables Test Case: SO2 Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!
sulfur Passed Observable Testing ✅
Regression test superminimal:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:25
Current: Execution time (DD:HH:MM:SS): 00:00:00:27
Reference: Memory used: 955.40 MB
Current: Memory used: 955.03 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:57
Current: Execution time (DD:HH:MM:SS): 00:00:03:08
Reference: Memory used: 2443.40 MB
Current: Memory used: 2506.24 MB
RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅
Original model has 13 species.
Test model has 13 species. ✅
Original model has 19 reactions.
Test model has 19 reactions. ✅
Details
Observables Test Case: RMS_constantVIdealGasReactor_superminimal Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!
RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅
Regression test RMS_CSTR_liquid_oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:14:54
Current: Execution time (DD:HH:MM:SS): 00:00:21:14
Reference: Memory used: 2759.52 MB
Current: Memory used: 3420.17 MB
RMS_CSTR_liquid_oxidation Failed Core Comparison ❌
Original model has 35 species.
Test model has 35 species. ✅
Original model has 124 reactions.
Test model has 164 reactions. ❌
The original model has 6 species that the tested model does not have. ❌
spc: [CH2]CCC(9)
spc: C=CC(18)
spc: C[CH]C(CC)OO(31)
spc: CC[CH]C(C)OO(35)
spc: CC[CH]CCOO(64)
spc: [CH2]CCCCOO(66)
The tested model has 6 species that the original model does not have. ❌
spc: CCCCCO
spc: CC=O(87)
spc: [CH2]CCC(C)O(93)
spc: CC1CC(C)O1(96)
spc: CC=CC(C)OO(97)
spc: CC(CC(C)OO)OO
The original model has 26 reactions that the tested model does not have. ❌
rxn: C[CH]C(CC)OO(31) <=> CCC(CC)O[O](22) origin: intra_H_migration
rxn: [O]O(13) + C[CH]C(CC)OO(31) <=> oxygen(1) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + pentane(2) <=> C[CH]CCC(11) + CCC(CC)OO(27) origin: H_Abstraction
rxn: OO(23) + C[CH]C(CC)OO(31) <=> [O]O(13) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + pentane(2) <=> CC[CH]CC(7) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCC(CC)OO(27) <=> C[CH]C(CC)OO(31) + pentane(2) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]C(CC)OO(31) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]C(CC)OO(31) <=> C=CCCC(17) + CCC(CC)OO(27) origin: Disproportionation
rxn: CC[CH]C(C)OO(35) <=> CCCC(C)O[O](20) origin: intra_H_migration
rxn: [O]O(13) + CC[CH]C(C)OO(35) <=> oxygen(1) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + CC[CH]C(C)OO(35) <=> [O]O(13) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)OO(24) <=> CC[CH]C(C)OO(35) + pentane(2) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]C(C)OO(35) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]C(C)OO(35) <=> C=CCCC(17) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCCCCO[O](61) <=> [CH2]CCCCOO(66) origin: intra_H_migration
rxn: CC[CH]CCOO(64) <=> CCCCCO[O](61) origin: intra_H_migration
rxn: C[CH]CCC(11) <=> C[CH2](6) + C=CC(18) origin: R_Addition_MultipleBond
rxn: [CH3](10) + [CH2]CCC(9) <=> pentane(2) origin: R_Recombination
The tested model has 66 reactions that the original model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](26) + [OH](26) <=> OO(23) origin: R_Recombination
rxn: oxygen(1) + H2O(42) <=> [OH](26) + [O]O(13) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + [CH2]CCCC(12) <=> OO(23) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + OO(23) <=> [O]O(13) + H2O(42) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> H2O(42) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(25) <=> [OH](26) + H2O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](26) + 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](44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: [OH](26) + [CH2]CCCC(12) <=> H2O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + C[CH]CCC(11) <=> H2O(42) + C=CCCC(17) origin: Disproportionation
rxn: OO(23) + CCCCCOO(78) <=> [OH](26) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](26) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: C[CH]CCC(11) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: [OH](26) + CCC(CC)OO(25) <=> H2O(42) + [CH2]CC(CC)OO(32) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(32) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(25) origin: H_Abstraction
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCCC(C)O[O](20) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + C[CH]CCCOO(65) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(65) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(65) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(65) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(65) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCCOO(65) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](26) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCOO(78) + CCCCCOO(78) <=> 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)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(25) <=> [O]O(13) + H2O(42) + CCC([O])CC(41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(37) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
Errors occurred during core comparison ⚠️
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-core stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌
Original model has 77 species.
Test model has 107 species. ❌
Original model has 264 reactions.
Test model has 545 reactions. ❌
The tested model has 30 species that the original model does not have. ❌
spc: CCCCCO
spc: [CH2]COO(80)
spc: [CH2]CCOO(81)
spc: [CH2]OO(82)
spc: [CH2]CCCOO(83)
spc: CCCC[CH]OO(84)
spc: CCCCO
spc: CCC(C)O
spc: CC=O(87)
spc: CCCC=O(88)
spc: CCCCO(89)
spc: CC[CH]C(C)O(90)
spc: [CH2]C(O)CCC(91)
spc: C[CH]CC(C)O(92)
spc: [CH2]CCC(C)O(93)
spc: C[CH]CCOO(94)
spc: [CH2]C(C)C(C)OO(95)
spc: CC1CC(C)O1(96)
spc: CC=CC(C)OO(97)
spc: C=CCC(C)OO(98)
spc: CC([O])CC(C)O(99)
spc: CC(CC(C)OO)OO
spc: CCCCCOOOO(101)
spc: CCCC(C)OOO(102)
spc: CCCCCO(103)
spc: CCC[CH]CO(104)
spc: CCCCCOOO
spc: OOO(106)
spc: CCC(CC)OOO(107)
spc: CCCCCOOO(108)
The tested model has 281 reactions that the original model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](26) + [OH](26) <=> OO(23) origin: R_Recombination
rxn: oxygen(1) + H2O(42) <=> [OH](26) + [O]O(13) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + [CH2]CCCC(12) <=> OO(23) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + OO(23) <=> [O]O(13) + H2O(42) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> H2O(42) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(25) <=> [OH](26) + H2O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [CH2]CCCC(12) + CCCCCO[O](61) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](26) + 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](44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: [OH](26) + [CH2]CCCC(12) <=> H2O(42) + C=CCCC(17) origin: Disproportionation
rxn: [OH](26) + C[CH]CCC(11) <=> H2O(42) + C=CCCC(17) origin: Disproportionation
rxn: OO(23) + CCCCCOO(78) <=> [OH](26) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](26) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CC=O(87) + [CH2]CC(5) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: C[CH]CCC(11) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](21) <=> CC=CCC(16) + CCC(CC)OO(25) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](20) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(24) origin: Disproportionation
rxn: [OH](26) + CCC(CC)OO(25) <=> H2O(42) + [CH2]CC(CC)OO(32) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(32) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(25) origin: H_Abstraction
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCCC(C)O[O](20) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + C[CH]CCCOO(65) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(65) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(65) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + C[CH]CCCOO(65) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(65) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCCOO(65) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](26) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> H2O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCOO(78) + CCCCCOO(78) <=> 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)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> H2O(42) + CCC([O])CC(41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(25) <=> [O]O(13) + H2O(42) + CCC([O])CC(41) origin: Bimolec_Hydroperoxide_Decomposition
rxn: C[CH]CC(C)OO(37) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
rxn: H(8) + [OH](26) <=> H2O(42) origin: R_Recombination
rxn: CH2(S)(3) + CCCCOO(55) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCCCOO(55) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: H(8) + CCCCCO[O](61) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]COO(80) + [CH2]CC(5) <=> CCCCCOO(78) origin: R_Recombination
rxn: C[CH2](6) + [CH2]CCOO(81) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + CC[CH]CCOO(64) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]OO(82) + [CH2]CCC(9) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + CCC[CH]COO(63) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH3](10) + [CH2]CCCOO(83) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + C[CH]CCCOO(65) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + CCCC[CH]OO(84) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + [CH2]CCCCOO(66) <=> CCCCCOO(78) origin: R_Recombination
rxn: H(8) + [O]O(13) <=> OO(23) origin: R_Recombination
rxn: CH2(S)(3) + CCCC[O](85) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: H(8) + CCCC(C)=O(34) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: [CH3](10) + CCCC=O(88) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> CCC[C](C)O(89) origin: intra_H_migration
rxn: CC[CH]C(C)O(90) <=> CCCC(C)[O](44) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> [CH2]C(O)CCC(91) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> C[CH]CC(C)O(92) origin: intra_H_migration
rxn: CH2(S)(3) + C[CH]CCOO(94) <=> C[CH]CC(C)OO(37) origin: 1,2_Insertion_carbene
rxn: [CH2]C(C)C(C)OO(95) <=> C[CH]CC(C)OO(37) origin: 1,2_shiftC
rxn: H(8) + CC=CC(C)OO(97) <=> C[CH]CC(C)OO(37) origin: R_Addition_MultipleBond
rxn: H(8) + C=CCC(C)OO(98) <=> C[CH]CC(C)OO(37) origin: R_Addition_MultipleBond
rxn: C[CH]OO(56) + C=CC(18) <=> C[CH]CC(C)OO(37) origin: R_Addition_MultipleBond
rxn: CC[CH]C(C)OO(35) <=> C[CH]CC(C)OO(37) origin: intra_H_migration
rxn: [CH2]CCC(C)OO(38) <=> C[CH]CC(C)OO(37) origin: intra_H_migration
rxn: C[CH]CC(C)OO(37) <=> CCC[C](C)OO(58) origin: intra_H_migration
rxn: C[CH]CC(C)OO(37) <=> [CH2]C(CCC)OO(36) origin: intra_H_migration
rxn: C[CH]CC(C)OO(37) <=> CC([O])CC(C)O(99) origin: intra_OH_migration
rxn: [O]O(13) + CC[CH]CCOO(64) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCC[CH]COO(63) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCC[CH]OO(84) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + [CH2]CCCCOO(66) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: oxygen(1) + CCCC(C)[O](44) <=> [O]O(13) + CCCC(C)=O(34) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](44) <=> CCCC(C)OO[O](49) origin: R_Recombination
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + C=CCC(C)OO(98) origin: Disproportionation
rxn: CCCC(C)[O](44) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CC[CH]C(69) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=CCCC(17) + C[CH]CCC(11) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(17) + C[CH]CCC(11) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> C=CCCC(17) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: C=CCCC(17) + CC[CH]CC(7) <=> C=CC[CH]C(69) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(17) + CC[CH]CC(7) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(17) + CC[CH]CC(7) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> CCCC[CH]OO(84) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + H2O(42) + CCCCC=O(62) origin: Peroxyl_Termination
rxn: [O]O(13) + CCCCCO[O](61) <=> CCCCCOOOO(101) origin: R_Recombination
rxn: OO(23) + CC[CH]CCOO(64) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCC[CH]COO(63) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCCCOO(78) <=> OO(23) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(66) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)[O](44) <=> OO(23) + CCCC(C)=O(34) origin: Disproportionation
rxn: [O]O(13) + CCCC(C)[O](44) <=> oxygen(1) + CCCC(C)O(47) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)[O](44) <=> CCCC(C)OOO(102) origin: R_Recombination
rxn: CCC(CC)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCC(=O)CC(30) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCC(CC)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCC(O)CC(46) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: C=CCCC(17) + CCC(CC)O[O](21) <=> [CH2]C=CCC(71) + CCC(CC)OO(25) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCC(CC)OO(25) <=> C=CCCC(17) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)O[O](21) <=> CCCC(C)=O(34) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCC(CC)O[O](21) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCC(CC)OO(25) origin: Disproportionation
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)=O(34) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCCC(C)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCCC(C)O(47) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)O[O](20) <=> [CH2]C=CCC(71) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)OO(24) <=> C=CCCC(17) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)O[O](20) <=> CCCC(C)=O(34) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](20) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCC(C)OO(24) origin: Disproportionation
rxn: [OH](26) + CCC(CC)OO(25) <=> H2O(42) + CC[C](CC)OO(52) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> H2O(42) + C[CH]C(CC)OO(31) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(25) <=> CCC(CC)O[O](21) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(25) <=> CC[C](CC)OO(52) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(25) <=> C[CH]C(CC)OO(31) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(25) <=> [CH2]CC(CC)OO(32) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCC(CC)OO(25) <=> CC[C](CC)OO(52) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(25) origin: H_Abstraction
rxn: C=CCCC(17) + [CH2]CCCC(12) <=> C=CC[CH]C(69) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(17) + [CH2]CCCC(12) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(17) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CC[CH]CCOO(64) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCC[CH]COO(63) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCCC[CH]OO(84) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> [CH2]CCCC(12) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> C=CCCC(17) + CCCC(C)O(47) origin: Disproportionation
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + CCC[C](C)OO(58) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + CC[CH]C(C)OO(35) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + [CH2]C(CCC)OO(36) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> H2O(42) + [CH2]CCC(C)OO(38) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> CCC[C](C)OO(58) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> CC[CH]C(C)OO(35) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> [CH2]C(CCC)OO(36) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> [CH2]CCC(C)OO(38) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCCC(C)OO(24) <=> CCC[C](C)OO(58) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(36) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(38) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> H2O(42) + C=CC[CH]C(69) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> H2O(42) + [CH2]C=CCC(71) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> H2O(42) + [CH2]CCC=C(72) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> H2O(42) + C=[C]CCC(73) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> H2O(42) + [CH]=CCCC(74) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(17) <=> [CH2]C(O)CCC(91) origin: R_Addition_MultipleBond
rxn: [OH](26) + C=CCCC(17) <=> CCC[CH]CO(104) origin: R_Addition_MultipleBond
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + CC[CH]CCOO(64) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + CCC[CH]COO(63) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(66) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)[O](44) <=> H2O(42) + CCCC(C)=O(34) origin: Disproportionation
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCCCCO(103) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=CCCC(17) + CCCCCO[O](61) <=> [CH2]C=CCC(71) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCCCOO(78) <=> C=CCCC(17) + CCCCCO[O](61) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCO[O](61) <=> CCCC(C)=O(34) + CCCCCOO(78) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCCCOO(78) origin: Disproportionation
rxn: H2O(42) + C=CCCC(17) <=> CCCCCO(103) origin: 1,3_Insertion_ROR
rxn: H2O(42) + C=CCCC(17) <=> CCCC(C)O(47) origin: 1,3_Insertion_ROR
rxn: [CH2]CCCC(12) + CC[CH]CCOO(64) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCC[CH]COO(63) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC[CH]OO(84) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(66) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(64) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC[CH]COO(63) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC[CH]OO(84) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(66) <=> C=CCCC(17) + CCCCCOO(78) origin: Disproportionation
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> C=CC[CH]C(69) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> [CH2]C=CCC(71) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(17) + CCCC(C)[O](44) <=> [CH2]CCC=C(72) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)O(47) <=> C=CCCC(17) + CCCC(C)[O](44) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)O(47) <=> C=CCCC(17) + CCCC(C)[O](44) origin: H_Abstraction
rxn: C=CC[CH]C(69) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=CCCC(17) + C[CH]CC(C)OO(37) <=> [CH2]C=CCC(71) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)OO(24) <=> C=CCCC(17) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)O(47) <=> H2O(42) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CC[CH]CCOO(64) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCC[CH]COO(63) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(65) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> [CH2]CCCCOO(66) + CCCC(C)O(47) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O(47) <=> OO(23) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CCCC(C)=O(34) + CCCC(C)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](20) + CCC(CC)OO[O](48) <=> oxygen(1) + CCCC(C)[O](44) + CCC(CC)O[O](21) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCC(C)OO[O](49) <=> oxygen(1) + CCCC(C)[O](44) + CCCC(C)O[O](20) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](20) + CCCCCOO[O](105) <=> oxygen(1) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Peroxyl_Disproportionation
rxn: OO(23) + OOO(106) <=> [O]O(13) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCC(CC)OO(25) <=> [O]O(13) + H2O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OOO(107) <=> [O]O(13) + H2O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCCC(C)OO(24) <=> [O]O(13) + H2O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OOO(102) <=> [O]O(13) + H2O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCCCCOO(78) <=> [O]O(13) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOOO(108) <=> [O]O(13) + H2O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCC(CC)OOO(107) <=> H2O(42) + CCC(CC)O[O](21) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCC(CC)OOO(107) <=> H2O(42) + CCC(CC)O[O](21) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCCC(C)OOO(102) <=> H2O(42) + CCC(CC)O[O](21) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCC(CC)OOO(107) <=> H2O(42) + CCC(CC)O[O](21) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCCCCOOO(108) <=> H2O(42) + CCC(CC)O[O](21) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCC(C)OOO(102) <=> H2O(42) + CCCC(C)O[O](20) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCC(C)OOO(102) <=> H2O(42) + CCCC(C)O[O](20) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCCCOOO(108) <=> H2O(42) + CCCC(C)O[O](20) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOOO(108) <=> H2O(42) + CCCCCO[O](61) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
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
Observables Test Case: RMS_CSTR_liquid_oxidation Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!
RMS_CSTR_liquid_oxidation Passed Observable Testing ✅
Regression test fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:34
Current: Execution time (DD:HH:MM:SS): 00:00:00:35
Reference: Memory used: 738.65 MB
Current: Memory used: 737.54 MB
fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
fragment Passed Edge Comparison ✅
Original model has 33 species.
Test model has 33 species. ✅
Original model has 47 reactions.
Test model has 47 reactions. ✅
Details
Observables Test Case: fragment Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!
fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING:root:Initial mole fractions do not sum to one; normalizing.
Regression test RMS_constantVIdealGasReactor_fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:03:25
Current: Execution time (DD:HH:MM:SS): 00:00:03:33
Reference: Memory used: 2528.50 MB
Current: Memory used: 2579.91 MB
RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅
Original model has 10 species.
Test model has 10 species. ✅
Original model has 2 reactions.
Test model has 2 reactions. ✅
RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅
Original model has 27 species.
Test model has 27 species. ✅
Original model has 24 reactions.
Test model has 24 reactions. ✅
Details
Observables Test Case: RMS_constantVIdealGasReactor_fragment Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions!
RMS_constantVIdealGasReactor_fragment Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
WARNING:root:Initial mole fractions do not sum to one; normalizing.
Regression test minimal_surface:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:33
Current: Execution time (DD:HH:MM:SS): 00:00:00:34
Reference: Memory used: 886.31 MB
Current: Memory used: 899.63 MB
minimal_surface Passed Core Comparison ✅
Original model has 11 species.
Test model has 11 species. ✅
Original model has 3 reactions.
Test model has 3 reactions. ✅
minimal_surface Passed Edge Comparison ✅
Original model has 38 species.
Test model has 38 species. ✅
Original model has 38 reactions.
Test model has 38 reactions. ✅
Details
Observables Test Case: minimal_surface Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions!
minimal_surface Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
/home/runner/work/RMG-Py/RMG-Py/rmgpy/tools/canteramodel.py:550: UserWarning: ReactorSurface::syncState: Behavior changed in Cantera 3.2 for consistency with ReactorBase. To set SurfPhase state from ReactorSurface object, use restoreState().
species_data.append(np.concatenate((cantera_reactor.thermo[species_names_list].X, rsurf.kinetics.coverages)))
beep boop this comment was written by a bot 🤖




Motivation or Problem
Noticed that the nodes of some families were not being regularized. For example, in groups.py of the Retroene family, the following entry (below) specifies that the *5 atom can be a fluorine, but the entire training set of the family includes zero fluorinated reactions.
This indicates that node regularization was not carried out on this node. My understanding of node regularization is that it is performed to limit how "general" a node is and ensures that the node fits it's reaction data "tightly." Successful regularization on this node would mean that this node should not explicitly specify atoms like I, P, Br, Cl, Si, S, F, or Li if they are not included in the training reaction set. There are numerous other nodes in this family that are not regularized, and this is also occurring in other families. This is a problem because, if you were descending a fluorinated reaction down this tree, it would fall to a deeper depth down the tree to a node with fewer training reactions compared to the Root, but those fewer training reactions are not at all representative of the fluorinated reaction that we want to estimate a rate for. I could see this being an issue for other chemistries involving Br, Cl, Si, S, Li, etc.
After some digging, I think regularization is being skipped because:
Description of Changes
Different approach to passing the regularization information to each node. After an extension is selected, if that extension is of the type
atomExt(i.e. changing an atom's atomtype R -> C) that splits the training reactions of the parent node into an extension node and complement node, then regularization info is passed to the extension node AND the compliment node. Regularization info of compliment is found by analyzing all of the reactions that fit the complimentary node and determining which atomtypes are in those reactions. After this information is found, regularization info is also passed to the parent node (and this information is no longer an empty list).Testing
Simplest testing is with Retroene family.
[Si,Li,S,N,P,F,Br,I,Cl,C])