Skip to content

Modify node regularization in kinetic families. #2856

Open
Nora-Khalil wants to merge 9 commits intoReactionMechanismGenerator:mainfrom
Nora-Khalil:fixing_node_regularization
Open

Modify node regularization in kinetic families. #2856
Nora-Khalil wants to merge 9 commits intoReactionMechanismGenerator:mainfrom
Nora-Khalil:fixing_node_regularization

Conversation

@Nora-Khalil
Copy link
Copy Markdown
Contributor

@Nora-Khalil Nora-Khalil commented Nov 13, 2025

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.

entry(
    index = 93,
    label = "Root_N-4R!H->C",
    group = 
"""
1 *3 R!H                       u0 r0 {2,S} {3,S}
2 *4 R!H                       u0 r0 {1,S} {4,S}
3 *2 C                         u0 {1,S} {5,[D,T,B]}
4 *5 [I,P,Br,Cl,N,Si,S,F,Li,O] u0 r0 {2,S} {6,S}
5 *1 R!H                       u0 {3,[D,T,B]}
6 *6 [H,Li]                    u0 r0 {4,S}
""",
    kinetics = None,
)

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:

  1. compliment nodes are missing the regularization dimensions that provide information on how the node should be regularized (this information is only passed to the extension node and not its compliment). I fix this by passing the info to the compliment. However, even when I pass the compliment the regularization info, if that compliment is further split via an atomExt extension as the tree is further extended, you run into issue 2.
  2. when a parent node is split via an atomExt extension (which splits the parent node into an extension node and compliment node), the regularization information of the parent node is overwritten with the regularization info of the new extension node (which resets the regularization information to an empty list).

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.

  1. load instance of database
  2. clean Retroene tree
  3. generate tree
  4. Identify nodes that are not regularized (will have atomtype [Si,Li,S,N,P,F,Br,I,Cl,C])
  5. regularize family
  6. re-check identified nodes from step 4. If things work, these nodes should have more specific atomtypes than before.
  7. check entire tree for isomorphism.

@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

Use testing_regularization.ipynb for testing.

@Nora-Khalil Nora-Khalil marked this pull request as ready for review November 14, 2025 14:36
@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

Nora-Khalil commented Nov 14, 2025

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

@mjohnson541
Copy link
Copy Markdown
Contributor

New groups and their complements are regularized at the same time in the same way:

grpc.atoms[indcr[0]].reg_dim_atm = list(reg_val)
. So it would be strange if the complement is missing regularization information, but the new group has the information.

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.

@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

Nora-Khalil commented Nov 17, 2025

Thanks for the input! I'll try that.

During my debugging, I've been regenerating the Retroene family. For some reason, my regenerated tree doesn't split the root node to Root_N-4R!H->C (even before any of my changes). Instead, the first split is below:

Root_4R!H->O (new group)
1 *3 R!H    u0 {2,S} {3,[S,D]}
2 *4 R!H    u0 {1,S} {4,[S,D]}
3 *2 R!H    u0 {1,[S,D]} {5,[D,T,B]}
4 *5 O      u0 {2,[S,D]} {6,S}
5 *1 R!H    u0 {3,[D,T,B]}
6 *6 [H,Li] u0 {4,S}

Root_N-4R!H->O (compliment) 
1 *3 R!H                       u0 {2,S} {3,[S,D]}
2 *4 R!H                       u0 {1,S} {4,[S,D]}
3 *2 R!H                       u0 {1,[S,D]} {5,[D,T,B]}
4 *5 [Si,Li,S,N,P,F,Br,I,Cl,C] u0 {2,[S,D]} {6,S}
5 *1 R!H                       u0 {3,[D,T,B]}
6 *6 [H,Li]                    u0 {4,S}

where the compliment is unregularized. So I've been focusing on this compliment and why it wasn't regularized. I don't think this is a leaf node (I'm assuming a leaf node means there's no extensions beyond this node?). Looks like the Root node had 68 reactions and this compliment node has 67 reactions. The templateRxnMap shows many different nodes that start with the similar node label, which I think means that there were extensions branching from this node (please correct me if I am wrong).

Screenshot 2025-11-17 at 8 51 08 AM

I think I'm seeing this issue in non-leaf nodes then.

After running family.regularize with this proposed fix, I can get the compliment to regularize to:

Root_N-4R!H->O
1 *3 R!H    u0 {2,S} {3,[S,D]}
2 *4 R!H    u0 {1,S} {4,[S,D]}
3 *2 C      u0 {1,[S,D]} {5,[D,T,B]}
4 *5 [N,C]  u0 {2,[S,D]} {6,S}
5 *1 R!H    u0 {3,[D,T,B]}
6 *6 [H,Li] u0 {4,S}

whereas, before, running regularize won't change the node at all.

From debugging, it looks like the regularization info in reg_val (the second list in the tuple) is an empty list in these cases where regularization is missing in the compliment. Apologies for my wording in this PR, I believe the compliment is getting passed the regularization dictionary, as you showed in line 3005, but it looks like in the cases where the compliment isn't regularized, this regularization dictionary just had an empty list (and essentially no regularization info). Was that intended? I think this is specifically an issue with nodes that are both 1) a compliment and 2) then further extended via an atomExt since the reg_val then always has an empty list for the regularization info.

I'm curious to know what you think about this new Root_N-4R!H->O node. In addition, I'm also encountering the issue you mentioned with leaf nodes, so thanks for suggesting a fix for that. Thanks so much for the input so far!

@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

Nora-Khalil commented Nov 18, 2025

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

Root_N-4R!H->O 
1 *3 R!H                       u0 {2,S} {3,[S,D]}
2 *4 R!H                       u0 {1,S} {4,[S,D]}
3 *2 R!H                       u0 {1,[S,D]} {5,[D,T,B]}
4 *5 [Si,Li,S,N,P,F,Br,I,Cl,C] u0 {2,[S,D]} {6,S}
5 *1 R!H                       u0 {3,[D,T,B]}
6 *6 [H,Li]                    u0 {4,S}

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 get_extension_edge works, so there may be something I'm still missing...

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?

@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

*5 does have a splitting extension that looks like this, where *5 is either N or C.
Screenshot 2025-11-19 at 9 49 46 AM

But I believe our problem would be solved if there was a non-splitting extension proposed that looked like this:

0  *3 R!H
1  *4 R!H
2  *2 R!H
3  *5 N, C
4  *1 R!H
5  *6 H, Li 

where *5 would be extended from atomtypes [Si,Li,S,N,P,F,Br,I,Cl,C] to [N,C]

@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

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).
Screenshot 2025-12-01 at 8 56 50 AM

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:
Screenshot 2025-12-01 at 8 59 46 AM

I think regularization dimensions clear between cascade algorithm steps (commit 5e753c9). Working on handling this.

@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

Nora-Khalil commented Dec 1, 2025

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.

@Nora-Khalil
Copy link
Copy Markdown
Contributor Author

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.

@rwest
Copy link
Copy Markdown
Member

rwest commented Dec 2, 2025

Hopefully the CI is now fixed, so please could you rebase onto the latest main? Thanks

@Nora-Khalil Nora-Khalil force-pushed the fixing_node_regularization branch from 214865a to be27bb8 Compare December 2, 2025 15:13
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 3, 2026

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

@github-actions github-actions bot added the stale stale issue/PR as determined by actions bot label Mar 3, 2026
Nora Khalil added 9 commits March 31, 2026 21:19
…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).
@rwest rwest force-pushed the fixing_node_regularization branch from be27bb8 to 03529f0 Compare April 1, 2026 01:19
@github-actions github-actions bot removed the stale stale issue/PR as determined by actions bot label Apr 1, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 1, 2026

Regression Testing Results

⚠️ One or more regression tests failed.
Please download the failed results and run the tests locally or check the log to see why.

Detailed regression test results.

Regression test aromatics:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:55
Current: Execution time (DD:HH:MM:SS): 00:00:00:53
Reference: Memory used: 750.98 MB
Current: Memory used: 810.66 MB

aromatics Passed Core Comparison ✅

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

aromatics Failed Edge Comparison ❌

Original model has 106 species.
Test model has 106 species. ✅
Original model has 358 reactions.
Test model has 358 reactions. ✅

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

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

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)
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s3_4_5_ene_3) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s2_5_5_diene_1_5) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentene) + radical(cyclopentene-allyl)

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

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

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)
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopropane) - ring(Cyclopentane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_ene_1) + polycyclic(s3_5_6_diene_1_5) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-4)

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

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

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)
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_ene_1) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclopentane) - ring(Cyclohexane) + ring(Cyclopentene) + ring(Cyclohexene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-allyl)

Non-identical thermo! ❌
original: C=CC1C=CC2=CC1C=C2
tested: C=CC1C=CC2=CC1C=C2

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
83.22 82.78 35.48 45.14 53.78 61.40 73.58 82.20 95.08
83.22 84.16 35.48 45.14 53.78 61.40 73.58 82.20 95.08

Identical thermo comments:
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds- CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsHH) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclopentane) - ring(Cyclohexane) + ring(Cyclopentadiene) + ring(1,3-Cyclohexadiene)

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

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

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

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

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

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

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

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

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

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

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

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

Details Observables Test Case: Aromatics Comparison

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

aromatics Passed Observable Testing ✅

Regression test liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:56
Current: Execution time (DD:HH:MM:SS): 00:00:01:55
Reference: Memory used: 851.41 MB
Current: Memory used: 893.30 MB

liquid_oxidation Failed Core Comparison ❌

Original model has 37 species.
Test model has 37 species. ✅
Original model has 241 reactions.
Test model has 239 reactions. ❌
The original model has 2 reactions that the tested model does not have. ❌
rxn: [CH2]CCCC(12) <=> C[CH]CCC(11) origin: intra_H_migration
rxn: [CH2]CCCC(12) <=> C[CH]CCC(11) origin: intra_H_migration

liquid_oxidation Failed Edge Comparison ❌

Original model has 214 species.
Test model has 214 species. ✅
Original model has 1590 reactions.
Test model has 1591 reactions. ❌
The original model has 6 reactions that the tested model does not have. ❌
rxn: [CH2]CCCC(12) <=> C[CH]CCC(11) origin: intra_H_migration
rxn: [CH2]CCCC(12) <=> C[CH]CCC(11) origin: intra_H_migration
rxn: C[CH]CC(C)OO(31) <=> CCC[C](C)OO(81) origin: intra_H_migration
rxn: CCCC[CH]OO(96) <=> C[CH]CCCOO(63) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(CCC=O)OO(116) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(=O)CCCOO(112) origin: intra_H_migration
The tested model has 7 reactions that the original model does not have. ❌
rxn: C[CH]CC(C)OO(32) <=> [OH](22) + CCCC(C)=O(29) origin: intra_H_migration
rxn: C[CH]CCCOO(63) <=> [OH](22) + CCCCC=O(60) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> CC(CC[CH]OO)OO(133) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> C[C](CCCOO)OO(132) origin: intra_H_migration
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC([O])CC(C)OO(110) + CC([O])CCCOO(122) origin: Peroxyl_Disproportionation
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CC(C)OO(105) + CC(O)CCCOO(152) origin: Peroxyl_Termination
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CCCOO(115) + CC(O)CC(C)OO(143) origin: Peroxyl_Termination

Details Observables Test Case: liquid_oxidation Comparison

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

liquid_oxidation Passed Observable Testing ✅

Regression test nitrogen:

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

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)
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)
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): -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.

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:43
Current: Execution time (DD:HH:MM:SS): 00:00:01:40
Reference: Memory used: 737.62 MB
Current: Memory used: 773.02 MB

oxidation Passed Core Comparison ✅

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

oxidation Passed Edge Comparison ✅

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

Details Observables Test Case: Oxidation Comparison

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

oxidation Passed Observable Testing ✅
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:39
Current: Execution time (DD:HH:MM:SS): 00:00:00:38
Reference: Memory used: 848.02 MB
Current: Memory used: 893.15 MB

sulfur Passed Core Comparison ✅

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

sulfur Failed Edge Comparison ❌

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

Details Observables Test Case: SO2 Comparison

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.

⚠️ The following reaction conditions had some discrepancies:
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 ❌

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: 935.79 MB
Current: Memory used: 954.20 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:51
Current: Execution time (DD:HH:MM:SS): 00:00:02:00
Reference: Memory used: 2377.04 MB
Current: Memory used: 2372.33 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:43
Current: Execution time (DD:HH:MM:SS): 00:00:13:50
Reference: Memory used: 3301.52 MB
Current: Memory used: 3147.13 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

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

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 77 species.
Test model has 99 species. ❌
Original model has 246 reactions.
Test model has 384 reactions. ❌
The tested model has 22 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
The original model has 2 reactions that the tested model does not have. ❌
rxn: [CH2]CCCC(12) <=> C[CH]CCC(11) origin: intra_H_migration
rxn: [CH2]CCCC(12) <=> C[CH]CCC(11) origin: intra_H_migration
The tested model has 140 reactions that the original model does not have. ❌
rxn: CCC(CC)O[O](21) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(25) origin: H_Abstraction
rxn: CCCC(C)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + 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](26) + [OH](26) <=> 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(87) + [CH2]CC(5) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + CCC(CC)O[O](21) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(25) <=> [OH](26) + O(42) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> O(42) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [OH](26) + O(42) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(24) <=> [O]O(13) + O(42) + CCCC(C)[O](44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + CCCCCOO(78) <=> [OH](26) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + OO(23) <=> [OH](26) + [O]O(13) + O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(25) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + [CH2]CC(CC)OO(32) 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](26) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCC(CC)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOO(78) <=> [O]O(13) + O(42) + CCCCC[O](79) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> O(42) + CCC([O])CC(41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(25) <=> [O]O(13) + O(42) + CCC([O])CC(41) origin: Bimolec_Hydroperoxide_Decomposition
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](26) + CCCCCOO(78) <=> O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + C=CCC(C)OO(98) origin: Disproportionation
rxn: CC[C](CC)OO(53) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(25) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(25) origin: H_Abstraction
rxn: CCC[C](C)OO(58) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(36) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) 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](3) + CCCCOO(55) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCCCOO(55) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCCCO[O](61) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]COO(80) + [CH2]CC(5) <=> CCCCCOO(78) origin: R_Recombination
rxn: C[CH2](6) + [CH2]CCOO(81) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + CC[CH]CCOO(74) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2]OO(82) + [CH2]CCC(9) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + CCC[CH]COO(73) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH3](10) + [CH2]CCCOO(83) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + C[CH]CCCOO(75) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + CCCC[CH]OO(84) <=> CCCCCOO(78) origin: R_Recombination
rxn: [H](8) + [CH2]CCCCOO(76) <=> CCCCCOO(78) origin: R_Recombination
rxn: [CH2](3) + CCCC[O](85) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCC(C)=O(34) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: [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: [H](8) + [O]O(13) <=> OO(23) origin: R_Recombination
rxn: [CH2](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(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](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: 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: 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](26) + CCC(CC)OO(25) <=> O(42) + CC[C](CC)OO(53) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + C[CH]C(CC)OO(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(53) + 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: [OH](26) + CCCC(C)OO(24) <=> O(42) + CCC[C](C)OO(58) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + CC[CH]C(C)OO(35) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(42) + [CH2]C(CCC)OO(36) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(24) <=> O(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: [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](26) + CCCCCOO(78) <=> O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCC[CH]COO(73) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: 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(74) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCC[CH]COO(73) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(75) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> [CH2]CCCCOO(76) + CCCC(C)O(47) origin: H_Abstraction

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:32
Reference: Memory used: 698.58 MB
Current: Memory used: 737.07 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:28
Current: Execution time (DD:HH:MM:SS): 00:00:02:27
Reference: Memory used: 2467.04 MB
Current: Memory used: 2513.71 MB

RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅

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

Details Observables Test Case: RMS_constantVIdealGasReactor_fragment Comparison

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

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

Regression test minimal_surface:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:32
Current: Execution time (DD:HH:MM:SS): 00:00:00:30
Reference: Memory used: 854.04 MB
Current: Memory used: 897.56 MB

minimal_surface Passed Core Comparison ✅

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

minimal_surface Passed Edge Comparison ✅

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

Details Observables Test Case: minimal_surface Comparison

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

minimal_surface Passed Observable Testing ✅

beep boop this comment was written by a bot 🤖

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants