Add SIDT adsorption correction predictors#2939
Conversation
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:56 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_3) + polycyclic(s2_5_5_diene_1_5) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentene) + radical(cyclopentene-allyl) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopentane) - ring(Cyclopropane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_diene_0_3) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclohexane) - ring(Cyclopentane) + ring(1,4-Cyclohexadiene) + ring(Cyclopentene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(1,4-Cyclohexadiene) + radical(cyclopentene-4) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_4_ene_1) + polycyclic(s1_4_5_diene_1_6) + polycyclic(s3_4_5_ene_1) - ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclopentene) + radical(bicyclo[2.1.1]hex-2-ene-C5) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-CsCsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_4_4_ene_1) + polycyclic(s3_4_6_ene_1) + Estimated bicyclic component: polycyclic(s2_4_6_ane) - ring(Cyclohexane) - ring(Cyclobutane) + ring(Cyclohexene) + ring(Cyclobutene) - ring(Cyclobutane) - ring(Cyclobutene) - ring(Cyclohexene) + radical(cyclobutane) Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: DetailsObservables Test Case: Aromatics Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions! aromatics Passed Observable Testing ✅Errors occurred during observable testing
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/aromatics/regression_input.py"...
INFO:root:options(
title = 'Aromatics',
tolerance = 0.5,
)
|
| 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): | 8.02 | 7.64 | 7.35 | 7.11 | 6.75 | 6.48 | 5.99 | 5.64 |
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.265,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-5R-R_7R!H->C_N-7C-inRing in family Peroxyl_Disproportionation.""")
kinetics: 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 ✅
Errors occurred during observable testing ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/liquid_oxidation/regression_input.py"...
INFO:root:options(
title='liquid_oxidation',
tolerance=0.1
)
observable(
label='pentane',
structure=SMILES('CCCCC')
)
species(
label='oxygen',
structure=SMILES('[O][O]'),
)
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([1e3], 's'),
initialMoleFractionsList=[{
'pentane': 0.9,
'oxygen': 0.1,
}],
temperatures=([600], 'K'),
pressures=([1.0], 'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
Regression test nitrogen:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:03
Current: Execution time (DD:HH:MM:SS): 00:00:01:03
Reference: Memory used: 897.91 MB
Current: Memory used: 903.38 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 ✅
Errors occurred during observable testing ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/nitrogen/regression_input.py"...
INFO:root:
options(
title='NC',
tolerance=0.2
)
observable(
label='NC',
structure=SMILES("NC"),
)
observable(
label='OH',
structure=SMILES("[OH]"),
)
species(
label='O2',
structure=SMILES("[O][O]"),
)
species(
label='Ar',
structure=adjacencyList('1 Ar u0 p4 c0'),
)
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([0.002],'s'),
initialMoleFractionsList=[{
"NC": 0.0005,
"O2": 0.002,
"Ar": 0.9975,
}],
temperatures=([1500],'K'),
pressures=([1.],'atm'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
Regression test oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:01:45
Current: Execution time (DD:HH:MM:SS): 00:00:01:44
Reference: Memory used: 772.37 MB
Current: Memory used: 780.44 MB
oxidation Passed Core Comparison ✅
Original model has 59 species.
Test model has 59 species. ✅
Original model has 694 reactions.
Test model has 694 reactions. ✅
oxidation Passed Edge Comparison ✅
Original model has 230 species.
Test model has 230 species. ✅
Original model has 1524 reactions.
Test model has 1524 reactions. ✅
Details
Observables Test Case: Oxidation Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions!
oxidation Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/oxidation/regression_input.py"...
INFO:root:options(
title = 'Oxidation',
tolerance = 0.5,
)
observables
observable(
label = 'OH',
structure=SMILES('[OH]'),
)
species definition used in the reactor setup specification
species(
label = 'OH',
structure=SMILES('[OH]'),
)
species(
label = 'N2',
structure=SMILES("N#N"),
)
species(
label = 'O2',
structure=SMILES('[O][O]'),
)
species(
label = 'propane',
structure=SMILES('CCC'),
)
reactor setups
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([100.0],'s'),
initialMoleFractionsList=[{
"propane": 2.0/7.0,
"O2": 1.0,
"N2":4.0,
}],
temperatures=([725.0],'K'),
pressures=([10.0],'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
WARNING:root:Initial mole fractions do not sum to one; normalizing.
INFO:root:
INFO:root:Original composition:
INFO:root:propane = 0.2857142857142857
INFO:root:O2 = 1.0
INFO:root:N2 = 4.0
INFO:root:
INFO:root:Normalized mole fractions:
INFO:root:propane = 0.05405405405405405
INFO:root:O2 = 0.1891891891891892
INFO:root:N2 = 0.7567567567567568
INFO:root:
Regression test sulfur:
Reference: Execution time (DD:HH:MM:SS): 00:00:00:41
Current: Execution time (DD:HH:MM:SS): 00:00:00:40
Reference: Memory used: 892.87 MB
Current: Memory used: 898.46 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 ✅
Errors occurred during observable testing ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/sulfur/regression_input.py"...
INFO:root:
options(
title='SO2',
tolerance=0.1
)
observable(
label='SO2',
structure=SMILES("O=S=O"),
)
species(
label='H2S',
structure=SMILES("S"),
)
species(
label='O2',
structure=SMILES("[O][O]"),
)
species(
label='N2',
structure=SMILES("N#N"),
)
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([0.01],'s'),
initialMoleFractionsList=[{
"H2S": 0.000756,
"O2": 0.001290,
"N2": 0.997954}],
temperatures=([900],'K'),
pressures=([30.],'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
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: 962.19 MB
Current: Memory used: 962.37 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:54
Current: Execution time (DD:HH:MM:SS): 00:00:02:16
Reference: Memory used: 2435.89 MB
Current: Memory used: 2289.00 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 ✅
Errors occurred during observable testing ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/RMS_constantVIdealGasReactor_superminimal/regression_input.py"...
INFO:root:
options(
title='RMS_constantVIdealGasReactor_superminimal',
tolerance=0.1
)
observable(
label='H2',
structure=SMILES("[H][H]"),
)
observable(
label='O2',
structure=SMILES("[O][O]"),
)
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([0.01],'s'),
initialMoleFractionsList=[{
'H2':.67,
'O2':.33,
}],
temperatures=([1000],'K'),
pressures=([1.0],'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
Regression test RMS_CSTR_liquid_oxidation:
Reference: Execution time (DD:HH:MM:SS): 00:00:30:22
Current: Execution time (DD:HH:MM:SS): 00:00:17:00
Reference: Memory used: 3702.49 MB
Current: Memory used: 2793.23 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 182 reactions. ❌
The original model has 3 species that the tested model does not have. ❌
spc: CH3
spc: CCCC(C)O(47)
spc: CCCC=O(94)
The tested model has 3 species that the original model does not have. ❌
spc: [CH2]CCCCOO(66)
spc: CC1CC(C)O1(96)
spc: C=CCC(C)OO(98)
The original model has 10 reactions that the tested model does not have. ❌
rxn: [CH3](10) + CCCC=O(94) <=> 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(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: 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) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(47) origin: H_Abstraction
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 52 reactions that the original model does not have. ❌
rxn: oxygen(1) + O(42) <=> [OH](26) + [O]O(13) origin: H_Abstraction
rxn: [OH](26) + OO(23) <=> [O]O(13) + O(42) origin: H_Abstraction
rxn: CCCCCO[O](61) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + [CH2]CCCC(12) <=> O(42) + C=CCCC(18) origin: Disproportionation
rxn: [OH](26) + C[CH]CCC(11) <=> O(42) + C=CCCC(18) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](20) <=> CC=CCC(16) + CCC(CC)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: CC[CH]CC(7) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC(CC)O[O](20) <=> CC=CCC(16) + CCC(CC)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](20) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCC(CC)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(32) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(24) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](26) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: C[CH]CC(C)OO(37) <=> [OH](26) + CC1CC(C)O1(96) origin: Cyclic_Ether_Formation
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
rxn: oxygen(1) + C[CH]CC(C)OO(37) <=> [O]O(13) + C=CCC(C)OO(98) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](20) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCC(CC)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCC(C)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCCCOO(78) origin: Disproportionation
RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌
Original model has 101 species.
Test model has 107 species. ❌
Original model has 382 reactions.
Test model has 545 reactions. ❌
The original model has 2 species that the tested model does not have. ❌
spc: CCC(CC)OOOO
spc: CCCCCOOOO
The tested model has 8 species that the original model does not have. ❌
spc: CCCCCOOOO(101)
spc: CCCC(C)OOO(102)
spc: CCCCCO(103)
spc: CCC[CH]CO(104)
spc: CCCCCOOO
spc: OOO(106)
spc: CCC(CC)OOO(107)
spc: CCCCCOOO(108)
The original model has 2 reactions that the tested model does not have. ❌
rxn: oxygen(1) + CCC(CC)O[O](20) <=> CCC(CC)OOO[O](39) origin: R_Recombination
rxn: oxygen(1) + CCCCCO[O](61) <=> CCCCCOOO[O](77) origin: R_Recombination
The tested model has 165 reactions that the original model does not have. ❌
rxn: oxygen(1) + O(42) <=> [OH](26) + [O]O(13) origin: H_Abstraction
rxn: [OH](26) + OO(23) <=> [O]O(13) + O(42) origin: H_Abstraction
rxn: CCCCCO[O](61) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](26) + [CH2]CCCC(12) <=> O(42) + C=CCCC(18) origin: Disproportionation
rxn: [OH](26) + C[CH]CCC(11) <=> O(42) + C=CCCC(18) origin: Disproportionation
rxn: CC[CH]CC(7) + CCC(CC)O[O](20) <=> CC=CCC(16) + CCC(CC)OO(24) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: CC[CH]CC(7) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + CCC(CC)O[O](20) <=> CC=CCC(16) + CCC(CC)OO(24) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)O[O](21) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: C[CH]CCC(11) + [CH2]CCCC(12) <=> CC=CCC(16) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCCCO[O](61) <=> CC=CCC(16) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CCC(16) + CCCC(C)OO(25) origin: Disproportionation
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](20) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCC(CC)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCCCOO(78) origin: Disproportionation
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CC(CC)OO(32) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(24) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> C[CH]CCCOO(65) + pentane(2) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(65) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + [OH](26) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)[O](44) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC[O](79) + CCCCC[O](79) origin: Peroxyl_Disproportionation
rxn: CCC(CC)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCC([O])CC(41) + CCCCC[O](79) origin: Peroxyl_Disproportionation
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: [CH2]CCCCOO(66) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + pentane(2) <=> [CH2]CCCC(12) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(66) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + pentane(2) origin: Disproportionation
rxn: CCC(CC)O[O](20) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCC(CC)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](21) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCC(C)OO(25) origin: Disproportionation
rxn: CCCCCO[O](61) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCCCOO(78) origin: Disproportionation
rxn: [H](8) + [OH](26) <=> O(42) origin: R_Recombination
rxn: C=CCCC(18) + CC[CH]CC(7) <=> C=CC[CH]C(69) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(18) + CC[CH]CC(7) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(18) + CC[CH]CC(7) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(18) + CC[CH]CC(7) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(18) + CC[CH]CC(7) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + pentane(2) <=> CC[CH]CC(7) + CCCCCOO(78) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCCCOO(78) <=> CCCC[CH]OO(84) + pentane(2) origin: H_Abstraction
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: CC[CH]CC(7) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: C=CC[CH]C(69) + pentane(2) <=> C=CCCC(18) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=CCCC(18) + C[CH]CCC(11) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(18) + C[CH]CCC(11) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(18) + C[CH]CCC(11) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(18) + C[CH]CCC(11) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + pentane(2) <=> C[CH]CCC(11) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> CC=CCC(16) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CCC(11) + CCCC(C)[O](44) <=> C=CCCC(18) + CCCC(C)O(47) origin: Disproportionation
rxn: [O]O(13) + CCCCCO[O](61) <=> oxygen(1) + O(42) + CCCCC=O(62) origin: Peroxyl_Termination
rxn: [O]O(13) + CCCCCO[O](61) <=> CCCCCOOOO(101) origin: R_Recombination
rxn: [O]O(13) + CCCC(C)[O](44) <=> OO(23) + CCCC(C)=O(34) origin: Disproportionation
rxn: [O]O(13) + CCCC(C)[O](44) <=> oxygen(1) + CCCC(C)O(47) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)[O](44) <=> CCCC(C)OOO(102) origin: R_Recombination
rxn: CCC(CC)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCC(=O)CC(30) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCC(CC)O[O](20) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCC(O)CC(46) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCC(CC)OO(24) <=> C=CCCC(18) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: C=CCCC(18) + CCC(CC)O[O](20) <=> [CH2]C=CCC(71) + CCC(CC)OO(24) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCC(CC)OO(24) <=> C=CCCC(18) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCC(CC)OO(24) <=> C=CCCC(18) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCC(CC)OO(24) <=> C=CCCC(18) + CCC(CC)O[O](20) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCC(CC)OO(24) <=> CCC(CC)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)O[O](20) <=> CCCC(C)=O(34) + CCC(CC)OO(24) origin: Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCC(C)=O(34) + CCCCCO(103) origin: Peroxyl_Termination
rxn: CCCC(C)O[O](21) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCCC(C)O(47) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCCC(C)OO(25) <=> C=CCCC(18) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: C=CCCC(18) + CCCC(C)O[O](21) <=> [CH2]C=CCC(71) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCC(C)OO(25) <=> C=CCCC(18) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)OO(25) <=> C=CCCC(18) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)OO(25) <=> C=CCCC(18) + CCCC(C)O[O](21) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)O[O](21) <=> CCCC(C)=O(34) + CCCC(C)OO(25) origin: Disproportionation
rxn: CC[C](CC)OO(52) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCC(CC)OO(24) <=> CC[C](CC)OO(52) + CCCC(C)OO(25) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCC(CC)OO(24) origin: H_Abstraction
rxn: C=CCCC(18) + [CH2]CCCC(12) <=> C=CC[CH]C(69) + pentane(2) origin: H_Abstraction
rxn: C=CCCC(18) + [CH2]CCCC(12) <=> [CH2]C=CCC(71) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + pentane(2) <=> C=CCCC(18) + [CH2]CCCC(12) origin: H_Abstraction
rxn: C=[C]CCC(73) + pentane(2) <=> C=CCCC(18) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH]=CCCC(74) + pentane(2) <=> C=CCCC(18) + [CH2]CCCC(12) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CC[CH]CCOO(64) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCC[CH]COO(63) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCCCOO(78) <=> CCCC[CH]OO(84) + pentane(2) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + pentane(2) origin: Disproportionation
rxn: [CH2]CCCC(12) + CCCC(C)[O](44) <=> C=CCCC(18) + CCCC(C)O(47) origin: Disproportionation
rxn: C[CH]CC(C)OO(37) + CCCC(C)OO(25) <=> CCC[C](C)OO(58) + CCCC(C)OO(25) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(36) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(38) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(18) <=> O(42) + C=CC[CH]C(69) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(18) <=> O(42) + [CH2]C=CCC(71) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(18) <=> O(42) + [CH2]CCC=C(72) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(18) <=> O(42) + C=[C]CCC(73) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(18) <=> O(42) + [CH]=CCCC(74) origin: H_Abstraction
rxn: [OH](26) + C=CCCC(18) <=> [CH2]C(O)CCC(91) origin: R_Addition_MultipleBond
rxn: [OH](26) + C=CCCC(18) <=> CCC[CH]CO(104) origin: R_Addition_MultipleBond
rxn: [OH](26) + CCCC(C)[O](44) <=> O(42) + CCCC(C)=O(34) origin: Disproportionation
rxn: CCCCCO[O](61) + CCCCCO[O](61) <=> oxygen(1) + CCCCC=O(62) + CCCCCO(103) origin: Peroxyl_Termination
rxn: C=CC[CH]C(69) + CCCCCOO(78) <=> C=CCCC(18) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=CCCC(18) + CCCCCO[O](61) <=> [CH2]C=CCC(71) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCCCOO(78) <=> C=CCCC(18) + CCCCCO[O](61) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCCCOO(78) <=> C=CCCC(18) + CCCCCO[O](61) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCCCOO(78) <=> C=CCCC(18) + CCCCCO[O](61) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCO[O](61) <=> CCCC(C)=O(34) + CCCCCOO(78) origin: Disproportionation
rxn: O(42) + C=CCCC(18) <=> CCCCCO(103) origin: 1,3_Insertion_ROR
rxn: O(42) + C=CCCC(18) <=> CCCC(C)O(47) origin: 1,3_Insertion_ROR
rxn: C=CCCC(18) + CCCC(C)[O](44) <=> C=CC[CH]C(69) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(18) + CCCC(C)[O](44) <=> [CH2]C=CCC(71) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=CCCC(18) + CCCC(C)[O](44) <=> [CH2]CCC=C(72) + CCCC(C)O(47) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)O(47) <=> C=CCCC(18) + CCCC(C)[O](44) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)O(47) <=> C=CCCC(18) + CCCC(C)[O](44) origin: H_Abstraction
rxn: C=CC[CH]C(69) + CCCC(C)OO(25) <=> C=CCCC(18) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=CCCC(18) + C[CH]CC(C)OO(37) <=> [CH2]C=CCC(71) + CCCC(C)OO(25) origin: H_Abstraction
rxn: [CH2]CCC=C(72) + CCCC(C)OO(25) <=> C=CCCC(18) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: C=[C]CCC(73) + CCCC(C)OO(25) <=> C=CCCC(18) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [CH]=CCCC(74) + CCCC(C)OO(25) <=> C=CCCC(18) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [OH](26) + CCCC(C)O(47) <=> O(42) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CC[CH]CCOO(64) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(63) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(25) <=> C[CH]CC(C)OO(37) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCC(C)O(47) <=> OO(23) + CCCC(C)[O](44) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)[O](44) <=> CCCC(C)=O(34) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CC=CC(C)OO(97) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> C=CCC(C)OO(98) + CCCC(C)O(47) origin: Disproportionation
rxn: CCCC(C)[O](44) + C[CH]CC(C)OO(37) <=> CCCC(C)=O(34) + CCCC(C)OO(25) origin: Disproportionation
rxn: CCCC(C)O[O](21) + CCC(CC)OO[O](48) <=> oxygen(1) + CCCC(C)[O](44) + CCC(CC)O[O](20) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCC(C)OO[O](49) <=> oxygen(1) + CCCC(C)[O](44) + CCCC(C)O[O](21) origin: Peroxyl_Disproportionation
rxn: CCCC(C)O[O](21) + CCCCCOO[O](105) <=> oxygen(1) + CCCC(C)[O](44) + CCCCCO[O](61) origin: Peroxyl_Disproportionation
rxn: OO(23) + OOO(106) <=> [O]O(13) + [O]O(13) + O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCC(CC)OO(24) <=> [O]O(13) + O(42) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCC(CC)OOO(107) <=> [O]O(13) + O(42) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCCC(C)OO(25) <=> [O]O(13) + O(42) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCC(C)OOO(102) <=> [O]O(13) + O(42) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OOO(106) + CCCCCOO(78) <=> [O]O(13) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: OO(23) + CCCCCOOO(108) <=> [O]O(13) + O(42) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](20) + CCC(CC)O[O](20) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(25) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](20) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCCC(C)OOO(102) <=> O(42) + CCC(CC)O[O](20) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCC(CC)OOO(107) <=> O(42) + CCC(CC)O[O](20) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCC(CC)OO(24) + CCCCCOOO(108) <=> O(42) + CCC(CC)O[O](20) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(25) + CCCC(C)OOO(102) <=> O(42) + CCCC(C)O[O](21) + CCCC(C)O[O](21) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCC(C)OOO(102) <=> O(42) + CCCC(C)O[O](21) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)OO(25) + CCCCCOOO(108) <=> O(42) + CCCC(C)O[O](21) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCCCOO(78) + CCCCCOOO(108) <=> O(42) + CCCCCO[O](61) + CCCCCO[O](61) origin: Bimolec_Hydroperoxide_Decomposition
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 ✅
Errors occurred during observable testing ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/RMS_CSTR_liquid_oxidation/regression_input.py"...
INFO:root:options(
title='RMS_CSTR_liquid_oxidation',
tolerance=0.1
)
observable(
label='pentane',
structure=SMILES('CCCCC')
)
species(
label='oxygen',
structure=SMILES('[O][O]'),
)
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([1e3], 's'),
initialMoleFractionsList=[{
'pentane': 0.9,
'oxygen': 0.1,
}],
temperatures=([600], 'K'),
pressures=([1.0], 'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
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.37 MB
Current: Memory used: 743.90 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 ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/fragment/regression_input.py"...
INFO:root:
options(
title='fragment',
tolerance=0.1
)
observable(
label="LCCCC",
structure=fragment_adj(
"""1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S}
2 C u0 p0 c0 {1,S} {4,S} {7,S} {8,S}
3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S}
4 C u0 p0 c0 {2,S} {12,S} {13,S} {14,S}
5 H u0 p0 c0 {1,S}
6 H u0 p0 c0 {1,S}
7 H u0 p0 c0 {2,S}
8 H u0 p0 c0 {2,S}
9 L u0 p0 c0 {3,S}
10 H u0 p0 c0 {3,S}
11 H u0 p0 c0 {3,S}
12 H u0 p0 c0 {4,S}
13 H u0 p0 c0 {4,S}
14 H u0 p0 c0 {4,S}
"""
),
)
species(
label="LCCCC",
structure=fragment_adj(
"""1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S}
2 C u0 p0 c0 {1,S} {4,S} {7,S} {8,S}
3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S}
4 C u0 p0 c0 {2,S} {12,S} {13,S} {14,S}
5 H u0 p0 c0 {1,S}
6 H u0 p0 c0 {1,S}
7 H u0 p0 c0 {2,S}
8 H u0 p0 c0 {2,S}
9 L u0 p0 c0 {3,S}
10 H u0 p0 c0 {3,S}
11 H u0 p0 c0 {3,S}
12 H u0 p0 c0 {4,S}
13 H u0 p0 c0 {4,S}
14 H u0 p0 c0 {4,S}
"""
),
)
species(
label="RCCCC",
structure=fragment_adj(
"""1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S}
2 C u0 p0 c0 {1,S} {4,S} {7,S} {8,S}
3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S}
4 C u0 p0 c0 {2,S} {12,S} {13,S} {14,S}
5 H u0 p0 c0 {1,S}
6 H u0 p0 c0 {1,S}
7 H u0 p0 c0 {2,S}
8 H u0 p0 c0 {2,S}
9 R u0 p0 c0 {3,S}
10 H u0 p0 c0 {3,S}
11 H u0 p0 c0 {3,S}
12 H u0 p0 c0 {4,S}
13 H u0 p0 c0 {4,S}
14 H u0 p0 c0 {4,S}
"""
),
)
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([0.01],'s'),
initialMoleFractionsList=[{
"LCCCC": 1,
"RCCCC": 1,
}],
temperatures=([1600],'K'),
pressures=([40.0],'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
WARNING:root:Initial mole fractions do not sum to one; normalizing.
INFO:root:
INFO:root:Original composition:
INFO:root:LCCCC = 1
INFO:root:RCCCC = 1
INFO:root:
INFO:root:Normalized mole fractions:
INFO:root:LCCCC = 0.5
INFO:root:RCCCC = 0.5
INFO:root:
Regression test RMS_constantVIdealGasReactor_fragment:
Reference: Execution time (DD:HH:MM:SS): 00:00:03:21
Current: Execution time (DD:HH:MM:SS): 00:00:02:43
Reference: Memory used: 2539.29 MB
Current: Memory used: 2443.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 ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/RMS_constantVIdealGasReactor_fragment/regression_input.py"...
INFO:root:
options(
title='RMS_constantVIdealGasReactor_fragment',
tolerance=0.1
)
observable(
label="LCCCC",
structure=fragment_adj(
"""1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S}
2 C u0 p0 c0 {1,S} {4,S} {7,S} {8,S}
3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S}
4 C u0 p0 c0 {2,S} {12,S} {13,S} {14,S}
5 H u0 p0 c0 {1,S}
6 H u0 p0 c0 {1,S}
7 H u0 p0 c0 {2,S}
8 H u0 p0 c0 {2,S}
9 L u0 p0 c0 {3,S}
10 H u0 p0 c0 {3,S}
11 H u0 p0 c0 {3,S}
12 H u0 p0 c0 {4,S}
13 H u0 p0 c0 {4,S}
14 H u0 p0 c0 {4,S}
"""
),
)
species(
label="LCCCC",
structure=fragment_adj(
"""1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S}
2 C u0 p0 c0 {1,S} {4,S} {7,S} {8,S}
3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S}
4 C u0 p0 c0 {2,S} {12,S} {13,S} {14,S}
5 H u0 p0 c0 {1,S}
6 H u0 p0 c0 {1,S}
7 H u0 p0 c0 {2,S}
8 H u0 p0 c0 {2,S}
9 L u0 p0 c0 {3,S}
10 H u0 p0 c0 {3,S}
11 H u0 p0 c0 {3,S}
12 H u0 p0 c0 {4,S}
13 H u0 p0 c0 {4,S}
14 H u0 p0 c0 {4,S}
"""
),
)
species(
label="RCCCC",
structure=fragment_adj(
"""1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S}
2 C u0 p0 c0 {1,S} {4,S} {7,S} {8,S}
3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S}
4 C u0 p0 c0 {2,S} {12,S} {13,S} {14,S}
5 H u0 p0 c0 {1,S}
6 H u0 p0 c0 {1,S}
7 H u0 p0 c0 {2,S}
8 H u0 p0 c0 {2,S}
9 R u0 p0 c0 {3,S}
10 H u0 p0 c0 {3,S}
11 H u0 p0 c0 {3,S}
12 H u0 p0 c0 {4,S}
13 H u0 p0 c0 {4,S}
14 H u0 p0 c0 {4,S}
"""
),
)
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([0.01],'s'),
initialMoleFractionsList=[{
"LCCCC": 1,
"RCCCC": 1,
}],
temperatures=([1600],'K'),
pressures=([40.0],'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
WARNING:root:Initial mole fractions do not sum to one; normalizing.
INFO:root:
INFO:root:Original composition:
INFO:root:LCCCC = 1
INFO:root:RCCCC = 1
INFO:root:
INFO:root:Normalized mole fractions:
INFO:root:LCCCC = 0.5
INFO:root:RCCCC = 0.5
INFO:root:
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.88 MB
Current: Memory used: 906.56 MB
minimal_surface Passed Core Comparison ✅
Original model has 11 species.
Test model has 11 species. ✅
Original model has 3 reactions.
Test model has 3 reactions. ✅
minimal_surface Passed Edge Comparison ✅
Original model has 38 species.
Test model has 38 species. ✅
Original model has 38 reactions.
Test model has 38 reactions. ✅
Details
Observables Test Case: minimal_surface Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions!
minimal_surface Passed Observable Testing ✅
Errors occurred during observable testing ⚠️
INFO:root:Reading input file "/home/runner/work/RMG-Py/RMG-Py/test/regression/minimal_surface/regression_input.py"...
INFO:root:options(
title = 'minimal_surface',
tolerance = 0.5,
)
observables
observable(
label = 'CH4',
structure=SMILES('C'),
)
observable(
label = 'O2',
structure=SMILES('[O][O]'),
)
observable(
label = 'X',
structure=adjacencyList(
"""
1 X u0 p0 c0
"""),
)
List of species
species(
label='CH4',
structure=SMILES("[CH4]"),
)
species(
label='O2',
structure=adjacencyList(
"""
1 O u1 p2 c0 {2,S}
2 O u1 p2 c0 {1,S}
"""),
)
species(
label='N2',
structure=SMILES("N#N"),
)
species(
label='X',
structure=adjacencyList(
"""
1 X u0 p0 c0
"""),
)
reactor setups
reactorSetups(
reactorTypes=['IdealGasReactor'],
terminationTimes=([1.0], 's'),
initialMoleFractionsList=[{
'CH4': 0.15,
'O2': 0.15,
'N2': 0.7,
}],
initialSurfaceMoleFractionsList=[{
'X': 1.0,
}],
temperatures=([1000.0], 'K'),
pressures=([1.0], 'bar'),
)
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has default temperature range 300.0 to 1000.0 and 1000.0 to 5000.0
INFO:root:Thermo file has no default temperature ranges
INFO:root:(The line it would be on is ' 300.000 1000.000 5000.000\n' but that is not formatted as such)
INFO:root:(It should have Tmin in columns 1-10, Tmid in columns 11-20, and Tmax in columns 21-30)
INFO:root:Ignoring short but non-empty line: ' 300.000 1000.000 5000.000\n'
INFO:root:Thermo file has no default temperature ranges
INFO:root:(The line it would be on is ' 300.000 1000.000 5000.000\n' but that is not formatted as such)
INFO:root:(It should have Tmin in columns 1-10, Tmid in columns 11-20, and Tmax in columns 21-30)
INFO:root:Ignoring short but non-empty line: ' 300.000 1000.000 5000.000\n'
beep boop this comment was written by a bot 🤖
JacksonBurns
left a comment
There was a problem hiding this comment.
Unit tests would be a good addition - something to check if we can load and interact with the SIDTs. Form of the implementation looks good, though.
2425f8b to
21d3ef7
Compare
|
I've added some database tests to test that the SIDTs are loaded and that they work properly. They look a little bit out of place, I chose the test structure I did because each SIDT can have different tagging/decomposition and test molecules, but I'm open to better ideas if anyone has any. |
JacksonBurns
left a comment
There was a problem hiding this comment.
These tests are a great starting point, and enough for the scope of this initial PR adding the feature. I will update the branch and set to merge
443817f to
c12c252
Compare
rwest
left a comment
There was a problem hiding this comment.
Not actually tried it, but read through the diff and it looks ok. Will you update user instructions at some point?
|
I have run RMG for a stoichiometric exhaust mix containing: carbon monoxide, ethane, ethylene, methane, water, carbon dioxide, hydrogen, and nitric oxide. From an RMG-Py prospective this is working and I approve this! You have to add a line to the input file to get it to work, so I think making this clear in documentation would be good. Here is the mechanism I ran with output: |
kirkbadger18
left a comment
There was a problem hiding this comment.
Looks good, I approve! Look to my previous comment for more detail.
c12c252 to
6eea32c
Compare
this avoids issues with the testing database
6eea32c to
fdadd34
Compare
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:54 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + polycyclic(s2_4_5_diene_1_5) + polycyclic(s3_4_5_ene_3) + polycyclic(s2_5_5_diene_1_5) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentene) + radical(cyclopentene-allyl) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsCsHH) + group(Cds-CdsCsCs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + Estimated bicyclic component: polycyclic(s2_3_5_ane) - ring(Cyclopentane) - ring(Cyclopropane) + ring(Cyclopentene) + ring(Cyclopropane) + polycyclic(s2_3_6_ene_1) + polycyclic(s3_5_6_diene_1_5) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-4) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsCsH) + group(Cs-(Cds-Cds)CsHH) + group(Cds- Cds(Cds-Cds)Cs) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + polycyclic(s2_3_5_ene_1) + polycyclic(s2_3_6_ene_1) + Estimated bicyclic component: polycyclic(s3_5_6_ane) - ring(Cyclohexane) - ring(Cyclopentane) + ring(Cyclohexene) + ring(Cyclopentene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(Cyclohexene) + radical(cyclopentene-allyl) Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)(Cds-Cds)) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsCsH) + group(Cdd-CdsCds) + Estimated bicyclic component: polycyclic(s4_6_6_ane) - ring(Cyclohexane) - ring(Cyclohexane) + ring(124cyclohexatriene) + ring(124cyclohexatriene) Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Non-identical kinetics! ❌
kinetics: Errors occurred during edge comparison
ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py aromatics-edge stable_regression_results/aromatics/chemkin/chem_edge_annotated.inp stable_regression_results/aromatics/chemkin/species_edge_dictionary.txt test/regression/aromatics/chemkin/chem_edge_annotated.inp test/regression/aromatics/chemkin/species_edge_dictionary.txt` failed. (See above for error)
|
This enables use of SIDTs stored in the RMG-database to predict adsorption corrections. The SIDTs are added in ReactionMechanismGenerator/RMG-database#723 trained on Pt111 adsorption corrections data that @kirkbadger18 sent me.
Without a framework for computing independent errors on the current RMG adsorption groups it is difficult to definitively measure how much of an improvement this should be. However, the leave-one-out errors on the SIDTs are similar to the training errors on the RMG adsorption groups, so this should almost certainly be a significant improvement.