Skip to content

Change orthonormalization when projecting out rotors in Arkane#2913

Open
rwest wants to merge 5 commits intomainfrom
arkanebug
Open

Change orthonormalization when projecting out rotors in Arkane#2913
rwest wants to merge 5 commits intomainfrom
arkanebug

Conversation

@rwest
Copy link
Copy Markdown
Member

@rwest rwest commented Apr 1, 2026

Motivation or Problem

When trying to project out rotors, Arkane would sometimes have major numerical issues and give very poor results.
These changes were made while trying to debug that issue - I switched to a more robust method for orthonormalization, and added some diagnostic defensive checks that would detect zero diagonal elements.

See discussion in #2757 (specifically #2757 (comment) and #2757 (comment) )

It turned out to have a different solution (ensuring Gaussian uses the same coordinate system for the Hessian matrix as the geometry, which is checked for in #2758 ) but the changes here are nevertheless probably improvements.

Description of Changes

This pull request refactors the project_rotors function in arkane/statmech.py to modernize and simplify the orthonormalization and projection logic by replacing manual Gram-Schmidt procedures with NumPy's QR decomposition. It also adds extensive logging for debugging matrix orthogonality and projection accuracy.
The most important changes are:

Refactoring and Modernization:

  • Replaced manual Gram-Schmidt orthonormalization of projection and internal rotor matrices with NumPy's np.linalg.qr, streamlining the code and improving numerical stability. (arkane/statmech.py [1] [2]
  • Updated the construction of the transformation matrix T to use the orthonormalized basis from QR decomposition instead of manually normalized vectors. (arkane/statmech.py arkane/statmech.pyR1101-R1127)

Debugging and Logging Enhancements:

  • Added detailed logging to verify that the QR decomposition yields orthonormal columns and that the projection matrix can be accurately reconstructed, including warnings for nearly zero diagonal elements in R (potentially indicating loss of basis vectors). (arkane/statmech.py [1] [2]
  • Added debug output for computed internal rotor frequencies to aid in diagnostics. (arkane/statmech.py arkane/statmech.pyL1213-R1242)

Minor Corrections:

  • Fixed a variable name from inertia to identity for clarity when constructing the identity matrix for projection. (arkane/statmech.py arkane/statmech.pyL1213-R1242)

@rwest rwest requested a review from Copilot April 1, 2026 13:45
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Refactors Arkane’s project_rotors orthonormalization/projection workflow to improve numerical robustness by replacing manual Gram–Schmidt steps with QR decomposition, and adds diagnostics to detect rank/orthogonality issues during rotor projection.

Changes:

  • Replaced Gram–Schmidt orthonormalization with NumPy QR decomposition for projection and internal rotor subspaces.
  • Updated transformation matrix construction (T) to use QR-derived orthonormal bases.
  • Added debug/warning logging for orthogonality, reconstruction checks, and near-zero R diagonals.

@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:55
Reference: Memory used: 809.94 MB
Current: Memory used: 809.79 MB

aromatics Passed Core Comparison ✅

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

aromatics Failed Edge Comparison ❌

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

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

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

thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s3_4_5_ene_3) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s2_5_5_diene_1_5) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentene) + radical(cyclopentene-allyl)
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(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! ❌
original: [CH]1C2C=CC3C(=C2)C13
tested: [CH]1C2C=CC3C(=C2)C13

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Details Observables Test Case: Aromatics Comparison

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

aromatics Passed Observable Testing ✅

Regression test liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:56
Current: Execution time (DD:HH:MM:SS): 00:00:02:01
Reference: Memory used: 892.42 MB
Current: Memory used: 893.49 MB

liquid_oxidation Passed Core Comparison ✅

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

liquid_oxidation Failed Edge Comparison ❌

Original model has 214 species.
Test model has 214 species. ✅
Original model has 1588 reactions.
Test model has 1588 reactions. ✅
The original model has 2 reactions that the tested model does not have. ❌
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(CCC=O)OO(116) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(=O)CCCOO(112) origin: intra_H_migration
The tested model has 2 reactions that the original model does not have. ❌
rxn: CC(C[CH]COO)OO(118) <=> CC(CC[CH]OO)OO(133) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> C[C](CCCOO)OO(132) origin: intra_H_migration

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

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): 3.54 4.28 4.73 5.02 5.39 5.62 5.91 6.06
k(T): 7.83 7.49 7.23 7.02 6.68 6.42 5.95 5.61

kinetics: Arrhenius(A=(3.2e+12,'cm^3/(mol*s)'), n=0, Ea=(4.064,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R in family Peroxyl_Disproportionation.""")
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(0,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.""")
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R in family Peroxyl_Disproportionation.
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.

Details Observables Test Case: liquid_oxidation Comparison

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

liquid_oxidation Passed Observable Testing ✅

Regression test nitrogen:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:03
Current: Execution time (DD:HH:MM:SS): 00:00:01:05
Reference: Memory used: 896.88 MB
Current: Memory used: 897.11 MB

nitrogen Passed Core Comparison ✅

Original model has 41 species.
Test model has 41 species. ✅
Original model has 360 reactions.
Test model has 360 reactions. ✅

nitrogen Passed Edge Comparison ✅

Original model has 133 species.
Test model has 133 species. ✅
Original model has 983 reactions.
Test model has 983 reactions. ✅

Details Observables Test Case: NC Comparison

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

nitrogen Passed Observable Testing ✅

Regression test oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:46
Current: Execution time (DD:HH:MM:SS): 00:00:01:48
Reference: Memory used: 770.92 MB
Current: Memory used: 770.50 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:42
Current: Execution time (DD:HH:MM:SS): 00:00:00:42
Reference: Memory used: 892.59 MB
Current: Memory used: 890.72 MB

sulfur Passed Core Comparison ✅

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

sulfur Failed Edge Comparison ❌

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

Details Observables Test Case: SO2 Comparison

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

sulfur Passed Observable Testing ✅

Regression test superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:26
Current: Execution time (DD:HH:MM:SS): 00:00:00:26
Reference: Memory used: 947.79 MB
Current: Memory used: 948.32 MB

superminimal Passed Core Comparison ✅

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

superminimal Passed Edge Comparison ✅

Original model has 18 species.
Test model has 18 species. ✅
Original model has 28 reactions.
Test model has 28 reactions. ✅

Regression test RMS_constantVIdealGasReactor_superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:18
Current: Execution time (DD:HH:MM:SS): 00:00:02:22
Reference: Memory used: 2328.17 MB
Current: Memory used: 2288.49 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:28:58
Current: Execution time (DD:HH:MM:SS): 00:00:28:47
Reference: Memory used: 2637.01 MB
Current: Memory used: 3386.77 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

Original model has 35 species.
Test model has 35 species. ✅
Original model has 181 reactions.
Test model has 176 reactions. ❌
The original model has 1 species that the tested model does not have. ❌
spc: CCCC(C)O(47)
The tested model has 1 species that the original model does not have. ❌
spc: [CH2]CCCCOO(66)
The original model has 18 reactions that the tested model does not have. ❌
rxn: CCCC(C)[O](44) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(47) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)[O](44) <=> oxygen(1) + CCCC(C)O(47) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> C=CCCC(18) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> CCCC(C)O[O](22) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(27) <=> C[CH]CC(C)OO(37) + CCCC(C)O(47) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> C=CCCC(18) + CCCC(C)O(47) origin: Disproportionation
rxn: O(42) + C=CCCC(18) <=> CCCC(C)O(47) origin: 1,3_Insertion_ROR
rxn: [OH](25) + CCCC(C)O(47) <=> O(42) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(47) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O(47) <=> OO(23) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(88) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + CCC(CC)OO(24) <=> [CH2]CC(CC)OO(32) + 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
The tested model has 13 reactions that the original model does not have. ❌
rxn: CCCCCO[O](61) <=> [CH2]CCCCOO(66) origin: intra_H_migration
rxn: [O]O(13) + [CH2]CCCCOO(66) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(66) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> [CH2]CCCC(12) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + [CH2]CCCCOO(66) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(66) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(66) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction

RMS_CSTR_liquid_oxidation Passed Edge Comparison ✅

Original model has 107 species.
Test model has 107 species. ✅
Original model has 545 reactions.
Test model has 545 reactions. ✅

Details Observables Test Case: RMS_CSTR_liquid_oxidation Comparison

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

RMS_CSTR_liquid_oxidation Passed Observable Testing ✅

Regression test fragment:

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

fragment Passed Core Comparison ✅

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

fragment Passed Edge Comparison ✅

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

Details Observables Test Case: fragment Comparison

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

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

Regression test RMS_constantVIdealGasReactor_fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:46
Current: Execution time (DD:HH:MM:SS): 00:00:02:51
Reference: Memory used: 2330.17 MB
Current: Memory used: 2466.25 MB

RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅

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

Details Observables Test Case: RMS_constantVIdealGasReactor_fragment Comparison

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

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

Regression test minimal_surface:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:32
Current: Execution time (DD:HH:MM:SS): 00:00:00:33
Reference: Memory used: 891.33 MB
Current: Memory used: 897.78 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 🤖

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 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:57
Current: Execution time (DD:HH:MM:SS): 00:00:00:54
Reference: Memory used: 810.30 MB
Current: Memory used: 808.92 MB

aromatics Passed Core Comparison ✅

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

aromatics Failed Edge Comparison ❌

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

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

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

thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s3_4_5_ene_3) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s2_5_5_diene_1_5) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentene) + radical(cyclopentene-allyl)
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(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! ❌
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 kinetics! ❌
original:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2=CC3C1C=CC23(62) origin: Intra_R_Add_Endocyclic
tested:
rxn: [CH]1C2=CC=CC1C=C2(48) <=> [CH]1C2=CC3C1C=CC23(62) origin: Intra_R_Add_Endocyclic

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

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

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

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -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:02:02
Current: Execution time (DD:HH:MM:SS): 00:00:01:55
Reference: Memory used: 892.69 MB
Current: Memory used: 894.39 MB

liquid_oxidation Passed Core Comparison ✅

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

liquid_oxidation Failed Edge Comparison ❌

Original model has 214 species.
Test model has 214 species. ✅
Original model has 1591 reactions.
Test model has 1588 reactions. ❌
The original model has 5 reactions that the tested model does not have. ❌
rxn: CC(C[CH]COO)OO(118) <=> CC(CC[CH]OO)OO(133) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> C[C](CCCOO)OO(132) origin: intra_H_migration
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC([O])CC(C)OO(110) + CC([O])CCCOO(123) origin: Peroxyl_Disproportionation
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CC(C)OO(105) + CC(O)CCCOO(152) origin: Peroxyl_Termination
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CCCOO(115) + CC(O)CC(C)OO(143) origin: Peroxyl_Termination
The tested model has 2 reactions that the original model does not have. ❌
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(CCC=O)OO(116) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(=O)CCCOO(112) origin: intra_H_migration

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:05
Current: Execution time (DD:HH:MM:SS): 00:00:01:03
Reference: Memory used: 889.19 MB
Current: Memory used: 889.45 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. ❌
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

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

oxidation Passed Core Comparison ✅

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

oxidation Passed Edge Comparison ✅

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

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:42
Current: Execution time (DD:HH:MM:SS): 00:00:00:40
Reference: Memory used: 891.54 MB
Current: Memory used: 891.62 MB

sulfur Passed Core Comparison ✅

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

sulfur Failed Edge Comparison ❌

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

Details Observables Test Case: SO2 Comparison

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

sulfur Passed Observable Testing ✅

Regression test superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:26
Current: Execution time (DD:HH:MM:SS): 00:00:00:24
Reference: Memory used: 945.23 MB
Current: Memory used: 941.88 MB

superminimal Passed Core Comparison ✅

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

superminimal Passed Edge Comparison ✅

Original model has 18 species.
Test model has 18 species. ✅
Original model has 28 reactions.
Test model has 28 reactions. ✅

Regression test RMS_constantVIdealGasReactor_superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:03:03
Current: Execution time (DD:HH:MM:SS): 00:00:02:52
Reference: Memory used: 2426.72 MB
Current: Memory used: 2412.49 MB

RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅

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

Details Observables Test Case: RMS_constantVIdealGasReactor_superminimal Comparison

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

RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅

Regression test RMS_CSTR_liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:30:34
Current: Execution time (DD:HH:MM:SS): 00:00:18:24
Reference: Memory used: 2707.26 MB
Current: Memory used: 2958.93 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

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

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 101 species.
Test model has 77 species. ❌
Original model has 382 reactions.
Test model has 260 reactions. ❌
The original model has 24 species that the tested model does not have. ❌
spc: CCC(CC)OOOO
spc: CCCCCOOOO
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 122 reactions that the tested model does not have. ❌
rxn: [O]O(13) + [CH2]CCCC(12) <=> CCCCCOO(78) origin: R_Recombination
rxn: [OH](26) + [OH](26) <=> OO(23) origin: R_Recombination
rxn: [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) + 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) + 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) + 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: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [CH3](10) + CCCC=O(88) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(47) origin: H_Abstraction
rxn: 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) <=> C[CH]CC(C)OO(37) + CCCC(C)O(47) 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) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(47) origin: H_Abstraction
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: [OH](26) + CCC(CC)OO(25) <=> O(42) + [CH2]CC(CC)OO(32) 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: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + CC=CC(C)OO(97) origin: Disproportionation
rxn: [O]O(13) + C[CH]CCCOO(65) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(65) <=> [O]O(13) + 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: [OH](26) + CCCCCOO(78) <=> O(42) + C[CH]CCCOO(65) 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: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(65) + CCCC(C)O(47) origin: H_Abstraction
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCCC(C)OO(24) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCC(C)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(25) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCC(CC)O[O](21) 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: oxygen(1) + CCC(CC)O[O](21) <=> CCC(CC)OOO[O](39) origin: R_Recombination
rxn: oxygen(1) + CCCCCO[O](61) <=> CCCCCOOO[O](77) origin: R_Recombination
rxn: [CH2](3) + CCCCOO(50) <=> CCCCCOO(78) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCCCOO(50) <=> 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](3) + CCCC[O](85) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCC(C)=O(34) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> CCC[C](C)O(89) origin: intra_H_migration
rxn: CC[CH]C(C)O(90) <=> CCCC(C)[O](44) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> [CH2]C(O)CCC(91) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> C[CH]CC(C)O(92) origin: intra_H_migration
rxn: [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: C[CH]CC(C)OO(37) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
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(52) + 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(54) 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: 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: 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: [OH](26) + CCCC(C)OO(24) <=> O(42) + CCC[C](C)OO(54) 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) <=> CCC[C](C)OO(54) + 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) <=> [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: [OH](26) + CCC(CC)OO(25) <=> O(42) + CC[C](CC)OO(58) 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) <=> CC[C](CC)OO(58) + 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: [OH](26) + CCCCCOO(78) <=> O(42) + CC[CH]CCOO(64) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCC[CH]COO(63) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: [OH](26) + CCCCCOO(78) <=> O(42) + [CH2]CCCCOO(66) origin: H_Abstraction
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: 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) <=> 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

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:34
Reference: Memory used: 736.97 MB
Current: Memory used: 736.86 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:23
Current: Execution time (DD:HH:MM:SS): 00:00:03:19
Reference: Memory used: 2476.61 MB
Current: Memory used: 2503.66 MB

RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅

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

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:31
Reference: Memory used: 898.29 MB
Current: Memory used: 886.40 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 🤖

@rwest rwest force-pushed the arkanebug branch 3 times, most recently from 4b0d834 to a1d53e9 Compare April 8, 2026 18:46
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 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:54
Current: Execution time (DD:HH:MM:SS): 00:00:00:56
Reference: Memory used: 810.24 MB
Current: Memory used: 809.67 MB

aromatics Passed Core Comparison ✅

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

aromatics Failed Edge Comparison ❌

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

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

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

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

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

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -59.93 -40.64 -29.08 -21.38 -11.79 -6.05 1.56 5.34
k(T): -56.49 -38.05 -27.01 -19.66 -10.50 -5.02 2.25 5.85

kinetics: Arrhenius(A=(6.50724e+19,'s^-1'), n=-0.859, Ea=(106.547,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone1_2R!H-inRing_1R!H-inRing in family Intra_R_Add_Endocyclic. Multiplied by reaction path degeneracy 6.0""")
kinetics: Arrhenius(A=(6.50724e+19,'s^-1'), n=-0.859, Ea=(101.822,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Backbone1_2R!H-inRing_1R!H-inRing in family Intra_R_Add_Endocyclic. Multiplied by reaction path degeneracy 6.0""")
Identical kinetics comments:
kinetics: Estimated from node Backbone1_2R!H-inRing_1R!H-inRing in family Intra_R_Add_Endocyclic.
Multiplied by reaction path degeneracy 6.0

Details Observables Test Case: Aromatics Comparison

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

aromatics Passed Observable Testing ✅

Regression test liquid_oxidation:

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

liquid_oxidation Passed Core Comparison ✅

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

liquid_oxidation Failed Edge Comparison ❌

Original model has 214 species.
Test model has 214 species. ✅
Original model has 1588 reactions.
Test model has 1591 reactions. ❌
The original model has 2 reactions that the tested model does not have. ❌
rxn: CC(C[CH]COO)OO(118) <=> CC(CC[CH]OO)OO(133) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> C[C](CCCOO)OO(132) origin: intra_H_migration
The tested model has 5 reactions that the original model does not have. ❌
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(CCC=O)OO(116) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(115) <=> [OH](22) + CC(=O)CCCOO(112) origin: intra_H_migration
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC([O])CC(C)OO(110) + CC([O])CCCOO(123) origin: Peroxyl_Disproportionation
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CC(C)OO(100) + CC(O)CCCOO(152) origin: Peroxyl_Termination
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CCCOO(112) + CC(O)CC(C)OO(143) origin: Peroxyl_Termination

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

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): 3.54 4.28 4.73 5.02 5.39 5.62 5.91 6.06
k(T): 7.83 7.49 7.23 7.02 6.68 6.42 5.95 5.61

kinetics: Arrhenius(A=(3.2e+12,'cm^3/(mol*s)'), n=0, Ea=(4.064,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R in family Peroxyl_Disproportionation.""")
kinetics: Arrhenius(A=(3.18266e+20,'cm^3/(mol*s)'), n=-2.694, Ea=(0,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.""")
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing_Ext-5R-R in family Peroxyl_Disproportionation.
kinetics: Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.

Details Observables Test Case: liquid_oxidation Comparison

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

liquid_oxidation Passed Observable Testing ✅

Regression test nitrogen:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:03
Current: Execution time (DD:HH:MM:SS): 00:00:01:04
Reference: Memory used: 896.08 MB
Current: Memory used: 895.46 MB

nitrogen Passed Core Comparison ✅

Original model has 41 species.
Test model has 41 species. ✅
Original model has 360 reactions.
Test model has 360 reactions. ✅

nitrogen Passed Edge Comparison ✅

Original model has 133 species.
Test model has 133 species. ✅
Original model has 983 reactions.
Test model has 983 reactions. ✅

Details Observables Test Case: NC Comparison

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

nitrogen Passed Observable Testing ✅

Regression test oxidation:

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

oxidation Passed Core Comparison ✅

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

oxidation Passed Edge Comparison ✅

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

Details Observables Test Case: Oxidation Comparison

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

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

Regression test sulfur:

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

sulfur Passed Core Comparison ✅

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

sulfur Failed Edge Comparison ❌

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

Details Observables Test Case: SO2 Comparison

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

sulfur Passed Observable Testing ✅

Regression test superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:25
Current: Execution time (DD:HH:MM:SS): 00:00:00:25
Reference: Memory used: 949.07 MB
Current: Memory used: 948.57 MB

superminimal Passed Core Comparison ✅

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

superminimal Passed Edge Comparison ✅

Original model has 18 species.
Test model has 18 species. ✅
Original model has 28 reactions.
Test model has 28 reactions. ✅

Regression test RMS_constantVIdealGasReactor_superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:18
Current: Execution time (DD:HH:MM:SS): 00:00:02:54
Reference: Memory used: 2337.26 MB
Current: Memory used: 2330.70 MB

RMS_constantVIdealGasReactor_superminimal Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_superminimal Passed Edge Comparison ✅

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

Details Observables Test Case: RMS_constantVIdealGasReactor_superminimal Comparison

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

RMS_constantVIdealGasReactor_superminimal Passed Observable Testing ✅

Regression test RMS_CSTR_liquid_oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:30:23
Current: Execution time (DD:HH:MM:SS): 00:00:33:21
Reference: Memory used: 2633.13 MB
Current: Memory used: 3322.68 MB

RMS_CSTR_liquid_oxidation Passed Core Comparison ✅

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

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 107 species.
Test model has 108 species. ❌
Original model has 545 reactions.
Test model has 546 reactions. ❌
The tested model has 1 species that the original model does not have. ❌
spc: CCCCCOOOO
The tested model has 1 reactions that the original model does not have. ❌
rxn: oxygen(1) + CCCCCO[O](61) <=> CCCCCOOO[O](77) origin: R_Recombination

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:34
Reference: Memory used: 737.47 MB
Current: Memory used: 736.76 MB

fragment Passed Core Comparison ✅

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

fragment Passed Edge Comparison ✅

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

Details Observables Test Case: fragment Comparison

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

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

Regression test RMS_constantVIdealGasReactor_fragment:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:47
Current: Execution time (DD:HH:MM:SS): 00:00:03:21
Reference: Memory used: 2473.45 MB
Current: Memory used: 2525.34 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:32
Reference: Memory used: 899.19 MB
Current: Memory used: 896.86 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 🤖

rwest added 5 commits April 10, 2026 00:07
This was originally called 'I' and during the PEP8
conversion around the py2 to py3 time, they were 
all renamed inertia, even though some of them 
represent the identity matrix not the moments of inertia
I think the previous might have left the final column
in an undetermined state.

And this might be quicker (fewer loops) and cleaner Python.
We were doing a manually coded Gram-Schmidt orthonormalization.
This is now replaced with a QR decomposition built in to Numpy,
which should be more robust (and probably faster).
Added in some checks that print warnings.
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.

2 participants