Skip to content

RMG-Py v4.0.0 stable#2981

Merged
JacksonBurns merged 781 commits into
stablefrom
main
Jun 9, 2026
Merged

RMG-Py v4.0.0 stable#2981
JacksonBurns merged 781 commits into
stablefrom
main

Conversation

@JacksonBurns

Copy link
Copy Markdown
Contributor

Following the merger of #2967, this PR merges main into stable. This is for archival reasons (users can retrieve historical versions from stable) and also to trigger our automated builds on GitHub.

rwest and others added 30 commits May 8, 2026 09:33
These are not being maintained. Skip the tests that used them.
These should be created (replaced) by running the mainTest.py tests.
We'll save a copy of them in git too.
Now copies both cantera1 and cantera2 files across.
Not a great workflow, but can clean it up later.
Previously every output writer (Chemkin, RMS YAML, Cantera YAML, HTML)
shared global flags: verboseComments and saveEdgeSpecies from options().
There was no way to control how often each writer ran, and no way to give
one writer different verbose/edge settings than another.

WriterConfig is the data class that will hold this per-writer state:
  - save_interval: positive N = every N iterations; -1 = end-of-run only;
                   0 = disabled
  - verbose_comments: per-writer override (None = fall back to global)
  - save_edge:        per-writer override (None = fall back to global)
  - should_write():   encapsulates the scheduling logic, including a
    _last_write guard that prevents double-writing when the end-of-run
    final save fires at the same iteration_num as the last loop save.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New helpers in rmgpy/rmg/input.py:
  _parse_writer_config(value)  -- converts True/False/dict to WriterConfig
  _writer_config_to_input(cfg) -- serializes WriterConfig back for restart
                                   input files

The options() function gains four new keyword arguments:
  generateChemkin=True         (default on, global verboseComments/saveEdge
                                apply if not overridden per-writer)
  generateRMSYAML=True         (default on)
  generateCanteraYAML1=False   (default off -- writer is new/beta)
  generateCanteraYAML2=False   (default off -- writer is new/beta)

The existing generateOutputHTML already existed as a boolean; it now also
accepts the dict form.

Each argument accepts:
  False                              -> disabled
  True                               -> enabled, save every iteration
  {'saveInterval': N,                -> full per-writer configuration
   'verboseComments': True/False,
   'saveEdge': True/False}

The RMG class gains five new attributes (initialised in clear()):
  chemkin_writer_config, rms_writer_config, cantera1_writer_config,
  cantera2_writer_config, html_writer_config
and:
  is_final_save -- flag set True during the end-of-run save_everything()
                   call so writers can distinguish final from mid-run saves

The save_input() serializer is updated to write the new options back into
the restart input file (Cantera configs omitted when disabled so old-style
files stay clean).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
register_listeners() now reads the five *_writer_config attributes from the
RMG object and only attaches a writer if its config is enabled. Defaults
(applied when the input file did not call options() at all) preserve the
historical always-on behaviour for Chemkin and RMS, and the historical
always-off default for CanteraWriter1, CanteraWriter2, and HTML.

Each writer's __init__ now accepts config=None and each update() method
starts with:
  if not config.should_write(rmg.reaction_model.iteration_num,
                              rmg.is_final_save):
      return
  verbose   = config.verbose_comments if ... else rmg.verbose_comments
  save_edge = config.save_edge        if ... else rmg.save_edge_species

This means the global verboseComments / saveEdgeSpecies flags continue to
work as fallbacks for any writer that does not specify its own override.

A final save_everything() call is added in execute() immediately after
make_seed_mech() and before run_model_analysis(), with is_final_save=True.
This guarantees:
  - Writers configured with saveInterval=-1 write exactly once (here).
  - Writers configured with saveInterval>0 also write here unless they
    already wrote on this iteration (prevented by _last_write guard).

save_chemkin_files() and save_cantera_files() each gain a config= kwarg so
the per-writer verbose/edge values can be threaded in from the writer class
without touching the rmg object.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
examples/rmg/commented/input.py
  Updated options() block to document all four new generateX keys with
  commented-out dict-form examples showing saveInterval, verboseComments,
  and saveEdge. Updated docstrings for verboseComments and saveEdgeSpecies
  to clarify their role as global fallbacks.

documentation/source/users/rmg/input.rst
  Updated the options() code block to include the four new keys.
  Added a new 'Per-writer Output Configuration' subsection under the
  options heading that explains:
    - True/False/dict syntax and the available dict keys
    - saveInterval semantics (-1 = end only, N = every N iterations)
    - That verboseComments/saveEdgeSpecies remain as global fallbacks
    - Per-writer defaults and output folder for each writer

test/rmgpy/rmg/inputTest.py
  New TestWriterConfig class (16 tests) covering:
    _parse_writer_config: False, True, True+custom-default, full dict,
                          partial dict, invalid type
    WriterConfig.should_write: every-iteration, every-N, end-only,
                               disabled, final-always-writes,
                               no-double-write-on-final
    _writer_config_to_input: disabled (False), default-on (True),
                             dict with overrides, None input

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ute.

There's a mock RMG object that was missing the attribute, which
caused an error in the unit tests.
…figs

Chemkin-to-Cantera translation (generate_cantera_files_from_chemkin) is
now skipped when the Chemkin writer is disabled, since the .inp source
files will not exist. Each compare_yaml_files_and_report call is
independently guarded by whether the corresponding Cantera writer config
(cantera1 or cantera2) is enabled.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add some examples of the output configuration features to input files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously, `--walltime` defaulted to `'00:00:00:00'` and was always
passed as a kwarg to `RMG.execute()`, silently overriding any `wallTime`
set in `input.py`. This meant users who set `wallTime` in their input
file and ran without `-t` would have their setting clobbered, giving an
effective wall time of zero (no limit).

Changes:
- Change `--walltime` default to `None`; only add `walltime` and
  `max_iterations` to the kwargs dict when they are explicitly provided
  on the command line. Input-file values are now respected by default.
- Move walltime/max_iterations override logic earlier in `execute()`
  (before database loading), so bad values produce an error immediately
  rather than after a potentially long setup phase.
- Extract walltime parsing into a `_parse_walltime_to_seconds()` static
  method for clarity and testability; improve the error message to
  include the invalid value.
- Log an explicit "Overriding walltime/max_iterations from input file
  (...) with command-line value (...)" message whenever the CLI does
  override the input file, making precedence visible in the run log.
- Replace bare `return` statements inside nested loops (walltime/maxiter
  termination paths) with an `end_early` flag + `break`, so that
  `make_seed_mech()`, `check_model()`, and `finish()` are still called
  on early termination. Suppress the "MODEL GENERATION COMPLETED" banner
  when ending early to avoid misleading output.
- Update docs (`running.rst`) and example input files to document CLI
  override behaviour and clarify that `wallTime` can be set in
  `input.py` while `--maxiter` is CLI-only.
- Update test for the new `None` default.
Enhance options for output writing
…sing annotated files

Coverage-dependence post-processing was still targeting the old 'cantera/'
folder; it now correctly targets 'cantera_from_ck/'. Also added
os.path.exists() guards around all annotated-file translation calls so that
runs configured without verboseComments (which never write chem_annotated.inp)
no longer fail when those files are absent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Now that they're off-by-default, we need to turn them on for testing.
A recent change meant that when a model reaches the wall clock
or iteration count limit and is terminated, it now does the 
"end of job" steps like checking colliders, running ck2yaml,
etc. This means that some things, like saving the Seed,
and writing a row to the statistics.xls, got done one more time.
This fixes a couple of things which that broke.
See #2800 for details.

Enable in your options block with:

    generateCanteraYAML1=True,
    generateCanteraYAML2=True,

Or customize with settings like:

    generateChemkin={'saveInterval': 1, 'saveEdge': False},
    generateRMSYAML={'saveInterval': 5},
    generateCanteraYAML1={'saveInterval': 5, 'saveEdge':True},
    generateCanteraYAML2={'saveInterval': 5, 'saveEdge':False, 'verboseComments':True},

See provided examples and documentation for more.
RTP is only used for variable volume reactors. Requiring P messes up the surface reactor (constant volume) because it does not keep track of P. Moving this behind the variable volume check allows us to do sensitivity for surface reactors without implementing something to keep track of P.
the jacobian function was populating an array with 1/V or 1/A for each gas or surface species each time it called the jacobian. Now it caches the values. 1/V and 1/A do not change because it's a constant volume reactor, but the total number of core species could change as RMG grows the model, and this enables the use of cached values that get updated only as required
Implement sensitivity for SurfaceReactor
Earlier attempts tried to fit the autogenerated trees into this uncertainty framework by retrieving information from the tree nodes about the number of training reactions and leave-one-out variance. This caused major problems when trying to compute covariance matrices because you had to choose between using the BM node variance or the uncertainty framework's Delta lnk = 0.5 assumption. The new plan is to compute an empirical covariance matrix of the BM nodes and integrate this into a new, more generalized framework. But this separate handling of the trees has to be undone first to validate that the two frameworks produce identical results.
This will make it easier to parse the uncertainty source type later on
bjkreitz and others added 28 commits June 8, 2026 14:43
…fied.

Suggested by copilot:

Previously, populate_resonance_algorithms() adds generate_formate_resonance_structures only in the features['is_multidentate'] branch, but it is not included in the default (features=None) method list. This means call sites that iterate populate_resonance_algorithms() without passing features (e.g., the isomorphic-resonance enumeration later in this module) will never generate the new formate resonance structures. Consider adding the new generator to the features is None list as well to keep behavior consistent.
…rmate_resonance_structures

Just so all the adsorbate things start with similar names.
Should NOT remove vdW if there's also a covalent bond to the surface.
For checking multi-dentate vdW things.
I'm about to refactor, and want to first document what the current code does,
then change how we do it in the next commit.
Lifts is_multidentate() into the outer guard (short-circuits on the second surface atom, 
so it's cheaper than get_num_atoms('X') > 1 which counts all atoms).
Replaces the surface_sites list + all(... == 'Xv') check with 
`not has_covalent_surface_bond()`.
Drops the now-unused surface_sites = [] initializer.
Also add tests for it, and use it in reaction family is_molecule_forbidden method.
The has_vdw_surface_bond now ALSO returns True for has LACK OF 
a bond (but an X and one other thing).

I guess if you were to give it an adjacency list with just X atoms,
this would return True, which may seem weird.
(But so would the old test which was just for the presence of an Xv atom type)
Since Python 3.8 we can do this "walrus" operator :=
The dispatch else-branch in kinetics_check_sample_can_react raised a terse
ValueError ("Family had N reactants?: ...") that named neither the family nor
the underlying cause, making CI failures hard to diagnose. This branch is
reached whenever the number of reactant roots that produced at least one usable
sample molecule does not match the family
template, and it raised before the
logging loop ran, discarding any per-sample errors already queued.

Add an explicit check comparing the number of reactant roots that
yielded samples against the family template's reactant count. On a mismatch,
append a descriptive, per-root message  logged together with
the queued per-sample errors (and then raises the standard
"Error Occurred. See log for details."), naming the family and the specific
reactant root(s) with no usable sample.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Richard West <r.west@northeastern.edu>
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

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:52
Reference: Memory used: 829.54 MB
Current: Memory used: 829.31 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(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)
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(s3_5_5_ene_1) - ring(Cyclobutene) - ring(Cyclopentene) - ring(Cyclopentane) + 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(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)
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! ❌
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(Cyclohexane) - ring(Cyclopentane) + ring(Cyclohexene) + ring(Cyclopentene) - 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(Cyclohexane) - ring(Cyclopentane) + ring(1,3-Cyclohexadiene) + ring(Cyclopentene) - ring(Cyclopropane) - ring(Cyclopentene) - ring(1,3-Cyclohexadiene) + radical(cyclopentene-allyl)

Non-identical thermo! ❌
original: C1=CC2C=CC=1C=C2
tested: C1=CC2C=CC=1C=C2

Hf(300K) S(300K) Cp(300K) Cp(400K) Cp(500K) Cp(600K) Cp(800K) Cp(1000K) Cp(1500K)
164.90 80.93 22.21 28.97 35.25 40.69 48.70 53.97 64.36
129.39 79.85 22.98 30.09 36.61 42.21 50.22 55.39 65.95

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)
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(1,4-Cyclohexadiene)

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

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -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): -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

Non-identical kinetics! ❌
original:
rxn: [c]1ccccc1(3) + C1=CC2C=C[C]1C=C2(49) <=> benzene(1) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [c]1ccccc1(3) + C1=CC2C=C[C]1C=C2(49) <=> benzene(1) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -3.00 -0.74 0.70 1.71 3.07 3.97 5.33 6.15
k(T): 4.24 4.69 5.05 5.33 5.79 6.14 6.78 7.23

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(9.943,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 38.5 to 41.6 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(0,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 38.5 to 41.6 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: H(4) + C1=CC2C=C[C]1C=C2(49) <=> H2(11) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: H(4) + C1=CC2C=C[C]1C=C2(49) <=> H2(11) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -7.44 -4.08 -2.05 -0.69 1.02 2.06 3.46 4.18
k(T): 8.61 7.96 7.58 7.33 7.04 6.87 6.67 6.59

kinetics: Arrhenius(A=(4.06926e+10,'cm^3/(mol*s)'), n=0.47, Ea=(18.137,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 58.9 to 75.9 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(4.06926e+10,'cm^3/(mol*s)'), n=0.47, Ea=(-3.887,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 58.9 to 75.9 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: C2H3(7) + C1=CC2C=C[C]1C=C2(49) <=> C2H4(13) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: C2H3(7) + C1=CC2C=C[C]1C=C2(49) <=> C2H4(13) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -7.17 -3.66 -1.56 -0.16 1.60 2.65 4.05 4.75
k(T): 4.06 4.76 5.18 5.46 5.81 6.02 6.30 6.44

kinetics: Arrhenius(A=(7.23e+12,'cm^3/(mol*s)'), n=0, Ea=(19.262,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_N-Sp-6R!H-4CHNS in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Arrhenius(A=(7.23e+12,'cm^3/(mol*s)'), n=0, Ea=(3.841,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_N-Sp-6R!H-4CHNS in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
Identical kinetics comments:
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_N-Sp-6R!H-4CHNS in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2CC2=C1(27) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2CC2=C1(27) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -30.48 -21.35 -15.79 -12.03 -7.23 -4.28 -0.16 2.03
k(T): -4.55 -1.90 -0.23 0.94 2.49 3.50 5.02 5.92

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(47.659,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(12.063,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=C2C1(29) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=C2C1(29) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -31.23 -21.91 -16.23 -12.40 -7.51 -4.50 -0.31 1.91
k(T): -5.30 -2.46 -0.68 0.57 2.21 3.28 4.87 5.80

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(48.686,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 202.2 to 203.7 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(13.089,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 53.5 to 54.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 202.2 to 203.7 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 53.5 to 54.8 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2=CC2C1(28) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: [CH]1C2=CC=CC12(8) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2=CC2C1(28) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -27.24 -18.91 -13.84 -10.40 -6.02 -3.30 0.48 2.51
k(T): -1.38 0.48 1.67 2.52 3.68 4.45 5.66 6.39

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(43.208,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 180.2 to 180.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(7.718,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 180.2 to 180.8 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: CH2CHCHCH(15) + C1=CC2C=C[C]1C=C2(49) <=> C=CC=C(17) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation
tested:
rxn: CH2CHCHCH(15) + C1=CC2C=C[C]1C=C2(49) <=> C=CC=C(17) + C1=CC2C=CC=1C=C2(79) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -11.95 -7.61 -5.01 -3.27 -1.10 0.20 1.93 2.80
k(T): -0.49 0.99 1.87 2.46 3.19 3.64 4.23 4.52

kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(23.821,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(8.084,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
Identical kinetics comments:
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]=Cc1ccccc1(12) <=> C1=CC2C=CC=1C=C2(79) + C=Cc1ccccc1(16) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]=Cc1ccccc1(12) <=> C1=CC2C=CC=1C=C2(79) + C=Cc1ccccc1(16) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -12.28 -7.86 -5.21 -3.44 -1.23 0.10 1.87 2.75
k(T): -0.66 0.85 1.76 2.37 3.13 3.58 4.19 4.49

kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(24.273,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
kinetics: Arrhenius(A=(2.529e+11,'cm^3/(mol*s)'), n=0, Ea=(8.328,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0""")
Identical kinetics comments:
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-6R!H-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C1)C2(69) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C1)C2(69) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -30.44 -21.32 -15.76 -12.01 -7.22 -4.26 -0.16 2.03
k(T): -4.51 -1.87 -0.20 0.96 2.51 3.52 5.03 5.92

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(47.606,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 195.1 to 199.2 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(12.01,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 46.5 to 50.2 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 195.1 to 199.2 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 46.5 to 50.2 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C2)C1(70) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC(=C2)C1(70) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -32.11 -22.57 -16.76 -12.84 -7.84 -4.76 -0.49 1.78
k(T): -6.18 -3.12 -1.20 0.13 1.88 3.01 4.70 5.67

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(49.895,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 205.2 to 208.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(14.299,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 56.6 to 59.8 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 205.2 to 208.8 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 56.6 to 59.8 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2=CC(C=C2)C1(71) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + [CH]1C2=CC=CC1C=C2(48) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2=CC(C=C2)C1(71) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -33.97 -23.97 -17.88 -13.77 -8.54 -5.32 -0.86 1.50
k(T): -8.04 -4.52 -2.32 -0.81 1.18 2.46 4.32 5.39

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(52.457,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 214.4 to 219.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(16.86,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 65.8 to 70.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 214.4 to 219.5 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 65.8 to 70.5 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1C=C2(82) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1C=C2(82) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -30.48 -21.35 -15.79 -12.03 -7.23 -4.28 -0.16 2.03
k(T): -4.55 -1.90 -0.23 0.94 2.49 3.50 5.02 5.92

kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(47.659,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(17.1699,'cm^3/(mol*s)'), n=3.635, Ea=(12.063,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 3.0 Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 195.4 to 199.4 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 3.0
Ea raised from 46.8 to 50.5 kJ/mol to match endothermicity of reaction.

Non-identical kinetics! ❌
original:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1=CC2(83) origin: Disproportionation
tested:
rxn: C1=CC2C=C[C]1C=C2(49) + C1=CC2C=C[C]1C=C2(49) <=> C1=CC2C=CC=1C=C2(79) + C1=CC2C=CC1=CC2(83) origin: Disproportionation

k(1bar) 300K 400K 500K 600K 800K 1000K 1500K 2000K
k(T): -19.49 -12.98 -9.00 -6.29 -2.81 -0.64 2.42 4.08
k(T): 3.96 4.60 5.07 5.43 5.98 6.39 7.11 7.60

kinetics: Arrhenius(A=(51.5097,'cm^3/(mol*s)'), n=3.635, Ea=(33.226,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 9.0 Ea raised from 133.4 to 139.0 kJ/mol to match endothermicity of reaction.""")
kinetics: Arrhenius(A=(51.5097,'cm^3/(mol*s)'), n=3.635, Ea=(1.036,'kcal/mol'), T0=(1,'K'), comment="""Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation. Multiplied by reaction path degeneracy 9.0""")
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 9.0
Ea raised from 133.4 to 139.0 kJ/mol to match endothermicity of reaction.
kinetics: Estimated from node Root_Ext-1R!H-R_N-4R->O_Sp-5R!H=1R!H_Ext-4CHNS-R_Ext-4CHNS-R in family Disproportionation.
Multiplied by reaction path degeneracy 9.0

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)
✅ 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:52
Current: Execution time (DD:HH:MM:SS): 00:00:01:53
Reference: Memory used: 911.51 MB
Current: Memory used: 909.75 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 1591 reactions. ✅
The original model has 2 reactions that the tested model does not have. ❌
rxn: C[CH]CC(C)OO(31) <=> CCC[C](C)OO(78) origin: intra_H_migration
rxn: CCCC[CH]OO(96) <=> C[CH]CCCOO(63) origin: intra_H_migration
The tested model has 2 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(51) <=> [OH](22) + CCCCC=O(48) origin: intra_H_migration

Errors occurred during edge comparison ⚠️ ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py liquid_oxidation-edge stable_regression_results/liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions! liquid_oxidation Passed Observable Testing ✅

Regression test nitrogen:

Reference: Execution time (DD:HH:MM:SS): 00:00:00:55
Current: Execution time (DD:HH:MM:SS): 00:00:00:55
Reference: Memory used: 912.90 MB
Current: Memory used: 915.66 MB

nitrogen Passed Core Comparison ✅

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

nitrogen Failed Edge Comparison ❌

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

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

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

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

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

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

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

Errors occurred during edge comparison ⚠️ ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py nitrogen-edge stable_regression_results/nitrogen/chemkin/chem_edge_annotated.inp stable_regression_results/nitrogen/chemkin/species_edge_dictionary.txt test/regression/nitrogen/chemkin/chem_edge_annotated.inp test/regression/nitrogen/chemkin/species_edge_dictionary.txt` failed. (See above for error)
✅ 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:32
Current: Execution time (DD:HH:MM:SS): 00:00:01:30
Reference: Memory used: 799.41 MB
Current: Memory used: 796.53 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. ✅

✅ 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: 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:36
Reference: Memory used: 911.37 MB
Current: Memory used: 911.16 MB

sulfur Passed Core Comparison ✅

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

sulfur Failed Edge Comparison ❌

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

Errors occurred during edge comparison ⚠️ ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py sulfur-edge stable_regression_results/sulfur/chemkin/chem_edge_annotated.inp stable_regression_results/sulfur/chemkin/species_edge_dictionary.txt test/regression/sulfur/chemkin/chem_edge_annotated.inp test/regression/sulfur/chemkin/species_edge_dictionary.txt` failed. (See above for error)
✅ 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:23
Current: Execution time (DD:HH:MM:SS): 00:00:00:22
Reference: Memory used: 969.47 MB
Current: Memory used: 974.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:19
Current: Execution time (DD:HH:MM:SS): 00:00:02:19
Reference: Memory used: 2414.67 MB
Current: Memory used: 2405.13 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. ✅

✅ 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:10:52
Current: Execution time (DD:HH:MM:SS): 00:00:15:24
Reference: Memory used: 2780.97 MB
Current: Memory used: 2772.64 MB

RMS_CSTR_liquid_oxidation Failed Core Comparison ❌

Original model has 35 species.
Test model has 35 species. ✅
Original model has 126 reactions.
Test model has 141 reactions. ❌
The original model has 2 species that the tested model does not have. ❌
spc: CC[CH]CCOO(64)
spc: C=CCC(C)OO(89)
The tested model has 2 species that the original model does not have. ❌
spc: CC=O(87)
spc: [CH2]CCC(C)O(93)
The original model has 5 reactions that the tested model does not have. ❌
rxn: oxygen(1) + C[CH]CC(C)OO(34) <=> [O]O(13) + C=CCC(C)OO(89) origin: Disproportionation
rxn: CC[CH]CCOO(64) <=> CCCCCO[O](61) origin: intra_H_migration
rxn: [O]O(13) + CC[CH]CCOO(64) <=> oxygen(1) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCC(12) + CC[CH]CCOO(64) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
rxn: C[CH]CCC(11) + CC[CH]CCOO(64) <=> C=CCCC(18) + CCCCCOO(78) origin: Disproportionation
The tested model has 20 reactions that the original model does not have. ❌
rxn: CCC(CC)O[O](22) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: CCCC(C)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
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](25) + CCC(CC)OO(27) <=> H2O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + [CH2]CC(CC)OO(32) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction

Errors occurred during core comparison ⚠️ ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-core stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_dictionary.txt` failed. (See above for error)
RMS_CSTR_liquid_oxidation Failed Edge Comparison ❌

Original model has 90 species.
Test model has 99 species. ❌
Original model has 314 reactions.
Test model has 384 reactions. ❌
The tested model has 9 species that the original model does not have. ❌
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)
The original model has 1 reactions that the tested model does not have. ❌
rxn: H(8) + [OH](25) <=> H2O(42) origin: R_Recombination
The tested model has 71 reactions that the original model does not have. ❌
rxn: CCC(CC)O[O](22) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: CCCC(C)O[O](20) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: C[CH]CC(C)OO(37) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: OO(23) + CCCCCO[O](61) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
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](25) + CCC(CC)OO(27) <=> H2O(42) + CCC(CC)O[O](22) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCCC(C)O[O](20) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + C[CH]CC(C)OO(37) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCCCO[O](61) origin: H_Abstraction
rxn: OO(23) + OO(23) <=> [OH](25) + [O]O(13) + H2O(42) origin: Bimolec_Hydroperoxide_Decomposition
rxn: CCCC(C)[O](44) <=> [CH2]CCC(C)O(93) origin: intra_H_migration
rxn: [CH2]CC(CC)OO(32) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + [CH2]CC(CC)OO(32) origin: H_Abstraction
rxn: OO(23) + C[CH]CCCOO(75) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: C[CH]CCCOO(75) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + C[CH]CCCOO(75) origin: H_Abstraction
rxn: OO(23) + [CH2]CCCCOO(76) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [CH2]CCCCOO(76) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + [CH2]CCCCOO(76) origin: H_Abstraction
rxn: CC[C](CC)OO(53) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: C[CH]C(CC)OO(31) + CCCCCOO(78) <=> CCCCCO[O](61) + CCC(CC)OO(27) origin: H_Abstraction
rxn: CCC[C](C)OO(58) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CC[CH]C(C)OO(35) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]C(CCC)OO(36) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: [CH2]CCC(C)OO(38) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)OO(24) origin: H_Abstraction
rxn: CH2(S)(3) + CCCC[O](85) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: CH2(S)(3) + CCC(C)[O](86) <=> CCCC(C)[O](44) origin: 1,2_Insertion_carbene
rxn: H(8) + CCCC(C)=O(34) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: [CH3](10) + CCCC=O(88) <=> CCCC(C)[O](44) origin: R_Addition_MultipleBond
rxn: CCCC(C)[O](44) <=> CCC[C](C)O(89) origin: intra_H_migration
rxn: CC[CH]C(C)O(90) <=> CCCC(C)[O](44) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> [CH2]C(O)CCC(91) origin: intra_H_migration
rxn: CCCC(C)[O](44) <=> C[CH]CC(C)O(92) origin: intra_H_migration
rxn: oxygen(1) + CCCC(C)[O](44) <=> [O]O(13) + CCCC(C)=O(34) origin: Disproportionation
rxn: oxygen(1) + CCCC(C)[O](44) <=> CCCC(C)OO[O](49) origin: R_Recombination
rxn: CCCC(C)[O](44) + pentane(2) <=> CC[CH]CC(7) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> C[CH]CCC(11) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + pentane(2) <=> [CH2]CCCC(12) + CCCC(C)O(47) origin: H_Abstraction
rxn: OO(23) + CC[CH]CCOO(74) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: OO(23) + CCC[CH]COO(73) <=> [O]O(13) + CCCCCOO(78) origin: H_Abstraction
rxn: [O]O(13) + CCCCCOO(78) <=> OO(23) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: CC[CH]CCOO(74) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCC[CH]COO(73) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: CCCC[CH]OO(84) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCCCOO(78) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + CC[C](CC)OO(53) origin: H_Abstraction
rxn: [OH](25) + CCC(CC)OO(27) <=> H2O(42) + C[CH]C(CC)OO(31) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> CCC(CC)O[O](22) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> CC[C](CC)OO(53) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> C[CH]C(CC)OO(31) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCC(CC)OO(27) <=> [CH2]CC(CC)OO(32) + CCCC(C)O(47) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CCC[C](C)OO(58) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + CC[CH]C(C)OO(35) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + [CH2]C(CCC)OO(36) origin: H_Abstraction
rxn: [OH](25) + CCCC(C)OO(24) <=> H2O(42) + [CH2]CCC(C)OO(38) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> CCCC(C)O[O](20) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> CCC[C](C)OO(58) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> CC[CH]C(C)OO(35) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> C[CH]CC(C)OO(37) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> [CH2]C(CCC)OO(36) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCC(C)OO(24) <=> [CH2]CCC(C)OO(38) + CCCC(C)O(47) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CC[CH]CCOO(74) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCC[CH]COO(73) origin: H_Abstraction
rxn: [OH](25) + CCCCCOO(78) <=> H2O(42) + CCCC[CH]OO(84) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCCCO[O](61) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CC[CH]CCOO(74) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCC[CH]COO(73) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> C[CH]CCCOO(75) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> CCCC[CH]OO(84) + CCCC(C)O(47) origin: H_Abstraction
rxn: CCCC(C)[O](44) + CCCCCOO(78) <=> [CH2]CCCCOO(76) + CCCC(C)O(47) origin: H_Abstraction

Errors occurred during edge comparison ⚠️ ERROR conda.cli.main_run:execute(148): `conda run python scripts/checkModels.py RMS_CSTR_liquid_oxidation-edge stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp stable_regression_results/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt test/regression/RMS_CSTR_liquid_oxidation/chemkin/chem_edge_annotated.inp test/regression/RMS_CSTR_liquid_oxidation/chemkin/species_edge_dictionary.txt` failed. (See above for error)
✅ 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:31
Current: Execution time (DD:HH:MM:SS): 00:00:00:31
Reference: Memory used: 757.72 MB
Current: Memory used: 758.67 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. ✅

✅ 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: 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:47
Reference: Memory used: 2514.24 MB
Current: Memory used: 2453.89 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. ✅

✅ 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: 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:30
Reference: Memory used: 916.23 MB
Current: Memory used: 918.65 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. ✅

✅ 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 🤖

@JacksonBurns JacksonBurns merged commit d0075df into stable Jun 9, 2026
34 checks passed
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.

8 participants