Skip to content

Implement writing RMG input files for RMS reactors#2886

Draft
sevyharris wants to merge 3 commits intoReactionMechanismGenerator:mainfrom
sevyharris:write_rmg_input_files_rms
Draft

Implement writing RMG input files for RMS reactors#2886
sevyharris wants to merge 3 commits intoReactionMechanismGenerator:mainfrom
sevyharris:write_rmg_input_files_rms

Conversation

@sevyharris
Copy link
Contributor

@sevyharris sevyharris commented Feb 11, 2026

Motivation or Problem

Some reactor types can't write RMG input files, so this fixes rmgpy/rmg/input.py to be able to handle them:
#2883

Description of Changes

This PR mostly involves fetching properties from the reactor system and writing them into the input.py file

Specifically, this fixes:

  • liquidSurfaceReactor (AKA ConstantTLiquidSurfaceReactor)

Still TODO:

  • ConstantTPIdealGasReactor
  • ConstantTVLiquidReactor
  • ConstantVIdealGasReactor
  • MBSampledReactor

Other changes

  • Modifies liquid reactor to accept input concentrations as quantities instead of float values in SI units. Keeping the units attached makes it easier to write input files and also helps prevent user error.
  • Fixes a bug where someone forgot to use deepcopy and Temperature was getting added to the dictionary of initialConcentrations, instead of just to sens_conditions

Testing

This is my example code for reading/writing input files:

import os
import rmgpy.rmg.input
import rmgpy.rmg.main


# reset with  cp ~/rmg/RMG-Py/examples/rmg/superminimal/input.py .
my_input_file = '/home/moon/rmg/RMG-Py/examples/rmg/liquid_cat/input.py'

rmg0 = rmgpy.rmg.main.RMG()
rmgpy.rmg.input.read_input_file(my_input_file, rmg0)

print('read RMG input file')

new_input_file = 'new_input.py'
rmgpy.rmg.input.save_input_file(new_input_file, rmg0)
print('wrote RMG input file')

Eventually, I'll try doing roundtrip diffs for every example.
Hopefully I will also implement some roundtrip diffs in the tests.
I'll also need to test by running the input.py files this outputs.

We want to preserve the units specified in the input file as much as
possible to avoid the ambiguity of saving just floats in memory
@sevyharris sevyharris added the Status: WIP This is currently work-in-progress label Feb 11, 2026
@rwest rwest marked this pull request as draft February 11, 2026 18:40
@sevyharris sevyharris force-pushed the write_rmg_input_files_rms branch from 35dfa0d to 5ef7ef2 Compare February 12, 2026 15:56
@sevyharris sevyharris force-pushed the write_rmg_input_files_rms branch from 5ef7ef2 to 3c66ace Compare February 16, 2026 01:26
Now that sensitive conditions uses deepcopy to copy from
initial_concentrations, there is no need to worry
about T showing up in initial_concentrations
@github-actions
Copy link

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:58
Reference: Memory used: 748.28 MB
Current: Memory used: 747.90 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 Passed Edge Comparison ✅

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

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:57
Current: Execution time (DD:HH:MM:SS): 00:00:02:03
Reference: Memory used: 846.66 MB
Current: Memory used: 846.64 MB

liquid_oxidation Passed Core Comparison ✅

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

liquid_oxidation Failed Edge Comparison ❌

Original model has 214 species.
Test model has 214 species. ✅
Original model has 1593 reactions.
Test model has 1590 reactions. ❌
The original model has 7 reactions that the tested model does not have. ❌
rxn: C[CH]CC(C)OO(32) <=> CCC[C](C)OO(78) origin: intra_H_migration
rxn: CCCC[CH]OO(96) <=> C[CH]CCCOO(60) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> [OH](22) + CC(CCC=O)OO(119) origin: intra_H_migration
rxn: CC(C[CH]COO)OO(118) <=> [OH](22) + CC(=O)CCCOO(115) origin: intra_H_migration
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC([O])CC(C)OO(110) + CC([O])CCCOO(122) origin: Peroxyl_Disproportionation
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CC(C)OO(100) + CC(O)CCCOO(152) origin: Peroxyl_Termination
rxn: CC(CC(C)OO)O[O](90) + CC(CCCOO)O[O](108) <=> oxygen(1) + CC(=O)CCCOO(115) + CC(O)CC(C)OO(143) origin: Peroxyl_Termination
The tested model has 4 reactions that the original model does not have. ❌
rxn: C[CH]CC(C)OO(31) <=> [OH](22) + CCCC(C)=O(28) origin: intra_H_migration
rxn: C[CH]CCCOO(48) <=> [OH](22) + CCCCC=O(45) 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

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: 842.40 MB
Current: Memory used: 850.23 MB

nitrogen Passed Core Comparison ✅

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

nitrogen Failed Edge Comparison ❌

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

Non-identical thermo! ❌
original: O1[C]=N1
tested: O1[C]=N1

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
141.64 58.66 12.26 12.27 12.09 11.96 12.26 12.72 12.15
116.46 53.90 11.62 12.71 13.49 13.96 14.14 13.85 13.58

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

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

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

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

Details Observables Test Case: NC Comparison

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

nitrogen Passed Observable Testing ✅

Regression test oxidation:

Reference: Execution time (DD:HH:MM:SS): 00:00:01:50
Current: Execution time (DD:HH:MM:SS): 00:00:01:54
Reference: Memory used: 734.98 MB
Current: Memory used: 735.39 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:41
Reference: Memory used: 843.49 MB
Current: Memory used: 843.06 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:27
Reference: Memory used: 937.22 MB
Current: Memory used: 935.69 MB

superminimal Passed Core Comparison ✅

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

superminimal Passed Edge Comparison ✅

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

Regression test RMS_constantVIdealGasReactor_superminimal:

Reference: Execution time (DD:HH:MM:SS): 00:00:02:18
Current: Execution time (DD:HH:MM:SS): 00:00:03:09
Reference: Memory used: 2250.46 MB
Current: Memory used: 2396.26 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:27:20
Current: Execution time (DD:HH:MM:SS): 00:00:14:21
Reference: Memory used: 2490.36 MB
Current: Memory used: 2730.14 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

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

RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 100 species.
Test model has 77 species. ❌
Original model has 387 reactions.
Test model has 262 reactions. ❌
The original model has 23 species that the tested model does not have. ❌
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: C[CH]CCOO(85)
spc: [CH2]C(C)C(C)OO(86)
spc: CC1CC(C)O1(87)
spc: CC=CC(C)OO(88)
spc: C=CCC(C)OO(89)
spc: CC([O])CC(C)O(90)
spc: CCCCO
spc: CCC(C)O
spc: CC=O(93)
spc: CCCC=O(94)
spc: CCCCO(95)
spc: CC[CH]C(C)O(96)
spc: [CH2]C(O)CCC(97)
spc: C[CH]CC(C)O(98)
spc: [CH2]CCC(C)O(99)
spc: CC(CC(C)OO)OO
The original model has 125 reactions that the tested model does not have. ❌
rxn: CCC(CC)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)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(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [O]O(13) + [CH2]CCCC(12) <=> OO(23) + C=CCCC(18) origin: Disproportionation
rxn: CC=O(93) + [CH2]CC(5) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: OO(23) + CCC(CC)OO(24) <=> [OH](26) + O(42) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + C[CH]CC(C)OO(34) origin: H_Abstraction
rxn: CCCC(C)OO(25) + CCCCCOO(78) <=> O(42) + CCCC(C)[O](41) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(25) <=> [OH](26) + O(42) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OO(25) <=> [O]O(13) + O(42) + CCCC(C)[O](41) 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](41) <=> [CH2]CCC(C)O(99) origin: intra_H_migration
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> CC(CC(C)OO)O[O](100) origin: R_Recombination
rxn: [CH3](10) + CCCC=O(94) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(34) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(46) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + [CH2]CC(CC)OO(38) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> [CH2]CC(CC)OO(38) + CCCC(C)O(46) origin: H_Abstraction
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + CC=CC(C)OO(88) 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(25) <=> CCCC(C)O[O](21) + 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(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CCCOO(65) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> C[CH]CCCOO(65) + CCCC(C)O(46) origin: H_Abstraction
rxn: [OH](26) + CCCCC[O](79) <=> CCCCCOO(78) origin: R_Recombination
rxn: CCC(CC)OO(24) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(25) + CCCCCOO(78) <=> O(42) + CCCCC[O](79) + CCCC(C)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(24) + CCCCCOO(78) <=> O(42) + CCC([O])CC(44) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OO(24) <=> [O]O(13) + O(42) + CCC([O])CC(44) origin: Bimolec_Hydroperoxide_Decomposition
rxn: oxygen(1) + CCCCCO[O](61) <=> CCCCCOOO[O](77) origin: R_Recombination
rxn: CC[C](CC)OO(52) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
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(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: [CH2](3) + C[CH]CCOO(85) <=> C[CH]CC(C)OO(34) origin: 1,2_Insertion_carbene
rxn: [CH2]C(C)C(C)OO(86) <=> C[CH]CC(C)OO(34) origin: 1,2_shiftC
rxn: C[CH]CC(C)OO(34) <=> [OH](26) + CC1CC(C)O1(87) origin: Cyclic_Ether_Formation
rxn: [H](8) + CC=CC(C)OO(88) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: [H](8) + C=CCC(C)OO(89) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: C[CH]OO(56) + C=CC(19) <=> C[CH]CC(C)OO(34) origin: R_Addition_MultipleBond
rxn: CC[CH]C(C)OO(32) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: [CH2]CCC(C)OO(35) <=> C[CH]CC(C)OO(34) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CCC[C](C)OO(58) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> [CH2]C(CCC)OO(33) origin: intra_H_migration
rxn: C[CH]CC(C)OO(34) <=> CC([O])CC(C)O(90) origin: intra_OH_migration
rxn: [H](8) + [O]O(13) <=> OO(23) origin: R_Recombination
rxn: [CH2](3) + CCCC[O](91) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](92) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [CH2](3) + CCC(C)[O](92) <=> CCCC(C)[O](41) origin: 1,2_Insertion_carbene
rxn: [H](8) + CCCC(C)=O(31) <=> CCCC(C)[O](41) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](41) <=> CCC[C](C)O(95) origin: intra_H_migration
rxn: CC[CH]C(C)O(96) <=> CCCC(C)[O](41) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> [CH2]C(O)CCC(97) origin: intra_H_migration
rxn: CCCC(C)[O](41) <=> C[CH]CC(C)O(98) origin: intra_H_migration
rxn: [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) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(89) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](41) <=> [O]O(13) + CCCC(C)=O(31) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](41) <=> CCCC(C)OO[O](48) origin: R_Recombination
rxn: 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(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(25) <=> CCCC(C)O[O](21) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + CC[C](CC)OO(52) origin: H_Abstraction
rxn: [OH](26) + CCC(CC)OO(24) <=> O(42) + C[CH]C(CC)OO(37) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> CC[C](CC)OO(52) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCC(CC)OO(24) <=> C[CH]C(CC)OO(37) + CCCC(C)O(46) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + CCC[C](C)OO(58) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + CC[CH]C(C)OO(32) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + [CH2]C(CCC)OO(33) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)OO(25) <=> O(42) + [CH2]CCC(C)OO(35) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> CCC[C](C)OO(58) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> CC[CH]C(C)OO(32) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> [CH2]C(CCC)OO(33) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCC(C)OO(25) <=> [CH2]CCC(C)OO(35) + CCCC(C)O(46) 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(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCC[CH]COO(63) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC[CH]OO(84) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CCCC(12) + [CH2]CCCCOO(66) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(64) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC[CH]COO(63) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC[CH]OO(84) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCCOO(66) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CC[CH]CCOO(64) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCC[CH]COO(63) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(46) origin: H_Abstraction
rxn: CCCC(C)[O](41) + CCCCCOO(78) <=> [CH2]CCCCOO(66) + CCCC(C)O(46) 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:29
Current: Execution time (DD:HH:MM:SS): 00:00:00:31
Reference: Memory used: 699.88 MB
Current: Memory used: 699.88 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:43
Current: Execution time (DD:HH:MM:SS): 00:00:03:37
Reference: Memory used: 2399.06 MB
Current: Memory used: 2509.40 MB

RMS_constantVIdealGasReactor_fragment Passed Core Comparison ✅

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

RMS_constantVIdealGasReactor_fragment Passed Edge Comparison ✅

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

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:31
Current: Execution time (DD:HH:MM:SS): 00:00:00:32
Reference: Memory used: 850.85 MB
Current: Memory used: 849.83 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

Status: WIP This is currently work-in-progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant