From 44ab843a2d957b1b47b7e56ab0fa0414f334cc00 Mon Sep 17 00:00:00 2001 From: Max Liu Date: Fri, 27 Sep 2019 14:26:27 -0400 Subject: [PATCH 1/9] Remove Species import from rmgpy.molecule.draw It was leading to circular imports, and was only used for an isinstance check, which was refactored --- rmgpy/molecule/draw.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/rmgpy/molecule/draw.py b/rmgpy/molecule/draw.py index 40981ebee6..d68a4e1192 100644 --- a/rmgpy/molecule/draw.py +++ b/rmgpy/molecule/draw.py @@ -62,7 +62,6 @@ from rmgpy.molecule.molecule import Molecule from rmgpy.qm.molecule import Geometry -from rmgpy.species import Species ################################################################################ @@ -1634,16 +1633,20 @@ def draw(self, reaction, file_format, path=None): # First draw each of the reactants and products reactants, products = [], [] for reactant in reaction.reactants: - if isinstance(reactant, Species): - molecule = reactant.molecule[0] - elif isinstance(reactant, Molecule): + if isinstance(reactant, Molecule): molecule = reactant + elif hasattr(reactant, 'molecule'): + molecule = reactant.molecule[0] + else: + raise TypeError('Expected Molecule or Species object, not {0}'.format(reactant.__class__.__name__)) reactants.append(MoleculeDrawer().draw(molecule, format)) for product in reaction.products: - if isinstance(product, Species): - molecule = product.molecule[0] - elif isinstance(product, Molecule): + if isinstance(product, Molecule): molecule = product + elif hasattr(product, 'molecule'): + molecule = product.molecule[0] + else: + raise TypeError('Expected Molecule or Species object, not {0}'.format(product.__class__.__name__)) products.append(MoleculeDrawer().draw(molecule, format)) # Next determine size required for surface From 50ffd9efce3e7a74a9ae8f82b0cdba59ec650621 Mon Sep 17 00:00:00 2001 From: Max Liu Date: Fri, 27 Sep 2019 18:46:26 -0400 Subject: [PATCH 2/9] Refactor entry sorting in kinetics rules Main motivation is that None can no longer be compared to ints in Python 3 This changes how the sorting process is implemented but maintains the same behavior as before --- rmgpy/data/kinetics/rules.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/rmgpy/data/kinetics/rules.py b/rmgpy/data/kinetics/rules.py index 23d3661795..35141de009 100644 --- a/rmgpy/data/kinetics/rules.py +++ b/rmgpy/data/kinetics/rules.py @@ -429,13 +429,10 @@ def get_rule(self, template): if len(entries) == 1: return entries[0] elif len(entries) > 1: - if any([entry.rank > 0 for entry in entries]): - entries = [entry for entry in entries if entry.rank > 0] - entries.sort(key=lambda x: (x.rank, x.index)) - return entries[0] - else: - entries.sort(key=lambda x: x.index) - return entries[0] + # Take the entry with the highest rank (smaller numbers are higher) and smallest index + # If an entry has rank 0 or None, give it an effective rank of 1000 for sorting + entries.sort(key=lambda x: (1000 if not x.rank else x.rank, x.index)) + return entries[0] else: return None From b31cd43a08e171d518af4f2b1017a0281b047d3c Mon Sep 17 00:00:00 2001 From: Max Liu Date: Fri, 27 Sep 2019 20:12:32 -0400 Subject: [PATCH 3/9] Adjust reaction template retrieval when parsing reaction comments In cases where there may have been a line break in the middle of the reaction template, which is very likely with automatically generated families. --- rmgpy/data/kinetics/family.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rmgpy/data/kinetics/family.py b/rmgpy/data/kinetics/family.py index afbda502cb..eb2439bdc0 100644 --- a/rmgpy/data/kinetics/family.py +++ b/rmgpy/data/kinetics/family.py @@ -4238,12 +4238,15 @@ def extract_source_from_comments(self, reaction): full_comment_string = reaction.kinetics.comment.replace('\n', ' ') # The rate rule string is right after the phrase 'for rate rule' - rate_rule_string = full_comment_string.split("for rate rule", 1)[1].split()[0] + rate_rule_string = full_comment_string.split("for rate rule", 1)[1].strip() if rate_rule_string[0] == '[': - template_label = re.split(regex, rate_rule_string)[1] + # Get the contents of the capture group in the regex + # Remove any spaces which may be left over as a result of a line break + template_label = re.split(regex, rate_rule_string)[1].replace(' ', '') else: - template_label = rate_rule_string # if has the line 'From training reaction # for rate rule node1;node2' + # If this has the line 'From training reaction # for rate rule node1;node2' + template_label = rate_rule_string.split()[0] template = self.retrieve_template(template_label.split(';')) rules, training_entries = self.get_sources_for_template(template) From e30e430401074d262b04325631cf4829ff27af2e Mon Sep 17 00:00:00 2001 From: Max Liu Date: Fri, 27 Sep 2019 20:22:51 -0400 Subject: [PATCH 4/9] Fix leftover uses of format in molecule.draw --- rmgpy/molecule/draw.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rmgpy/molecule/draw.py b/rmgpy/molecule/draw.py index d68a4e1192..3d9d245bb5 100644 --- a/rmgpy/molecule/draw.py +++ b/rmgpy/molecule/draw.py @@ -149,7 +149,7 @@ def clear(self): def draw(self, molecule, file_format, target=None): """ - Draw the given `molecule` using the given image `format` - pdf, svg, ps, or + Draw the given `molecule` using the given image `file_format` - pdf, svg, ps, or png. If `path` is given, the drawing is saved to that location on disk. The `options` dict is an optional set of key-value pairs that can be used to control the generated drawing. @@ -1613,7 +1613,7 @@ def __init__(self, options=None): def draw(self, reaction, file_format, path=None): """ - Draw the given `reaction` using the given image `format` - pdf, svg, + Draw the given `reaction` using the given image `file_format` - pdf, svg, ps, or png. If `path` is given, the drawing is saved to that location on disk. @@ -1639,7 +1639,7 @@ def draw(self, reaction, file_format, path=None): molecule = reactant.molecule[0] else: raise TypeError('Expected Molecule or Species object, not {0}'.format(reactant.__class__.__name__)) - reactants.append(MoleculeDrawer().draw(molecule, format)) + reactants.append(MoleculeDrawer().draw(molecule, file_format)) for product in reaction.products: if isinstance(product, Molecule): molecule = product @@ -1647,7 +1647,7 @@ def draw(self, reaction, file_format, path=None): molecule = product.molecule[0] else: raise TypeError('Expected Molecule or Species object, not {0}'.format(product.__class__.__name__)) - products.append(MoleculeDrawer().draw(molecule, format)) + products.append(MoleculeDrawer().draw(molecule, file_format)) # Next determine size required for surface rxn_width = rxn_height = rxn_top = 0 @@ -1741,7 +1741,7 @@ def draw(self, reaction, file_format, path=None): rxn_x += width # Finish Cairo drawing - if format == 'png': + if file_format == 'png': rxn_surface.write_to_png(path) else: rxn_surface.finish() From 402e974824e187d9baab15bbc42cd5e752edd967 Mon Sep 17 00:00:00 2001 From: Max Liu Date: Fri, 27 Sep 2019 20:26:15 -0400 Subject: [PATCH 5/9] Update example model in ipython/data/parse_source --- ipython/data/parse_source/chem_annotated.inp | 858 +++++++++--------- .../data/parse_source/species_dictionary.txt | 94 +- 2 files changed, 506 insertions(+), 446 deletions(-) diff --git a/ipython/data/parse_source/chem_annotated.inp b/ipython/data/parse_source/chem_annotated.inp index 00e0f454ba..32e0e375ca 100644 --- a/ipython/data/parse_source/chem_annotated.inp +++ b/ipython/data/parse_source/chem_annotated.inp @@ -13,6 +13,7 @@ ELEMENTS Si S Cl + X /195.083/ END SPECIES @@ -21,33 +22,34 @@ SPECIES Ne ! Ne N2 ! N2 ethane(1) ! ethane(1) - CH3(2) ! [CH3](2) - C2H5(3) ! C[CH2](3) - H(4) ! H(4) - CH4(6) ! CH4(6) - C2H4(8) ! C=C(8) - H2(13) ! H2(13) + CH4(3) ! CH4(3) + CH3(4) ! [CH3](4) + C2H5(5) ! C[CH2](5) + H(6) ! H(6) + C2H4(9) ! C=C(9) + H2(11) ! H2(11) C2H3(14) ! [CH]=C(14) C3H7(16) ! [CH2]CC(16) - C#C(20) ! C#C(20) - C4H7(25) ! [CH2]CC=C(25) - C4H6(26) ! C=CC=C(26) - C2H2(28) ! [C]=C(28) - C3H5(29) ! [CH]=CC(29) - C4H7(30) ! [CH]=CCC(30) - C4H5(32) ! [CH]=CC=C(32) - C4H7(44) ! [CH2]C1CC1(44) - C4H7(45) ! [CH2]C=CC(45) - C4H6(47) ! [CH2]C=C[CH2](47) - C4H6(116) ! C=C=CC(116) - C4H6(205) ! C1=CCC1(205) - C4H5(427) ! [CH2]C1C=C1(427) + C#C(27) ! C#C(27) + C4H7(29) ! [CH2]CC=C(29) + C2H2(31) ! [C]=C(31) + C3H5(32) ! [CH]=CC(32) + C4H7(33) ! [CH]=CCC(33) + C4H5(35) ! [CH]=CC=C(35) + C4H7(41) ! [CH2]C1CC1(41) + C4H6(42) ! C=CC=C(42) + C4H6(43) ! [CH2][CH]C=C(43) + C4H7(45) ! C=C[CH]C(45) + C4H6(69) ! C=C=CC(69) + C4H6(88) ! C1=CCC1(88) + C4H5(144) ! C=C=[C]C(144) + C4H5(185) ! [CH2]C1C=C1(185) END THERM ALL - 300.000 1000.000 5000.000 + 300.000 1000.000 5000.000 ! Thermo library: primaryThermoLibrary Ar Ar 1 G 200.000 6000.000 1000.00 1 @@ -74,138 +76,144 @@ N2 N 2 G 200.000 6000.000 1000.00 1 2.43531000E-09-1.40881000E-12-1.04698000E+03 2.96747000E+00 4 ! Thermo group additivity estimation: group(Cs-CsHHH) + group(Cs-CsHHH) -ethane(1) H 6C 2 G 100.000 5000.000 954.52 1 - 4.58992205E+00 1.41506180E-02-4.75953058E-06 8.60272628E-10-6.21698592E-14 2 --1.27218030E+04-3.61790074E+00 3.78030827E+00-3.24230229E-03 5.52368587E-05 3 --6.38564905E-08 2.28629819E-11-1.16203398E+04 5.21043067E+00 4 +ethane(1) C 2H 6 G 100.000 5000.000 954.51 1 + 4.58979444E+00 1.41508381E-02-4.75965886E-06 8.60303158E-10-6.21724057E-14 2 +-1.27217503E+04-3.61718429E+00 3.78034607E+00-3.24276485E-03 5.52385525E-05 3 +-6.38587905E-08 2.28640069E-11-1.16203414E+04 5.21029625E+00 4 + +! Thermo library: primaryThermoLibrary +CH4(3) C 1H 4 G 100.000 5000.000 1084.12 1 + 9.08265721E-01 1.14540858E-02-4.57173828E-06 8.29191671E-10-5.66314895E-14 2 +-9.71997444E+03 1.39930944E+01 4.20541524E+00-5.35557362E-03 2.51123265E-05 3 +-2.13762843E-08 5.97523937E-12-1.01619433E+04-9.21279283E-01 4 ! Thermo library: primaryThermoLibrary + radical(CH3) -CH3(2) H 3C 1 G 100.000 5000.000 1337.60 1 - 3.54139740E+00 4.76795979E-03-1.82153283E-06 3.28887372E-10-2.22554124E-14 2 - 1.62239871E+04 1.66069535E+00 3.91547172E+00 1.84150036E-03 3.48754307E-06 3 --3.32760761E-09 8.50001225E-13 1.62856392E+04 3.51726326E-01 4 +CH3(4) C 1H 3 G 100.000 5000.000 1337.63 1 + 3.54145749E+00 4.76786834E-03-1.82148425E-06 3.28876586E-10-2.22545593E-14 2 + 1.62239579E+04 1.66034967E+00 3.91546761E+00 1.84154323E-03 3.48741760E-06 3 +-3.32747607E-09 8.49956882E-13 1.62856394E+04 3.51741490E-01 4 ! Thermo group additivity estimation: group(Cs-CsHHH) + group(Cs-CsHHH) + radical(CCJ) -C2H5(3) H 5C 2 G 100.000 5000.000 900.32 1 - 5.15626544E+00 9.43112567E-03-1.81940084E-06 2.21181548E-10-1.43469340E-14 2 - 1.20640599E+04-2.91130333E+00 3.82181475E+00-3.43333761E-03 5.09247147E-05 3 --6.20197238E-08 2.37066621E-11 1.30660138E+04 7.61650868E+00 4 +C2H5(5) C 2H 5 G 100.000 5000.000 900.31 1 + 5.15621623E+00 9.43121232E-03-1.81945206E-06 2.21193866E-10-1.43479695E-14 2 + 1.20640796E+04-2.91102815E+00 3.82183329E+00-3.43357093E-03 5.09256026E-05 3 +-6.20209847E-08 2.37072520E-11 1.30660130E+04 7.61644314E+00 4 ! Thermo library: primaryThermoLibrary -H(4) H 1 G 100.000 5000.000 4383.16 1 - 2.50003447E+00-3.04996987E-08 1.01101187E-11-1.48796738E-15 8.20356170E-20 2 - 2.54741866E+04-4.45191184E-01 2.50000000E+00-2.38914167E-13 3.12709494E-16 3 --1.33367320E-19 1.74989654E-23 2.54742178E+04-4.44972897E-01 4 - -! Thermo library: primaryThermoLibrary -CH4(6) H 4C 1 G 100.000 5000.000 1084.15 1 - 9.08349401E-01 1.14539479E-02-4.57166053E-06 8.29173612E-10-5.66300105E-14 2 --9.72001110E+03 1.39926204E+01 4.20540072E+00-5.35540640E-03 2.51117636E-05 3 --2.13755910E-08 5.97496145E-12-1.01619427E+04-9.21226951E-01 4 +H(6) H 1 G 100.000 5000.000 3459.60 1 + 2.49999999E+00 9.20455546E-12-3.58608293E-15 6.15198922E-19-3.92041801E-23 2 + 2.54742178E+04-4.44972842E-01 2.50000000E+00 9.24384602E-15-1.36779837E-17 3 + 6.66184769E-21-1.00106912E-24 2.54742178E+04-4.44972896E-01 4 ! Thermo group additivity estimation: group(Cds-CdsHH) + group(Cds-CdsHH) -C2H4(8) H 4C 2 G 100.000 5000.000 940.44 1 - 5.20288729E+00 7.82460951E-03-2.12694216E-06 3.79716339E-10-2.94692264E-14 2 - 3.93632496E+03-6.62351132E+00 3.97977798E+00-7.57601265E-03 5.52988535E-05 3 --6.36242698E-08 2.31776676E-11 5.07745943E+03 4.04610841E+00 4 +C2H4(9) C 2H 4 G 100.000 5000.000 940.45 1 + 5.20299386E+00 7.82442468E-03-2.12683407E-06 3.79690544E-10-2.94670706E-14 2 + 3.93628131E+03-6.62410904E+00 3.97974441E+00-7.57559895E-03 5.52973238E-05 3 +-6.36221688E-08 2.31767197E-11 5.07746086E+03 4.04622760E+00 4 ! Thermo library: primaryThermoLibrary -H2(13) H 2 G 100.000 5000.000 1959.08 1 - 2.78816619E+00 5.87640475E-04 1.59010635E-07-5.52739465E-11 4.34311304E-15 2 --5.96144481E+02 1.12730527E-01 3.43536411E+00 2.12710383E-04-2.78625110E-07 3 - 3.40267219E-10-7.76032129E-14-1.03135984E+03-3.90841731E+00 4 +H2(11) H 2 G 100.000 5000.000 1959.08 1 + 2.78816583E+00 5.87640942E-04 1.59010417E-07-5.52739026E-11 4.34310984E-15 2 +-5.96144270E+02 1.12732655E-01 3.43536412E+00 2.12710353E-04-2.78625043E-07 3 + 3.40267167E-10-7.76031998E-14-1.03135984E+03-3.90841732E+00 4 ! Thermo group additivity estimation: group(Cds-CdsHH) + group(Cds-CdsHH) + radical(Cds_P) -C2H3(14) H 3C 2 G 100.000 5000.000 931.96 1 - 5.44796549E+00 4.98356139E-03-1.08820776E-06 1.79837310E-10-1.45096286E-14 2 - 3.38297746E+04-4.87808222E+00 3.90670547E+00-4.06241064E-03 3.86780039E-05 3 --4.62976405E-08 1.72900385E-11 3.47971783E+04 6.09788968E+00 4 +C2H3(14) C 2H 3 G 100.000 5000.000 931.96 1 + 5.44796550E+00 4.98356138E-03-1.08820775E-06 1.79837309E-10-1.45096285E-14 2 + 3.38297746E+04-4.87808224E+00 3.90670547E+00-4.06241062E-03 3.86780039E-05 3 +-4.62976404E-08 1.72900384E-11 3.47971783E+04 6.09788968E+00 4 ! Thermo group additivity estimation: group(Cs-CsCsHH) + group(Cs-CsHHH) + group(Cs-CsHHH) + radical(RCCJ) -C3H7(16) H 7C 3 G 100.000 5000.000 995.41 1 - 5.69433594E+00 1.96032958E-02-7.42047085E-06 1.35882351E-09-9.56209871E-14 2 - 8.87583725E+03-4.32904614E+00 3.09190651E+00 1.32173255E-02 2.75844789E-05 3 --3.90845188E-08 1.43311730E-11 1.02284120E+04 1.24058105E+01 4 +C3H7(16) C 3H 7 G 100.000 5000.000 995.41 1 + 5.69430979E+00 1.96033402E-02-7.42049648E-06 1.35882956E-09-9.56214889E-14 2 + 8.87584826E+03-4.32889887E+00 3.09191302E+00 1.32172474E-02 2.75847569E-05 3 +-3.90848844E-08 1.43313303E-11 1.02284118E+04 1.24057873E+01 4 ! Thermo group additivity estimation: group(Ct-CtH) + group(Ct-CtH) -C#C(20) H 2C 2 G 100.000 5000.000 888.62 1 - 5.76202782E+00 2.37161841E-03-1.49600837E-07-2.19110945E-11 2.21742397E-15 2 - 2.50944570E+04-9.82598827E+00 3.03575423E+00 7.71230314E-03 2.53526421E-06 3 --1.08137921E-08 5.50779729E-12 2.58526440E+04 4.54458870E+00 4 +C#C(27) C 2H 2 G 100.000 5000.000 888.63 1 + 5.76204511E+00 2.37158782E-03-1.49582699E-07-2.19154662E-11 2.21779207E-15 2 + 2.50944501E+04-9.82608488E+00 3.03574736E+00 7.71239020E-03 2.53493006E-06 3 +-1.08133128E-08 5.50757058E-12 2.58526443E+04 4.54461297E+00 4 ! Thermo group additivity estimation: group(Cs-(Cds-Cds)CsHH) + group(Cs-CsHHH) + group(Cds-CdsCsH) + group(Cds-CdsHH) + radical(RCCJ) -C4H7(25) H 7C 4 G 100.000 5000.000 1000.95 1 - 7.59471242E+00 2.06426070E-02-7.89791031E-06 1.45966277E-09-1.03415016E-13 2 - 2.08073426E+04-1.19154763E+01 2.68061585E+00 2.10825522E-02 2.02123971E-05 3 --3.64244529E-08 1.41445445E-11 2.27528011E+04 1.66008500E+01 4 - -! Thermo group additivity estimation: group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsHH) + group(Cds-CdsHH) -C4H6(26) H 6C 4 G 100.000 5000.000 940.95 1 - 1.10823457E+01 1.17735316E-02-3.11414547E-06 5.37746002E-10-4.10623282E-14 2 - 8.42127980E+03-3.51695999E+01 2.68205248E+00 1.69322796E-02 3.73648580E-05 3 --6.26480110E-08 2.59146577E-11 1.13546018E+04 1.20324194E+01 4 +C4H7(29) C 4H 7 G 100.000 5000.000 1000.95 1 + 7.59479951E+00 2.06424593E-02-7.89782526E-06 1.45964270E-09-1.03413353E-13 2 + 2.08073058E+04-1.19159668E+01 2.68059468E+00 2.10828055E-02 2.02114983E-05 3 +-3.64232761E-08 1.41440404E-11 2.27528020E+04 1.66009256E+01 4 ! Thermo group additivity estimation: group(Cds-CdsHH) + group(CdJ2_singlet-Cds) -C2H2(28) H 2C 2 G 100.000 5000.000 1423.27 1 - 4.43042649E+00 4.87756435E-03-1.79373946E-06 3.04084287E-10-1.96651284E-14 2 - 4.78744070E+04-1.67113571E-01 3.69251616E+00 6.06585067E-03-2.11278561E-06 3 - 1.63629625E-11 1.07662491E-13 4.81741497E+04 3.96842480E+00 4 +C2H2(31) C 2H 2 G 100.000 5000.000 1423.26 1 + 4.43041986E+00 4.87757420E-03-1.79374459E-06 3.04085410E-10-1.96652162E-14 2 + 4.78744103E+04-1.67075241E-01 3.69251650E+00 6.06584723E-03-2.11277596E-06 3 + 1.63533182E-11 1.07665581E-13 4.81741496E+04 3.96842354E+00 4 ! Thermo group additivity estimation: group(Cs-(Cds-Cds)HHH) + group(Cds-CdsCsH) + group(Cds-CdsHH) + radical(Cds_P) -C3H5(29) H 5C 3 G 100.000 5000.000 997.87 1 - 5.66469022E+00 1.44326453E-02-5.46739996E-06 1.00158378E-09-7.04863747E-14 2 - 2.93870942E+04-4.48500500E+00 3.23408674E+00 1.18207670E-02 1.70308051E-05 3 --2.64369456E-08 9.91231997E-12 3.04873063E+04 1.03182597E+01 4 +C3H5(32) C 3H 5 G 100.000 5000.000 997.87 1 + 5.66465812E+00 1.44326998E-02-5.46743137E-06 1.00159120E-09-7.04869894E-14 2 + 2.93871077E+04-4.48482420E+00 3.23409465E+00 1.18206723E-02 1.70311418E-05 3 +-2.64373876E-08 9.91250979E-12 3.04873059E+04 1.03182315E+01 4 ! Thermo group additivity estimation: group(Cs-(Cds-Cds)CsHH) + group(Cs-CsHHH) + group(Cds-CdsCsH) + group(Cds-CdsHH) + radical(Cds_P) -C4H7(30) H 7C 4 G 100.000 5000.000 999.92 1 - 8.06556913E+00 2.00625297E-02-7.60833017E-06 1.39784400E-09-9.86872255E-14 2 - 2.57832016E+04-1.54387541E+01 2.56532869E+00 2.39244801E-02 1.38116529E-05 3 --3.10270119E-08 1.25444756E-11 2.77900539E+04 1.56311135E+01 4 +C4H7(33) C 4H 7 G 100.000 5000.000 999.92 1 + 8.06557472E+00 2.00625202E-02-7.60832471E-06 1.39784272E-09-9.86871188E-14 2 + 2.57831993E+04-1.54387855E+01 2.56532733E+00 2.39244964E-02 1.38115950E-05 3 +-3.10269360E-08 1.25444431E-11 2.77900540E+04 1.56311184E+01 4 ! Thermo group additivity estimation: group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsHH) + group(Cds-CdsHH) + radical(Cds_P) -C4H5(32) H 5C 4 G 100.000 5000.000 935.58 1 - 1.13228554E+01 8.94034348E-03-2.07998211E-06 3.38953403E-10-2.61932596E-14 2 - 3.83166201E+04-3.40916568E+01 2.61013573E+00 2.04318361E-02 2.07948531E-05 3 --4.53893004E-08 2.00566650E-11 4.10742713E+04 1.33869377E+01 4 +C4H5(35) C 4H 5 G 100.000 5000.000 935.58 1 + 1.13227703E+01 8.94049131E-03-2.08006868E-06 3.38974080E-10-2.61949890E-14 2 + 3.83166548E+04-3.40911798E+01 2.61016310E+00 2.04314979E-02 2.07961080E-05 3 +-4.53910308E-08 2.00574491E-11 4.10742701E+04 1.33868405E+01 4 ! Thermo group additivity estimation: group(Cs-CsCsCsH) + group(Cs-CsCsHH) + group(Cs-CsCsHH) + group(Cs-CsHHH) + ring(Cyclopropane) + radical(Isobutyl) -C4H7(44) H 7C 4 G 100.000 5000.000 926.07 1 - 1.02346378E+01 1.41131723E-02-2.99925840E-06 4.56621643E-10-3.49800603E-14 2 - 2.27933517E+04-2.92348931E+01 3.04736708E+00 5.45569479E-03 7.53308927E-05 3 --1.02226698E-07 4.01828473E-11 2.58269387E+04 1.40791018E+01 4 +C4H7(41) C 4H 7 G 100.000 5000.000 926.07 1 + 1.02346424E+01 1.41131644E-02-2.99925371E-06 4.56620522E-10-3.49799664E-14 2 + 2.27933498E+04-2.92349187E+01 3.04736554E+00 5.45571385E-03 7.53308215E-05 3 +-1.02226599E-07 4.01828021E-11 2.58269388E+04 1.40791072E+01 4 -! Thermo group additivity estimation: group(Cs-(Cds-Cds)HHH) + group(Cs-(Cds-Cds)HHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + radical(Allyl_P) -C4H7(45) H 7C 4 G 100.000 5000.000 998.57 1 - 7.82815147E+00 2.08398429E-02-7.96740402E-06 1.47334530E-09-1.04522892E-13 2 - 1.26471808E+04-1.58828439E+01 2.64210851E+00 2.15956826E-02 2.09673731E-05 3 --3.79196795E-08 1.47839281E-11 1.46809442E+04 1.41267390E+01 4 +! Thermo group additivity estimation: group(Cds-Cds(Cds-Cds)H) + group(Cds-Cds(Cds-Cds)H) + group(Cds-CdsHH) + group(Cds-CdsHH) +C4H6(42) C 4H 6 G 100.000 5000.000 940.95 1 + 1.10823465E+01 1.17735303E-02-3.11414472E-06 5.37745823E-10-4.10623132E-14 2 + 8.42127950E+03-3.51696040E+01 2.68205225E+00 1.69322825E-02 3.73648473E-05 3 +-6.26479964E-08 2.59146511E-11 1.13546018E+04 1.20324202E+01 4 ! Thermo group additivity estimation: group(Cs-(Cds-Cds)HHH) + group(Cs-(Cds-Cds)HHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + radical(Allyl_P) + ! radical(Allyl_P) -C4H6(47) H 6C 4 G 100.000 5000.000 961.82 1 - 9.92836150E+00 1.51090420E-02-5.13573070E-06 9.43600381E-10-6.92760024E-14 2 - 3.02830457E+04-2.74898944E+01 2.65641765E+00 1.89333010E-02 3.01003612E-05 3 --5.20366426E-08 2.11241941E-11 3.29038783E+04 1.36623382E+01 4 +C4H6(43) C 4H 6 G 100.000 5000.000 961.83 1 + 9.92849001E+00 1.51088208E-02-5.13560211E-06 9.43569819E-10-6.92734560E-14 2 + 3.02829926E+04-2.74906163E+01 2.65638077E+00 1.89337507E-02 3.00987228E-05 3 +-5.20344307E-08 2.11232146E-11 3.29038799E+04 1.36624695E+01 4 + +! Thermo group additivity estimation: group(Cs-(Cds-Cds)HHH) + group(Cs-(Cds-Cds)HHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + radical(Allyl_P) +C4H7(45) C 4H 7 G 100.000 5000.000 998.56 1 + 7.82800811E+00 2.08400863E-02-7.96754424E-06 1.47337839E-09-1.04525635E-13 2 + 1.26472412E+04-1.58820365E+01 2.64214371E+00 2.15952609E-02 2.09688717E-05 3 +-3.79216452E-08 1.47847719E-11 1.46809427E+04 1.41266132E+01 4 ! Thermo group additivity estimation: group(Cs-(Cds-Cds)HHH) + group(Cds-CdsCsH) + group(Cds-CdsHH) + group(Cdd-CdsCds) -C4H6(116) H 6C 4 G 100.000 5000.000 1063.05 1 - 6.93541663E+00 1.97136847E-02-7.88233993E-06 1.45447499E-09-1.01396633E-13 2 - 1.61162929E+04-1.12052605E+01 2.67091758E+00 2.38371662E-02 3.12275468E-06 3 --1.59975459E-08 6.48400683E-12 1.76966513E+04 1.27978558E+01 4 +C4H6(69) C 4H 6 G 100.000 5000.000 1063.05 1 + 6.93544552E+00 1.97136368E-02-7.88231275E-06 1.45446865E-09-1.01396113E-13 2 + 1.61162804E+04-1.12054239E+01 2.67091213E+00 2.38372295E-02 3.12253865E-06 3 +-1.59972758E-08 6.48389677E-12 1.76966515E+04 1.27978754E+01 4 ! Thermo group additivity estimation: group(Cs-(Cds-Cds)CsHH) + group(Cs-(Cds-Cds)CsHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + ring(Cyclobutene) -C4H6(205) H 6C 4 G 100.000 5000.000 950.26 1 - 9.42800612E+00 1.39634137E-02-4.06832799E-06 7.74892405E-10-6.20303493E-14 2 - 1.43340744E+04-2.81832724E+01 3.39603608E+00-3.43507787E-03 9.09385163E-05 3 --1.13263635E-07 4.24062039E-11 1.74124022E+04 1.07750296E+01 4 +C4H6(88) C 4H 6 G 100.000 5000.000 950.24 1 + 9.42741835E+00 1.39644294E-02-4.06892046E-06 7.75033524E-10-6.20421269E-14 2 + 1.43343164E+04-2.81799733E+01 3.39621343E+00-3.43725308E-03 9.09465048E-05 3 +-1.13274520E-07 4.24110728E-11 1.74123946E+04 1.07743991E+01 4 + +! Thermo group additivity estimation: group(Cs-CtHHH) + group(Cs-CtHHH) + group(Ct-CtCs) + group(Ct-CtCs) + radical(Propargyl) +C4H5(144) C 4H 5 G 100.000 5000.000 942.37 1 + 6.33626737E+00 1.64827848E-02-5.56208397E-06 9.43126364E-10-6.35802263E-14 2 + 3.32941157E+04-6.00339957E+00 2.92156480E+00 1.88274652E-02 1.00444412E-05 3 +-2.37783426E-08 1.01241167E-11 3.44771699E+04 1.31301921E+01 4 ! Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsH) + group(Cs-CsHHH) + group(Cds-CdsCsH) + group(Cds-CdsCsH) + ring(Cyclopropene) + ! radical(Isobutyl) -C4H5(427) H 5C 4 G 100.000 5000.000 922.38 1 - 7.72008711E+00 1.42823467E-02-4.41419264E-06 7.16687142E-10-4.76715229E-14 2 - 5.22310919E+04-1.47165414E+01 2.73383288E+00 2.27301748E-02 3.27418653E-06 3 --2.03265543E-08 9.85321809E-12 5.37114176E+04 1.19746048E+01 4 +C4H5(185) C 4H 5 G 100.000 5000.000 922.39 1 + 7.72013271E+00 1.42822671E-02-4.41414586E-06 7.16675938E-10-4.76705841E-14 2 + 5.22310734E+04-1.47167968E+01 2.73381733E+00 2.27303683E-02 3.27346179E-06 3 +-2.03255440E-08 9.85275484E-12 5.37114183E+04 1.19746599E+01 4 END @@ -213,632 +221,672 @@ END REACTIONS KCAL/MOLE MOLES -! Reaction index: Chemkin #1; RMG #1 +! Reaction index: Chemkin #1; RMG #2 ! Template reaction: R_Recombination -! Flux pairs: CH3(2), ethane(1); CH3(2), ethane(1); +! Flux pairs: CH3(4), ethane(1); CH3(4), ethane(1); ! Matched reaction 9 CH3 + CH3 <=> C2H6 in R_Recombination/training -! This reaction matched rate rule [C_methyl;C_methyl] +! This reaction matched rate rule [Root_N-1R->H_N-1CClNOSSi->N_N-1COS->O_1CS->C_N-1C-inRing] ! family: R_Recombination -CH3(2)+CH3(2)=ethane(1) 9.450000e+14 -0.538 0.135 +CH3(4)+CH3(4)=ethane(1) 9.450000e+14 -0.538 0.135 ! Reaction index: Chemkin #2; RMG #5 ! Template reaction: H_Abstraction -! Flux pairs: CH3(2), CH4(6); ethane(1), C2H5(3); +! Flux pairs: CH3(4), CH4(3); ethane(1), C2H5(5); ! Matched reaction 215 C2H6 + CH3_r3 <=> C2H5b + CH4 in H_Abstraction/training ! This reaction matched rate rule [C/H3/Cs\H3;C_methyl] ! family: H_Abstraction -CH3(2)+ethane(1)=C2H5(3)+CH4(6) 3.500000e+01 3.440 10.384 +CH3(4)+ethane(1)=CH4(3)+C2H5(5) 3.500000e+01 3.440 10.384 -! Reaction index: Chemkin #3; RMG #2 +! Reaction index: Chemkin #3; RMG #3 ! Template reaction: R_Recombination -! Flux pairs: C2H5(3), ethane(1); H(4), ethane(1); +! Flux pairs: C2H5(5), ethane(1); H(6), ethane(1); ! Matched reaction 58 H + C2H5 <=> C2H6-2 in R_Recombination/training -! This reaction matched rate rule [C_rad/H2/Cs;H_rad] +! This reaction matched rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_N-Sp-3R!H=2C_3R!H->C_Sp-3C-2C] ! family: R_Recombination -H(4)+C2H5(3)=ethane(1) 1.000000e+14 0.000 0.000 +H(6)+C2H5(5)=ethane(1) 1.000000e+14 0.000 0.000 +DUPLICATE -! Reaction index: Chemkin #4; RMG #18 +! Reaction index: Chemkin #4; RMG #12 ! Template reaction: R_Recombination -! Flux pairs: CH3(2), CH4(6); H(4), CH4(6); +! Flux pairs: CH3(4), CH4(3); H(6), CH4(3); ! Matched reaction 57 H + CH3 <=> CH4 in R_Recombination/training -! This reaction matched rate rule [C_methyl;H_rad] +! This reaction matched rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C] +! family: R_Recombination +H(6)+CH3(4)=CH4(3) 1.930000e+14 0.000 0.270 + +! Reaction index: Chemkin #5; RMG #24 +! Template reaction: R_Recombination +! Flux pairs: H(6), ethane(1); C2H5(5), ethane(1); +! Matched reaction 58 H + C2H5 <=> C2H6-2 in R_Recombination/training +! This reaction matched rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_N-Sp-3R!H=2C_3R!H->C_Sp-3C-2C] ! family: R_Recombination -H(4)+CH3(2)=CH4(6) 1.930000e+14 0.000 0.270 +H(6)+C2H5(5)=ethane(1) 1.000000e+14 0.000 0.000 +DUPLICATE -! Reaction index: Chemkin #5; RMG #7 +! Reaction index: Chemkin #6; RMG #9 ! Template reaction: R_Addition_MultipleBond -! Flux pairs: C2H4(8), C2H5(3); H(4), C2H5(3); +! Flux pairs: C2H4(9), C2H5(5); H(6), C2H5(5); ! Matched reaction 2541 H + C2H4 <=> C2H5-2 in R_Addition_MultipleBond/training ! This reaction matched rate rule [Cds-HH_Cds-HH;HJ] ! family: R_Addition_MultipleBond -C2H4(8)+H(4)=C2H5(3) 4.620000e+08 1.640 1.010 +H(6)+C2H4(9)=C2H5(5) 4.620000e+08 1.640 1.010 -! Reaction index: Chemkin #6; RMG #11 +! Reaction index: Chemkin #7; RMG #13 ! Template reaction: Disproportionation -! Flux pairs: C2H5(3), C2H4(8); CH3(2), CH4(6); +! Flux pairs: C2H5(5), C2H4(9); CH3(4), CH4(3); ! Matched reaction 5 CH3 + C2H5 <=> CH4 + C2H4 in Disproportionation/training ! This reaction matched rate rule [C_methyl;Cmethyl_Csrad] ! family: Disproportionation -C2H5(3)+CH3(2)=C2H4(8)+CH4(6) 6.570000e+14 -0.680 0.000 +CH3(4)+C2H5(5)=CH4(3)+C2H4(9) 6.570000e+14 -0.680 0.000 -! Reaction index: Chemkin #7; RMG #15 +! Reaction index: Chemkin #8; RMG #17 ! Template reaction: Disproportionation -! Flux pairs: C2H5(3), C2H4(8); C2H5(3), ethane(1); +! Flux pairs: C2H5(5), C2H4(9); C2H5(5), ethane(1); ! Matched reaction 6 C2H5 + C2H5-2 <=> C2H6 + C2H4 in Disproportionation/training ! This reaction matched rate rule [C_rad/H2/Cs;Cmethyl_Csrad] ! family: Disproportionation -C2H5(3)+C2H5(3)=C2H4(8)+ethane(1) 6.900000e+13 -0.350 0.000 +C2H5(5)+C2H5(5)=C2H4(9)+ethane(1) 6.900000e+13 -0.350 0.000 -! Reaction index: Chemkin #8; RMG #20 +! Reaction index: Chemkin #9; RMG #20 ! Template reaction: H_Abstraction -! Flux pairs: H(4), H2(13); ethane(1), C2H5(3); +! Flux pairs: H(6), H2(11); ethane(1), C2H5(5); ! Matched reaction 210 C2H6 + H <=> C2H5b + H2_p in H_Abstraction/training ! This reaction matched rate rule [C/H3/Cs\H3;H_rad] ! family: H_Abstraction -H(4)+ethane(1)=C2H5(3)+H2(13) 1.150000e+08 1.900 7.530 +H(6)+ethane(1)=H2(11)+C2H5(5) 1.150000e+08 1.900 7.530 -! Reaction index: Chemkin #9; RMG #22 +! Reaction index: Chemkin #10; RMG #22 ! Template reaction: Disproportionation -! Flux pairs: C2H5(3), C2H4(8); H(4), H2(13); +! Flux pairs: C2H5(5), C2H4(9); H(6), H2(11); ! Matched reaction 4 H + C2H5 <=> H2 + C2H4 in Disproportionation/training ! This reaction matched rate rule [H_rad;Cmethyl_Csrad] ! family: Disproportionation -H(4)+C2H5(3)=C2H4(8)+H2(13) 1.083000e+13 0.000 0.000 +H(6)+C2H5(5)=H2(11)+C2H4(9) 1.083000e+13 0.000 0.000 -! Reaction index: Chemkin #10; RMG #24 +! Reaction index: Chemkin #11; RMG #25 ! Template reaction: H_Abstraction -! Flux pairs: H(4), H2(13); CH4(6), CH3(2); +! Flux pairs: H(6), H2(11); CH4(3), CH3(4); ! Matched reaction 186 CH4b + H <=> CH3_p1 + H2_p in H_Abstraction/training ! This reaction matched rate rule [C_methane;H_rad] ! family: H_Abstraction -H(4)+CH4(6)=CH3(2)+H2(13) 4.100000e+03 3.156 8.755 +H(6)+CH4(3)=H2(11)+CH3(4) 4.100000e+03 3.156 8.755 -! Reaction index: Chemkin #11; RMG #25 +! Reaction index: Chemkin #12; RMG #26 ! Template reaction: R_Recombination -! Flux pairs: H(4), H2(13); H(4), H2(13); +! Flux pairs: H(6), H2(11); H(6), H2(11); ! Matched reaction 56 H + H <=> H2 in R_Recombination/training -! This reaction matched rate rule [H_rad;H_rad] +! This reaction matched rate rule [Root_1R->H_N-2R-inRing_2R->H] ! family: R_Recombination -H(4)+H(4)=H2(13) 5.450000e+10 0.000 1.500 +H(6)+H(6)=H2(11) 5.450000e+10 0.000 1.500 -! Reaction index: Chemkin #12; RMG #26 +! Reaction index: Chemkin #13; RMG #31 +! Template reaction: R_Addition_MultipleBond +! Flux pairs: CH3(4), C3H7(16); C2H4(9), C3H7(16); +! Matched reaction 219 CH3 + C2H4 <=> C3H7 in R_Addition_MultipleBond/training +! This reaction matched rate rule [Cds-HH_Cds-HH;CsJ-HHH] +! family: R_Addition_MultipleBond +CH3(4)+C2H4(9)=C3H7(16) 4.180000e+04 2.410 5.630 + +! Reaction index: Chemkin #14; RMG #27 ! Template reaction: R_Recombination -! Flux pairs: C2H3(14), C2H4(8); H(4), C2H4(8); +! Flux pairs: C2H3(14), C2H4(9); H(6), C2H4(9); ! Matched reaction 60 H + C2H3 <=> C2H4 in R_Recombination/training -! This reaction matched rate rule [Cd_pri_rad;H_rad] +! This reaction matched rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_Sp-3R!H=2C_3R!H->C] ! family: R_Recombination -C2H3(14)+H(4)=C2H4(8) 1.210000e+14 0.000 0.000 +H(6)+C2H3(14)=C2H4(9) 1.210000e+14 0.000 0.000 -! Reaction index: Chemkin #13; RMG #30 +! Reaction index: Chemkin #15; RMG #30 ! Template reaction: H_Abstraction -! Flux pairs: CH4(6), CH3(2); C2H3(14), C2H4(8); +! Flux pairs: CH4(3), CH3(4); C2H3(14), C2H4(9); ! Matched reaction 843 C2H3 + CH4b <=> C2H4 + CH3_p23 in H_Abstraction/training ! This reaction matched rate rule [Cd/H2/NonDeC;C_methyl] ! family: H_Abstraction -C2H3(14)+CH4(6)=C2H4(8)+CH3(2) 2.236000e-02 4.340 5.700 +CH4(3)+C2H3(14)=CH3(4)+C2H4(9) 2.236000e-02 4.340 5.700 -! Reaction index: Chemkin #14; RMG #34 +! Reaction index: Chemkin #16; RMG #34 ! Template reaction: H_Abstraction -! Flux pairs: ethane(1), C2H5(3); C2H3(14), C2H4(8); +! Flux pairs: ethane(1), C2H5(5); C2H3(14), C2H4(9); ! Matched reaction 775 C2H3 + C2H6 <=> C2H4 + C2H5 in H_Abstraction/training ! This reaction matched rate rule [Cd/H2/NonDeC;C_rad/H2/Cs\H3] ! family: H_Abstraction -C2H3(14)+ethane(1)=C2H4(8)+C2H5(3) 1.080000e-03 4.550 3.500 +C2H3(14)+ethane(1)=C2H4(9)+C2H5(5) 1.080000e-03 4.550 3.500 -! Reaction index: Chemkin #15; RMG #35 +! Reaction index: Chemkin #17; RMG #36 ! Template reaction: H_Abstraction -! Flux pairs: H(4), H2(13); C2H4(8), C2H3(14); +! Flux pairs: H(6), H2(11); C2H4(9), C2H3(14); ! Matched reaction 217 C2H4 + H <=> C2H3_p + H2_p in H_Abstraction/training ! This reaction matched rate rule [Cd/H2/NonDeC;H_rad] ! family: H_Abstraction -C2H4(8)+H(4)=C2H3(14)+H2(13) 2.400000e+02 3.620 11.266 +H(6)+C2H4(9)=H2(11)+C2H3(14) 2.400000e+02 3.620 11.266 -! Reaction index: Chemkin #16; RMG #36 +! Reaction index: Chemkin #18; RMG #39 ! Template reaction: Disproportionation -! Flux pairs: C2H3(14), C2H4(8); C2H5(3), C2H4(8); +! Flux pairs: C2H3(14), C2H4(9); C2H5(5), C2H4(9); ! Matched reaction 11 C2H3-2 + C2H5 <=> C2H4-2 + C2H4 in Disproportionation/training ! This reaction matched rate rule [Cd_pri_rad;Cmethyl_Csrad] ! family: Disproportionation -C2H3(14)+C2H5(3)=C2H4(8)+C2H4(8) 4.560000e+14 -0.700 0.000 +C2H3(14)+C2H5(5)=C2H4(9)+C2H4(9) 4.560000e+14 -0.700 0.000 -! Reaction index: Chemkin #17; RMG #39 +! Reaction index: Chemkin #19; RMG #55 ! Template reaction: R_Addition_MultipleBond -! Flux pairs: C#C(20), C2H3(14); H(4), C2H3(14); +! Flux pairs: C#C(27), C2H3(14); H(6), C2H3(14); ! Matched reaction 2697 H + C2H2 <=> C2H3-2 in R_Addition_MultipleBond/training ! This reaction matched rate rule [Ct-H_Ct-H;HJ] ! family: R_Addition_MultipleBond -C#C(20)+H(4)=C2H3(14) 1.030000e+09 1.640 2.110 +H(6)+C#C(27)=C2H3(14) 1.030000e+09 1.640 2.110 -! Reaction index: Chemkin #18; RMG #43 +! Reaction index: Chemkin #20; RMG #66 ! Template reaction: Disproportionation -! Flux pairs: C2H3(14), C#C(20); CH3(2), CH4(6); -! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [C_methyl;Cds/H2_d_Crad] -! Euclidian distance = 2.2360679775 +! Flux pairs: C2H5(5), ethane(1); C2H3(14), C#C(27); +! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [C_rad/H2/Cs;Cds/H2_d_Crad] +! Euclidian distance = 3.1622776601683795 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C2H3(14)+CH3(2)=C#C(20)+CH4(6) 8.204641e+06 1.877 -1.115 +C2H3(14)+C2H5(5)=C#C(27)+ethane(1) 8.204641e+06 1.877 -1.115 -! Reaction index: Chemkin #19; RMG #49 +! Reaction index: Chemkin #21; RMG #74 ! Template reaction: Disproportionation -! Flux pairs: C2H3(14), C#C(20); C2H5(3), ethane(1); -! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [C_rad/H2/Cs;Cds/H2_d_Crad] -! Euclidian distance = 3.16227766017 +! Flux pairs: CH3(4), CH4(3); C2H3(14), C#C(27); +! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [C_methyl;Cds/H2_d_Crad] +! Euclidian distance = 2.23606797749979 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C2H3(14)+C2H5(3)=C#C(20)+ethane(1) 8.204641e+06 1.877 -1.115 +CH3(4)+C2H3(14)=CH4(3)+C#C(27) 8.204641e+06 1.877 -1.115 -! Reaction index: Chemkin #20; RMG #57 +! Reaction index: Chemkin #22; RMG #77 ! Template reaction: Disproportionation -! Flux pairs: C2H3(14), C#C(20); H(4), H2(13); -! Estimated using template [H_rad;Cds/H2_d_Rrad] for rate rule [H_rad;Cds/H2_d_Crad] -! Euclidian distance = 1.0 +! Flux pairs: C2H3(14), C#C(27); C2H3(14), C2H4(9); +! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [Cd_pri_rad;Cds/H2_d_Crad] +! Euclidian distance = 2.23606797749979 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C2H3(14)+H(4)=C#C(20)+H2(13) 6.788225e+08 1.500 -0.890 +C2H3(14)+C2H3(14)=C#C(27)+C2H4(9) 8.204641e+06 1.877 -1.115 -! Reaction index: Chemkin #21; RMG #65 +! Reaction index: Chemkin #23; RMG #79 ! Template reaction: Disproportionation -! Flux pairs: C2H3(14), C#C(20); C2H3(14), C2H4(8); -! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [Cd_pri_rad;Cds/H2_d_Crad] -! Euclidian distance = 2.2360679775 +! Flux pairs: H(6), H2(11); C2H3(14), C#C(27); +! Estimated using template [H_rad;Cds/H2_d_Rrad] for rate rule [H_rad;Cds/H2_d_Crad] +! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C2H3(14)+C2H3(14)=C#C(20)+C2H4(8) 8.204641e+06 1.877 -1.115 +H(6)+C2H3(14)=H2(11)+C#C(27) 6.788225e+08 1.500 -0.890 -! Reaction index: Chemkin #22; RMG #72 +! Reaction index: Chemkin #24; RMG #65 ! Template reaction: Singlet_Carbene_Intra_Disproportionation -! Flux pairs: C2H2(28), C#C(20); +! Flux pairs: C2H2(31), C#C(27); ! Estimated using template [singletcarbene_CH;singletcarbene;CH] for rate rule [CdJ2=C;CdJ2;CdH2] -! Euclidian distance = 1.73205080757 +! Euclidian distance = 1.7320508075688772 ! Multiplied by reaction path degeneracy 2.0 ! family: Singlet_Carbene_Intra_Disproportionation -C2H2(28)=C#C(20) 1.599708e+13 -0.202 8.145 +C2H2(31)=C#C(27) 1.599708e+13 -0.202 8.145 -! Reaction index: Chemkin #23; RMG #29 +! Reaction index: Chemkin #25; RMG #62 ! Template reaction: R_Addition_MultipleBond -! Flux pairs: CH3(2), C3H7(16); C2H4(8), C3H7(16); -! Matched reaction 219 CH3 + C2H4 <=> C3H7 in R_Addition_MultipleBond/training -! This reaction matched rate rule [Cds-HH_Cds-HH;CsJ-HHH] -! family: R_Addition_MultipleBond -C2H4(8)+CH3(2)=C3H7(16) 4.180000e+04 2.410 5.630 - -! Reaction index: Chemkin #24; RMG #63 -! Template reaction: R_Addition_MultipleBond -! Flux pairs: C2H3(14), C4H7(25); C2H4(8), C4H7(25); +! Flux pairs: C2H3(14), C4H7(29); C2H4(9), C4H7(29); ! Matched reaction 234 C2H3 + C2H4 <=> C4H7-3 in R_Addition_MultipleBond/training ! This reaction matched rate rule [Cds-HH_Cds-HH;CdsJ-H] ! family: R_Addition_MultipleBond -C2H3(14)+C2H4(8)=C4H7(25) 2.860000e+04 2.410 1.800 +C2H3(14)+C2H4(9)=C4H7(29) 2.860000e+04 2.410 1.800 -! Reaction index: Chemkin #25; RMG #141 +! Reaction index: Chemkin #26; RMG #91 ! Template reaction: Intra_R_Add_Exocyclic -! Flux pairs: C4H7(25), C4H7(44); -! Matched reaction 100 C4H7 <=> C4H7-2 in Intra_R_Add_Exocyclic/training +! Flux pairs: C4H7(29), C4H7(41); +! Matched reaction 335 C4H7 <=> C4H7-2 in Intra_R_Add_Exocyclic/training ! This reaction matched rate rule [R4_S_D;doublebond_intra_2H_pri;radadd_intra_cs2H] ! family: Intra_R_Add_Exocyclic -C4H7(25)=C4H7(44) 3.840000e+10 0.210 8.780 +C4H7(29)=C4H7(41) 6.320000e+08 0.970 8.900 -! Reaction index: Chemkin #26; RMG #78 +! Reaction index: Chemkin #27; RMG #73 ! Template reaction: R_Addition_MultipleBond -! Flux pairs: C2H5(3), C4H7(30); C#C(20), C4H7(30); +! Flux pairs: C2H5(5), C4H7(33); C#C(27), C4H7(33); ! Matched reaction 2254 C2H2 + C2H5 <=> C4H7-6 in R_Addition_MultipleBond/training ! This reaction matched rate rule [Ct-H_Ct-H;CsJ-CsHH] ! family: R_Addition_MultipleBond -C#C(20)+C2H5(3)=C4H7(30) 1.360000e+04 2.410 6.200 +C#C(27)+C2H5(5)=C4H7(33) 1.360000e+04 2.410 6.200 -! Reaction index: Chemkin #27; RMG #145 +! Reaction index: Chemkin #28; RMG #99 ! Template reaction: intra_H_migration -! Flux pairs: C4H7(30), C4H7(25); +! Flux pairs: C4H7(33), C4H7(29); ! Estimated using template [R4H_DSS;Cd_rad_out_singleH;Cs_H_out] for rate rule [R4H_DSS;Cd_rad_out_singleH;Cs_H_out_2H] ! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 3.0 ! family: intra_H_migration -C4H7(30)=C4H7(25) 1.113000e+05 2.230 10.590 +C4H7(33)=C4H7(29) 1.113000e+05 2.230 10.590 -! Reaction index: Chemkin #28; RMG #143 +! Reaction index: Chemkin #29; RMG #97 ! Template reaction: intra_H_migration -! Flux pairs: C4H7(25), C4H7(45); +! Flux pairs: C4H7(29), C4H7(45); ! Matched reaction 84 C:CC[CH2] <=> C:C[CH]C in intra_H_migration/training ! This reaction matched rate rule [R2H_S;C_rad_out_2H;Cs_H_out_H/Cd] ! family: intra_H_migration -C4H7(25)=C4H7(45) 1.720000e+06 1.990 27.200 +C4H7(29)=C4H7(45) 1.720000e+06 1.990 27.200 -! Reaction index: Chemkin #29; RMG #347 +! Reaction index: Chemkin #30; RMG #146 ! Template reaction: intra_H_migration -! Flux pairs: C4H7(30), C4H7(45); +! Flux pairs: C4H7(33), C4H7(45); ! Matched reaction 194 C4H7-4 <=> C4H7-5 in intra_H_migration/training ! This reaction matched rate rule [R3H_DS;Cd_rad_out_singleH;Cs_H_out_H/NonDeC] ! family: intra_H_migration -C4H7(30)=C4H7(45) 1.846000e+10 0.740 34.700 - -! Reaction index: Chemkin #30; RMG #70 -! Template reaction: R_Recombination -! Flux pairs: C2H3(14), C4H6(26); C2H3(14), C4H6(26); -! Matched reaction 89 C2H3 + C2H3 <=> C4H6-4 in R_Recombination/training -! This reaction matched rate rule [Cd_pri_rad;Cd_pri_rad] -! family: R_Recombination -C2H3(14)+C2H3(14)=C4H6(26) 3.615000e+13 0.000 0.000 +C4H7(33)=C4H7(45) 1.846000e+10 0.740 34.700 -! Reaction index: Chemkin #31; RMG #142 +! Reaction index: Chemkin #31; RMG #92 ! Template reaction: R_Addition_MultipleBond -! Flux pairs: C4H6(26), C4H7(25); H(4), C4H7(25); +! Flux pairs: C4H6(42), C4H7(29); H(6), C4H7(29); ! Matched reaction 2580 H + C4H6-2 <=> C4H7-11 in R_Addition_MultipleBond/training ! This reaction matched rate rule [Cds-CdH_Cds-HH;HJ] ! family: R_Addition_MultipleBond -H(4)+C4H6(26)=C4H7(25) 3.240000e+08 1.640 2.400 +H(6)+C4H6(42)=C4H7(29) 3.240000e+08 1.640 2.400 -! Reaction index: Chemkin #32; RMG #157 -! Template reaction: Disproportionation -! Flux pairs: C4H7(25), C4H6(26); CH3(2), CH4(6); -! Estimated using template [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] for rate rule [C_methyl;C/H2/Cd_Csrad] -! Euclidian distance = 3.0 -! Multiplied by reaction path degeneracy 2.0 -! family: Disproportionation -C4H7(25)+CH3(2)=CH4(6)+C4H6(26) 2.000000e+10 0.000 0.000 +! Reaction index: Chemkin #32; RMG #160 +! Template reaction: R_Addition_MultipleBond +! Flux pairs: C4H6(42), C4H7(45); H(6), C4H7(45); +! Matched reaction 2544 H + C4H6 <=> C4H7-9 in R_Addition_MultipleBond/training +! This reaction matched rate rule [Cds-HH_Cds-CdH;HJ] +! family: R_Addition_MultipleBond +H(6)+C4H6(42)=C4H7(45) 4.620000e+08 1.640 -0.470 -! Reaction index: Chemkin #33; RMG #167 +! Reaction index: Chemkin #33; RMG #213 +! Template reaction: R_Recombination +! Flux pairs: C2H3(14), C4H6(42); C2H3(14), C4H6(42); +! Matched reaction 89 C2H3 + C2H3 <=> C4H6-4 in R_Recombination/training +! This reaction matched rate rule [Root_N-1R->H_N-1CClNOSSi->N_N-1COS->O_1CS->C_N-1C-inRing_Ext-2R-R_N-Sp-3R!H-2R_N-3R!H->O_N-Sp-3CCSS#2R_Ext-1C-R] +! family: R_Recombination +C2H3(14)+C2H3(14)=C4H6(42) 3.615000e+13 0.000 0.000 + +! Reaction index: Chemkin #34; RMG #218 ! Template reaction: Disproportionation -! Flux pairs: C4H7(25), C4H6(26); C2H5(3), ethane(1); +! Flux pairs: C2H5(5), ethane(1); C4H7(29), C4H6(42); ! Estimated using template [C_rad/H2/Cs;Cpri_Rrad] for rate rule [C_rad/H2/Cs;C/H2/Cd_Csrad] ! Euclidian distance = 3.0 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C4H7(25)+C2H5(3)=C4H6(26)+ethane(1) 2.900000e+12 0.000 0.000 +C2H5(5)+C4H7(29)=ethane(1)+C4H6(42) 2.900000e+12 0.000 0.000 -! Reaction index: Chemkin #34; RMG #183 +! Reaction index: Chemkin #35; RMG #219 ! Template reaction: Disproportionation -! Flux pairs: C4H7(25), C4H6(26); H(4), H2(13); -! Estimated using template [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] for rate rule [H_rad;C/H2/Cd_Csrad] -! Euclidian distance = 2.0 -! Multiplied by reaction path degeneracy 2.0 +! Estimated using template [C_rad/H2/Cs;Cmethyl_Csrad] for rate rule [C_rad/H2/Cs;Cmethyl_Csrad/H/Cd] +! Euclidian distance = 1.0 +! Multiplied by reaction path degeneracy 3.0 ! family: Disproportionation -C4H7(25)+H(4)=H2(13)+C4H6(26) 2.000000e+10 0.000 0.000 +C2H5(5)+C4H7(45)=ethane(1)+C4H6(42) 6.900000e+13 -0.350 0.000 -! Reaction index: Chemkin #35; RMG #205 +! Reaction index: Chemkin #36; RMG #234 ! Template reaction: Disproportionation -! Flux pairs: C4H7(25), C4H6(26); C2H3(14), C2H4(8); -! Estimated using average of templates [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] + [Cd_pri_rad;Cpri_Rrad] for rate rule [Cd_pri_rad;C/H2/Cd_Csrad] +! Flux pairs: CH3(4), CH4(3); C4H7(29), C4H6(42); +! Estimated using template [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] for rate rule [C_methyl;C/H2/Cd_Csrad] ! Euclidian distance = 3.0 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C2H3(14)+C4H7(25)=C2H4(8)+C4H6(26) 2.200000e+11 0.000 0.000 - -! Reaction index: Chemkin #36; RMG #485 -! Template reaction: R_Addition_MultipleBond -! Flux pairs: C4H6(26), C4H7(45); H(4), C4H7(45); -! Matched reaction 2544 H + C4H6 <=> C4H7-9 in R_Addition_MultipleBond/training -! This reaction matched rate rule [Cds-HH_Cds-CdH;HJ] -! family: R_Addition_MultipleBond -H(4)+C4H6(26)=C4H7(45) 4.620000e+08 1.640 -0.470 +CH3(4)+C4H7(29)=CH4(3)+C4H6(42) 2.000000e+10 0.000 0.000 -! Reaction index: Chemkin #37; RMG #502 +! Reaction index: Chemkin #37; RMG #235 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(26); CH3(2), CH4(6); ! Estimated using template [Cs_rad;Cmethyl_Csrad/H/Cd] for rate rule [C_methyl;Cmethyl_Csrad/H/Cd] ! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 3.0 ! family: Disproportionation -C4H7(45)+CH3(2)=CH4(6)+C4H6(26) 1.500000e+11 0.000 0.000 +CH3(4)+C4H7(45)=CH4(3)+C4H6(42) 1.500000e+11 0.000 0.000 -! Reaction index: Chemkin #38; RMG #519 +! Reaction index: Chemkin #38; RMG #243 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(26); C2H5(3), ethane(1); -! Estimated using template [C_rad/H2/Cs;Cmethyl_Csrad] for rate rule [C_rad/H2/Cs;Cmethyl_Csrad/H/Cd] -! Euclidian distance = 1.0 -! Multiplied by reaction path degeneracy 3.0 +! Flux pairs: C2H3(14), C4H6(42); C4H7(29), C2H4(9); +! Estimated using average of templates [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] + [Cd_pri_rad;Cpri_Rrad] for rate rule [Cd_pri_rad;C/H2/Cd_Csrad] +! Euclidian distance = 3.0 +! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C4H7(45)+C2H5(3)=C4H6(26)+ethane(1) 6.900000e+13 -0.350 0.000 +C2H3(14)+C4H7(29)=C2H4(9)+C4H6(42) 2.200000e+11 0.000 0.000 -! Reaction index: Chemkin #39; RMG #537 +! Reaction index: Chemkin #39; RMG #244 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(26); H(4), H2(13); -! Estimated using average of templates [Y_rad;Cmethyl_Csrad/H/Cd] + [H_rad;Cmethyl_Csrad] for rate rule [H_rad;Cmethyl_Csrad/H/Cd] +! Estimated using template [Cd_pri_rad;Cmethyl_Csrad] for rate rule [Cd_pri_rad;Cmethyl_Csrad/H/Cd] ! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 3.0 ! family: Disproportionation -C4H7(45)+H(4)=H2(13)+C4H6(26) 1.274559e+12 0.000 0.000 +C2H3(14)+C4H7(45)=C2H4(9)+C4H6(42) 4.560000e+14 -0.700 0.000 -! Reaction index: Chemkin #40; RMG #580 +! Reaction index: Chemkin #40; RMG #247 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(26); C2H3(14), C2H4(8); -! Estimated using template [Cd_pri_rad;Cmethyl_Csrad] for rate rule [Cd_pri_rad;Cmethyl_Csrad/H/Cd] +! Flux pairs: H(6), H2(11); C4H7(29), C4H6(42); +! Estimated using template [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] for rate rule [H_rad;C/H2/Cd_Csrad] +! Euclidian distance = 2.0 +! Multiplied by reaction path degeneracy 2.0 +! family: Disproportionation +H(6)+C4H7(29)=H2(11)+C4H6(42) 2.000000e+10 0.000 0.000 + +! Reaction index: Chemkin #41; RMG #248 +! Template reaction: Disproportionation +! Estimated using average of templates [Y_rad;Cmethyl_Csrad/H/Cd] + [H_rad;Cmethyl_Csrad] for rate rule [H_rad;Cmethyl_Csrad/H/Cd] ! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 3.0 ! family: Disproportionation -C4H7(45)+C2H3(14)=C2H4(8)+C4H6(26) 4.560000e+14 -0.700 0.000 +H(6)+C4H7(45)=H2(11)+C4H6(42) 1.274559e+12 0.000 0.000 -! Reaction index: Chemkin #41; RMG #782 +! Reaction index: Chemkin #42; RMG #209 ! Template reaction: Intra_2+2_cycloaddition_Cd -! Flux pairs: C4H6(26), C4H6(205); +! Flux pairs: C4H6(42), C4H6(88); ! Estimated using template [1,3-butadiene_backbone;C=C_1;C=C_2] for rate rule [1,3-butadiene_backbone;CdH2_1;CdH2_2] -! Euclidian distance = 1.41421356237 +! Euclidian distance = 1.4142135623730951 ! family: Intra_2+2_cycloaddition_Cd -C4H6(26)=C4H6(205) 4.999980e+11 0.056 29.257 +C4H6(42)=C4H6(88) 4.999980e+11 0.056 29.257 -! Reaction index: Chemkin #42; RMG #147 +! Reaction index: Chemkin #43; RMG #94 ! Template reaction: R_Recombination -! Flux pairs: C4H6(47), C4H7(25); H(4), C4H7(25); -! Estimated using an average for rate rule [Y_rad;H_rad] +! Flux pairs: C4H6(43), C4H7(29); H(6), C4H7(29); +! BM rule fitted to 2 training reactions at node Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_N- +! Sp-3R!H=2C_3R!H->C_Sp-3C-2C_Ext-3C-R_Sp-4R!H=3C_N-3C-inRing +! Total Standard Deviation in ln(k): 11.5401827615 +! Exact match found for rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_N- +! Sp-3R!H=2C_3R!H->C_Sp-3C-2C_Ext-3C-R_Sp-4R!H=3C_N-3C-inRing] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 2.0 ! family: R_Recombination -C4H6(47)+H(4)=C4H7(25) 8.636828e+12 0.280 -0.325 +H(6)+C4H6(43)=C4H7(29) 3.251960e+13 0.255 0.000 -! Reaction index: Chemkin #43; RMG #193 +! Reaction index: Chemkin #44; RMG #107 ! Template reaction: Disproportionation ! From training reaction 5 used for Y_rad;Cmethyl_Csrad ! Exact match found for rate rule [Y_rad;Cmethyl_Csrad] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 6.0 ! family: Disproportionation -C4H6(47)+C2H5(3)=C4H7(25)+C2H4(8) 1.314000e+15 -0.680 0.000 +C2H5(5)+C4H6(43)=C2H4(9)+C4H7(29) 1.314000e+15 -0.680 0.000 -! Reaction index: Chemkin #44; RMG #226 +! Reaction index: Chemkin #45; RMG #120 ! Template reaction: Disproportionation ! Estimated using average of templates [Y_rad_birad_trirad_quadrad;Cds/H2_d_Crad] + [Y_rad;Cds/H2_d_Rrad] for rate rule [Y_rad;Cds/H2_d_Crad] ! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 4.0 ! family: Disproportionation -C4H6(47)+C2H3(14)=C4H7(25)+C#C(20) 4.131060e+11 0.309 1.097 +C2H3(14)+C4H6(43)=C#C(27)+C4H7(29) 4.131060e+11 0.309 1.097 -! Reaction index: Chemkin #45; RMG #477 +! Reaction index: Chemkin #46; RMG #154 ! Template reaction: R_Recombination -! Flux pairs: C4H6(47), C4H7(45); H(4), C4H7(45); -! From training reaction 15 used for C_rad/H2/Cd;H_rad -! Exact match found for rate rule [C_rad/H2/Cd;H_rad] +! Flux pairs: C4H6(43), C4H7(45); H(6), C4H7(45); +! BM rule fitted to 2 training reactions at node Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_N- +! Sp-3R!H=2C_3R!H->C_Sp-3C-2C_Ext-3C-R_Sp-4R!H=3C_N-3C-inRing +! Total Standard Deviation in ln(k): 11.5401827615 +! Exact match found for rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_N- +! Sp-3R!H=2C_3R!H->C_Sp-3C-2C_Ext-3C-R_Sp-4R!H=3C_N-3C-inRing] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 2.0 ! family: R_Recombination -C4H6(47)+H(4)=C4H7(45) 6.312000e+12 0.461 -0.001 +H(6)+C4H6(43)=C4H7(45) 3.251960e+13 0.255 0.000 -! Reaction index: Chemkin #46; RMG #543 +! Reaction index: Chemkin #47; RMG #179 ! Template reaction: Disproportionation ! From training reaction 7 used for C_rad/H2/Cd;Cmethyl_Csrad ! Exact match found for rate rule [C_rad/H2/Cd;Cmethyl_Csrad] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 6.0 ! family: Disproportionation -C4H6(47)+C2H5(3)=C4H7(45)+C2H4(8) 1.374000e+14 -0.350 -0.130 +C2H5(5)+C4H6(43)=C2H4(9)+C4H7(45) 1.374000e+14 -0.350 -0.130 -! Reaction index: Chemkin #47; RMG #591 +! Reaction index: Chemkin #48; RMG #200 ! Template reaction: Disproportionation ! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [C_rad/H2/Cd;Cds/H2_d_Crad] -! Euclidian distance = 3.16227766017 +! Euclidian distance = 3.1622776601683795 ! Multiplied by reaction path degeneracy 4.0 ! family: Disproportionation -C4H6(47)+C2H3(14)=C4H7(45)+C#C(20) 1.640928e+07 1.877 -1.115 - -! Reaction index: Chemkin #48; RMG #835 -! Template reaction: Disproportionation -! Estimated using template [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] for rate rule [Y_rad;C/H2/Cd_Csrad] -! Euclidian distance = 1.0 -! Multiplied by reaction path degeneracy 4.0 -! family: Disproportionation -C4H6(47)+C4H7(25)=C4H7(25)+C4H6(26) 4.000000e+10 0.000 0.000 - -! Reaction index: Chemkin #49; RMG #836 -! Template reaction: Disproportionation -! Estimated using an average for rate rule [Y_rad;Cmethyl_Csrad/H/Cd] -! Euclidian distance = 0 -! Multiplied by reaction path degeneracy 6.0 -! family: Disproportionation -C4H6(47)+C4H7(45)=C4H7(25)+C4H6(26) 3.000000e+11 0.000 0.000 +C2H3(14)+C4H6(43)=C#C(27)+C4H7(45) 1.640928e+07 1.877 -1.115 -! Reaction index: Chemkin #50; RMG #882 +! Reaction index: Chemkin #49; RMG #275 ! Template reaction: Disproportionation ! Estimated using template [C_rad/H2/Cd;Cpri_Rrad] for rate rule [C_rad/H2/Cd;C/H2/Cd_Csrad] ! Euclidian distance = 3.0 ! Multiplied by reaction path degeneracy 4.0 ! family: Disproportionation -C4H6(47)+C4H7(25)=C4H7(45)+C4H6(26) 5.800000e+12 0.000 -0.130 +C4H6(43)+C4H7(29)=C4H6(42)+C4H7(45) 5.800000e+12 0.000 -0.130 -! Reaction index: Chemkin #51; RMG #883 +! Reaction index: Chemkin #50; RMG #276 ! Template reaction: Disproportionation ! Estimated using template [C_rad/H2/Cd;Cmethyl_Csrad] for rate rule [C_rad/H2/Cd;Cmethyl_Csrad/H/Cd] ! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 6.0 ! family: Disproportionation -C4H6(47)+C4H7(45)=C4H7(45)+C4H6(26) 1.374000e+14 -0.350 -0.130 +C4H6(43)+C4H7(45)=C4H6(42)+C4H7(45) 1.374000e+14 -0.350 -0.130 -! Reaction index: Chemkin #52; RMG #930 +! Reaction index: Chemkin #51; RMG #312 ! Template reaction: Birad_recombination -! Flux pairs: C4H6(47), C4H6(205); +! Flux pairs: C4H6(43), C4H6(88); ! Estimated using template [R4;C_rad_out_2H;Cpri_rad_out_2H] for rate rule [R4_SDS;C_rad_out_2H;Cpri_rad_out_2H] ! Euclidian distance = 1.0 ! family: Birad_recombination -C4H6(47)=C4H6(205) 1.620000e+12 -0.305 1.980 +C4H6(43)=C4H6(88) 1.620000e+12 -0.305 1.980 -! Reaction index: Chemkin #53; RMG #1045 +! Reaction index: Chemkin #52; RMG #348 ! Template reaction: 1,2-Birad_to_alkene -! Flux pairs: C4H6(47), C4H6(26); +! Flux pairs: C4H6(43), C4H6(42); ! Matched reaction 5 C4H6 => C4H6-2 in 1,2-Birad_to_alkene/training ! This reaction matched rate rule [Y_12_01] ! family: 1,2-Birad_to_alkene -C4H6(47)=>C4H6(26) 5.010000e+07 0.000 0.000 +C4H6(43)=>C4H6(42) 5.010000e+07 0.000 0.000 -! Reaction index: Chemkin #54; RMG #473 +! Reaction index: Chemkin #53; RMG #152 ! Template reaction: R_Addition_MultipleBond -! Flux pairs: C4H6(116), C4H7(45); H(4), C4H7(45); +! Flux pairs: C4H6(69), C4H7(45); H(6), C4H7(45); ! Matched reaction 2714 H + C4H6-4 <=> C4H7-13 in R_Addition_MultipleBond/training ! This reaction matched rate rule [Ca_Cds-HH;HJ] ! family: R_Addition_MultipleBond -C4H6(116)+H(4)=C4H7(45) 5.460000e+08 1.640 3.780 +H(6)+C4H6(69)=C4H7(45) 5.460000e+08 1.640 3.780 -! Reaction index: Chemkin #55; RMG #493 -! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(116); CH3(2), CH4(6); -! Estimated using template [Cs_rad;Cdpri_Csrad] for rate rule [C_methyl;Cdpri_Csrad] -! Euclidian distance = 1.0 -! family: Disproportionation -C4H7(45)+CH3(2)=C4H6(116)+CH4(6) 3.354068e+12 0.000 6.000 +! Reaction index: Chemkin #54; RMG #342 +! Template reaction: Intra_Disproportionation +! Flux pairs: C4H6(43), C4H6(69); +! Estimated using an average for rate rule [R3radExo;Y_rad;XH_Rrad] +! Euclidian distance = 0 +! Multiplied by reaction path degeneracy 2.0 +! family: Intra_Disproportionation +C4H6(43)=C4H6(69) 1.487400e+09 1.045 15.153 -! Reaction index: Chemkin #56; RMG #507 +! Reaction index: Chemkin #55; RMG #367 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(116); C2H5(3), ethane(1); ! From training reaction 47 used for C_rad/H2/Cs;Cdpri_Csrad ! Exact match found for rate rule [C_rad/H2/Cs;Cdpri_Csrad] ! Euclidian distance = 0 ! family: Disproportionation -C4H7(45)+C2H5(3)=C4H6(116)+ethane(1) 9.640000e+11 0.000 6.000 +C2H5(5)+C4H7(45)=ethane(1)+C4H6(69) 9.640000e+11 0.000 6.000 -! Reaction index: Chemkin #57; RMG #531 +! Reaction index: Chemkin #56; RMG #370 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(116); H(4), H2(13); -! Estimated using template [Y_rad;Cdpri_Csrad] for rate rule [H_rad;Cdpri_Csrad] +! Estimated using template [Cs_rad;Cdpri_Csrad] for rate rule [C_methyl;Cdpri_Csrad] ! Euclidian distance = 1.0 ! family: Disproportionation -C4H7(45)+H(4)=C4H6(116)+H2(13) 3.010000e+12 0.000 6.000 +CH3(4)+C4H7(45)=CH4(3)+C4H6(69) 3.354068e+12 0.000 6.000 -! Reaction index: Chemkin #58; RMG #563 +! Reaction index: Chemkin #57; RMG #376 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(116); C2H3(14), C2H4(8); ! From training reaction 51 used for Cd_pri_rad;Cdpri_Csrad ! Exact match found for rate rule [Cd_pri_rad;Cdpri_Csrad] ! Euclidian distance = 0 ! family: Disproportionation -C4H7(45)+C2H3(14)=C4H6(116)+C2H4(8) 2.410000e+12 0.000 6.000 +C2H3(14)+C4H7(45)=C2H4(9)+C4H6(69) 2.410000e+12 0.000 6.000 -! Reaction index: Chemkin #59; RMG #1038 -! Template reaction: Intra_Disproportionation -! Flux pairs: C4H6(47), C4H6(116); -! Estimated using an average for rate rule [R3radExo;Y_rad;XH_Rrad] +! Reaction index: Chemkin #58; RMG #382 +! Template reaction: Disproportionation +! Estimated using template [Y_rad;Cdpri_Csrad] for rate rule [H_rad;Cdpri_Csrad] +! Euclidian distance = 1.0 +! family: Disproportionation +H(6)+C4H7(45)=H2(11)+C4H6(69) 3.010000e+12 0.000 6.000 + +! Reaction index: Chemkin #59; RMG #361 +! Template reaction: R_Recombination +! Flux pairs: C4H5(144), C4H6(69); H(6), C4H6(69); +! BM rule fitted to 2 training reactions at node Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_Sp-3R!H=2C_Ext-2C-R_Ext-3R!H-R +! Total Standard Deviation in ln(k): 11.5401827615 +! Exact match found for rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_Sp-3R!H=2C_Ext-2C-R_Ext-3R!H-R] ! Euclidian distance = 0 -! Multiplied by reaction path degeneracy 2.0 -! family: Intra_Disproportionation -C4H6(47)=C4H6(116) 1.487400e+09 1.045 15.153 +! family: R_Recombination +H(6)+C4H5(144)=C4H6(69) 1.554090e+97 -24.703 0.000 -! Reaction index: Chemkin #60; RMG #1190 +! Reaction index: Chemkin #60; RMG #378 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(116); C4H6(47), C4H7(45); -! From training reaction 48 used for C_rad/H2/Cd;Cdpri_Csrad -! Exact match found for rate rule [C_rad/H2/Cd;Cdpri_Csrad] -! Euclidian distance = 0 +! Estimated using template [Cd_rad;Cmethyl_Csrad] for rate rule [Cd_rad/NonDeC;Cmethyl_Csrad] +! Euclidian distance = 2.0 +! Multiplied by reaction path degeneracy 3.0 +! family: Disproportionation +C2H5(5)+C4H5(144)=C2H4(9)+C4H6(69) 4.560000e+14 -0.700 0.000 + +! Reaction index: Chemkin #61; RMG #390 +! Template reaction: Disproportionation +! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [Cd_rad/NonDeC;Cds/H2_d_Crad] +! Euclidian distance = 3.1622776601683795 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C4H6(47)+C4H7(45)=C4H7(45)+C4H6(116) 1.686000e+11 0.000 6.000 +C2H3(14)+C4H5(144)=C#C(27)+C4H6(69) 8.204641e+06 1.877 -1.115 -! Reaction index: Chemkin #61; RMG #1206 +! Reaction index: Chemkin #62; RMG #407 ! Template reaction: Disproportionation -! Flux pairs: C4H7(45), C4H6(116); C4H6(47), C4H7(25); -! From training reaction 46 used for Y_rad;Cdpri_Csrad -! Exact match found for rate rule [Y_rad;Cdpri_Csrad] -! Euclidian distance = 0 +! Estimated using template [Cd_rad;Cpri_Rrad] for rate rule [Cd_rad/NonDeC;C/H2/Cd_Csrad] +! Euclidian distance = 3.605551275463989 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C4H6(47)+C4H7(45)=C4H6(116)+C4H7(25) 6.020000e+12 0.000 6.000 +C4H5(144)+C4H7(29)=C4H6(69)+C4H6(42) 2.420000e+12 0.000 0.000 + +! Reaction index: Chemkin #63; RMG #410 +! Template reaction: Disproportionation +! Estimated using template [Cd_rad;Cmethyl_Csrad] for rate rule [Cd_rad/NonDeC;Cmethyl_Csrad/H/Cd] +! Euclidian distance = 2.23606797749979 +! Multiplied by reaction path degeneracy 3.0 +! family: Disproportionation +C4H5(144)+C4H7(45)=C4H6(69)+C4H6(42) 4.560000e+14 -0.700 0.000 + +! Reaction index: Chemkin #64; RMG #425 +! Template reaction: H_Abstraction +! Flux pairs: C4H6(69), C4H5(144); C2H5(5), ethane(1); +! Estimated using an average for rate rule [Cd_allenic;C_rad/H2/Cs\H3] +! Euclidian distance = 0 +! family: H_Abstraction +C2H5(5)+C4H6(69)=ethane(1)+C4H5(144) 5.450000e-03 4.340 5.900 -! Reaction index: Chemkin #62; RMG #86 +! Reaction index: Chemkin #65; RMG #436 +! Template reaction: H_Abstraction +! Flux pairs: C4H6(69), C4H5(144); C2H3(14), C2H4(9); +! Estimated using an average for rate rule [Cd_allenic;Cd_Cd\H2_pri_rad] +! Euclidian distance = 0 +! family: H_Abstraction +C2H3(14)+C4H6(69)=C2H4(9)+C4H5(144) 4.170000e-02 4.340 1.000 + +! Reaction index: Chemkin #66; RMG #442 +! Template reaction: H_Abstraction +! Flux pairs: C4H6(69), C4H5(144); H(6), H2(11); +! Estimated using an average for rate rule [Cd_allenic;H_rad] +! Euclidian distance = 0 +! family: H_Abstraction +H(6)+C4H6(69)=H2(11)+C4H5(144) 3.532500e+00 3.852 3.502 + +! Reaction index: Chemkin #67; RMG #69 +! Template reaction: R_Addition_MultipleBond +! Flux pairs: CH3(4), C3H5(32); C#C(27), C3H5(32); +! Matched reaction 2253 C2H2 + CH3 <=> C3H5-2 in R_Addition_MultipleBond/training +! This reaction matched rate rule [Ct-H_Ct-H;CsJ-HHH] +! family: R_Addition_MultipleBond +CH3(4)+C#C(27)=C3H5(32) 1.338000e+05 2.410 6.770 + +! Reaction index: Chemkin #68; RMG #84 ! Template reaction: R_Addition_MultipleBond -! Flux pairs: C2H3(14), C4H5(32); C#C(20), C4H5(32); +! Flux pairs: C2H3(14), C4H5(35); C#C(27), C4H5(35); ! Matched reaction 196 C2H2 + C2H3 <=> C4H5-8 in R_Addition_MultipleBond/training ! This reaction matched rate rule [Ct-H_Ct-H;CdsJ-H] ! family: R_Addition_MultipleBond -C2H3(14)+C#C(20)=C4H5(32) 1.168000e+07 1.997 5.452 +C#C(27)+C2H3(14)=C4H5(35) 1.168000e+07 1.997 5.452 -! Reaction index: Chemkin #63; RMG #776 +! Reaction index: Chemkin #69; RMG #215 ! Template reaction: R_Recombination -! Flux pairs: C4H5(32), C4H6(26); H(4), C4H6(26); -! From training reaction 60 used for H_rad;Cd_pri_rad -! Exact match found for rate rule [Cd_pri_rad;H_rad] +! Flux pairs: C4H5(35), C4H6(42); H(6), C4H6(42); +! BM rule fitted to 2 training reactions at node Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_Sp-3R!H=2C_3R!H->C +! Total Standard Deviation in ln(k): 6.83519320067 +! Exact match found for rate rule [Root_1R->H_N-2R-inRing_N-2R->H_N-2CNOS->S_2CNO->C_Ext-2C-R_Sp-3R!H=2C_3R!H->C] ! Euclidian distance = 0 ! family: R_Recombination -C4H5(32)+H(4)=C4H6(26) 1.210000e+14 0.000 0.000 +H(6)+C4H5(35)=C4H6(42) 9.988280e+13 0.006 0.000 -! Reaction index: Chemkin #64; RMG #788 +! Reaction index: Chemkin #70; RMG #223 ! Template reaction: H_Abstraction -! Flux pairs: CH3(2), CH4(6); C4H6(26), C4H5(32); +! Flux pairs: CH3(4), CH4(3); C4H6(42), C4H5(35); ! From training reaction 1567 used for Cd/H2/NonDeC;C_methyl ! Exact match found for rate rule [Cd/H2/NonDeC;C_methyl] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 4.0 ! family: H_Abstraction -CH3(2)+C4H6(26)=C4H5(32)+CH4(6) 3.432000e-02 4.340 20.710 +CH3(4)+C4H6(42)=CH4(3)+C4H5(35) 3.432000e-02 4.340 20.710 -! Reaction index: Chemkin #65; RMG #796 +! Reaction index: Chemkin #71; RMG #231 ! Template reaction: H_Abstraction -! Flux pairs: C2H5(3), ethane(1); C4H6(26), C4H5(32); +! Flux pairs: C2H5(5), ethane(1); C4H6(42), C4H5(35); ! From training reaction 344 used for Cd/H2/NonDeC;C_rad/H2/Cs\H3 ! Exact match found for rate rule [Cd/H2/NonDeC;C_rad/H2/Cs\H3] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 4.0 ! family: H_Abstraction -C2H5(3)+C4H6(26)=C4H5(32)+ethane(1) 6.320000e+02 3.130 18.000 +C2H5(5)+C4H6(42)=ethane(1)+C4H5(35) 6.320000e+02 3.130 18.000 -! Reaction index: Chemkin #66; RMG #798 +! Reaction index: Chemkin #72; RMG #237 ! Template reaction: H_Abstraction -! Flux pairs: H(4), H2(13); C4H6(26), C4H5(32); +! Flux pairs: H(6), H2(11); C4H6(42), C4H5(35); ! From training reaction 217 used for Cd/H2/NonDeC;H_rad ! Exact match found for rate rule [Cd/H2/NonDeC;H_rad] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 4.0 ! family: H_Abstraction -H(4)+C4H6(26)=C4H5(32)+H2(13) 2.400000e+02 3.620 11.266 +H(6)+C4H6(42)=H2(11)+C4H5(35) 2.400000e+02 3.620 11.266 -! Reaction index: Chemkin #67; RMG #800 +! Reaction index: Chemkin #73; RMG #246 ! Template reaction: Disproportionation ! From training reaction 11 used for Cd_pri_rad;Cmethyl_Csrad ! Exact match found for rate rule [Cd_pri_rad;Cmethyl_Csrad] ! Euclidian distance = 0 ! Multiplied by reaction path degeneracy 3.0 ! family: Disproportionation -C4H5(32)+C2H5(3)=C2H4(8)+C4H6(26) 4.560000e+14 -0.700 0.000 +C2H5(5)+C4H5(35)=C2H4(9)+C4H6(42) 4.560000e+14 -0.700 0.000 -! Reaction index: Chemkin #68; RMG #815 +! Reaction index: Chemkin #74; RMG #256 ! Template reaction: H_Abstraction -! Flux pairs: C2H3(14), C2H4(8); C4H6(26), C4H5(32); +! Flux pairs: C2H3(14), C2H4(9); C4H6(42), C4H5(35); ! Matched reaction 177 C4H6-3 + C2H3 <=> C2H4 + C4H5 in H_Abstraction/training ! This reaction matched rate rule [Cd/H2/NonDeC;Cd_Cd\H2_pri_rad] ! family: H_Abstraction -C2H3(14)+C4H6(26)=C4H5(32)+C2H4(8) 3.437000e-04 4.732 6.579 +C2H3(14)+C4H6(42)=C2H4(9)+C4H5(35) 3.437000e-04 4.732 6.579 -! Reaction index: Chemkin #69; RMG #819 +! Reaction index: Chemkin #75; RMG #265 ! Template reaction: Disproportionation ! Estimated using template [Y_rad;Cds/H2_d_Rrad] for rate rule [Cd_pri_rad;Cds/H2_d_Crad] -! Euclidian distance = 2.2360679775 +! Euclidian distance = 2.23606797749979 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C2H3(14)+C4H5(32)=C#C(20)+C4H6(26) 8.204641e+06 1.877 -1.115 +C2H3(14)+C4H5(35)=C#C(27)+C4H6(42) 8.204641e+06 1.877 -1.115 -! Reaction index: Chemkin #70; RMG #916 +! Reaction index: Chemkin #76; RMG #309 ! Template reaction: Disproportionation ! Estimated using average of templates [Y_rad_birad_trirad_quadrad;C/H2/Cd_Csrad] + [Cd_pri_rad;Cpri_Rrad] for rate rule [Cd_pri_rad;C/H2/Cd_Csrad] ! Euclidian distance = 3.0 ! Multiplied by reaction path degeneracy 2.0 ! family: Disproportionation -C4H5(32)+C4H7(25)=C4H6(26)+C4H6(26) 2.200000e+11 0.000 0.000 +C4H5(35)+C4H7(29)=C4H6(42)+C4H6(42) 2.200000e+11 0.000 0.000 -! Reaction index: Chemkin #71; RMG #917 +! Reaction index: Chemkin #77; RMG #310 ! Template reaction: Disproportionation ! Estimated using template [Cd_pri_rad;Cmethyl_Csrad] for rate rule [Cd_pri_rad;Cmethyl_Csrad/H/Cd] ! Euclidian distance = 1.0 ! Multiplied by reaction path degeneracy 3.0 ! family: Disproportionation -C4H7(45)+C4H5(32)=C4H6(26)+C4H6(26) 4.560000e+14 -0.700 0.000 +C4H5(35)+C4H7(45)=C4H6(42)+C4H6(42) 4.560000e+14 -0.700 0.000 -! Reaction index: Chemkin #72; RMG #1490 +! Reaction index: Chemkin #78; RMG #405 ! Template reaction: Disproportionation ! From training reaction 51 used for Cd_pri_rad;Cdpri_Csrad ! Exact match found for rate rule [Cd_pri_rad;Cdpri_Csrad] ! Euclidian distance = 0 ! family: Disproportionation -C4H7(45)+C4H5(32)=C4H6(116)+C4H6(26) 2.410000e+12 0.000 6.000 +C4H5(35)+C4H7(45)=C4H6(69)+C4H6(42) 2.410000e+12 0.000 6.000 -! Reaction index: Chemkin #73; RMG #1556 +! Reaction index: Chemkin #79; RMG #466 ! Template reaction: Intra_R_Add_Exocyclic -! Flux pairs: C4H5(32), C4H5(427); +! Flux pairs: C4H5(35), C4H5(185); ! From training reaction 14 used for R4_D_D;doublebond_intra_2H_pri;radadd_intra_cdsingleH ! Exact match found for rate rule [R4_D_D;doublebond_intra_2H_pri;radadd_intra_cdsingleH] ! Euclidian distance = 0 ! family: Intra_R_Add_Exocyclic -C4H5(32)=C4H5(427) 2.540000e+10 0.690 25.170 - -! Reaction index: Chemkin #74; RMG #74 -! Template reaction: R_Addition_MultipleBond -! Flux pairs: CH3(2), C3H5(29); C#C(20), C3H5(29); -! Matched reaction 2253 C2H2 + CH3 <=> C3H5-2 in R_Addition_MultipleBond/training -! This reaction matched rate rule [Ct-H_Ct-H;CsJ-HHH] -! family: R_Addition_MultipleBond -C#C(20)+CH3(2)=C3H5(29) 1.338000e+05 2.410 6.770 +C4H5(35)=C4H5(185) 2.540000e+10 0.690 25.170 END diff --git a/ipython/data/parse_source/species_dictionary.txt b/ipython/data/parse_source/species_dictionary.txt index 0025b35197..d9cf2f5695 100644 --- a/ipython/data/parse_source/species_dictionary.txt +++ b/ipython/data/parse_source/species_dictionary.txt @@ -21,14 +21,14 @@ ethane(1) 7 H u0 p0 c0 {2,S} 8 H u0 p0 c0 {2,S} -CH3(2) +CH3(4) multiplicity 2 1 C u1 p0 c0 {2,S} {3,S} {4,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -C2H5(3) +C2H5(5) multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u1 p0 c0 {1,S} {6,S} {7,S} @@ -38,18 +38,18 @@ multiplicity 2 6 H u0 p0 c0 {2,S} 7 H u0 p0 c0 {2,S} -CH4(6) +CH4(3) 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 H u0 p0 c0 {1,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {1,S} -H(4) +H(6) multiplicity 2 1 H u1 p0 c0 -C2H4(8) +C2H4(9) 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 C u0 p0 c0 {1,D} {5,S} {6,S} 3 H u0 p0 c0 {1,S} @@ -57,10 +57,23 @@ C2H4(8) 5 H u0 p0 c0 {2,S} 6 H u0 p0 c0 {2,S} -H2(13) +H2(11) 1 H u0 p0 c0 {2,S} 2 H u0 p0 c0 {1,S} +C3H7(16) +multiplicity 2 +1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} +2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} +3 C u1 p0 c0 {1,S} {9,S} {10,S} +4 H u0 p0 c0 {1,S} +5 H u0 p0 c0 {1,S} +6 H u0 p0 c0 {2,S} +7 H u0 p0 c0 {2,S} +8 H u0 p0 c0 {2,S} +9 H u0 p0 c0 {3,S} +10 H u0 p0 c0 {3,S} + C2H3(14) multiplicity 2 1 C u0 p0 c0 {2,D} {3,S} {4,S} @@ -69,32 +82,19 @@ multiplicity 2 4 H u0 p0 c0 {1,S} 5 H u0 p0 c0 {2,S} -C#C(20) +C#C(27) 1 C u0 p0 c0 {2,T} {3,S} 2 C u0 p0 c0 {1,T} {4,S} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {2,S} -C2H2(28) +C2H2(31) 1 C u0 p0 c0 {2,D} {3,S} {4,S} 2 C u0 p1 c0 {1,D} 3 H u0 p0 c0 {1,S} 4 H u0 p0 c0 {1,S} -C3H7(16) -multiplicity 2 -1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} -2 C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} -3 C u1 p0 c0 {1,S} {9,S} {10,S} -4 H u0 p0 c0 {1,S} -5 H u0 p0 c0 {1,S} -6 H u0 p0 c0 {2,S} -7 H u0 p0 c0 {2,S} -8 H u0 p0 c0 {2,S} -9 H u0 p0 c0 {3,S} -10 H u0 p0 c0 {3,S} - -C4H7(25) +C4H7(29) multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {4,D} {7,S} @@ -108,7 +108,7 @@ multiplicity 2 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {4,S} -C4H7(44) +C4H7(41) multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {3,S} {6,S} {7,S} @@ -122,7 +122,7 @@ multiplicity 2 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {4,S} -C4H7(30) +C4H7(33) multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {5,S} {6,S} 2 C u0 p0 c0 {1,S} {7,S} {8,S} {9,S} @@ -150,7 +150,7 @@ multiplicity 2 10 H u0 p0 c0 {4,S} 11 H u0 p0 c0 {4,S} -C4H6(26) +C4H6(42) 1 C u0 p0 c0 {2,S} {3,D} {5,S} 2 C u0 p0 c0 {1,S} {4,D} {6,S} 3 C u0 p0 c0 {1,D} {7,S} {8,S} @@ -162,7 +162,7 @@ C4H6(26) 9 H u0 p0 c0 {4,S} 10 H u0 p0 c0 {4,S} -C4H6(205) +C4H6(88) 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} {4,D} {9,S} @@ -174,7 +174,7 @@ C4H6(205) 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {4,S} -C4H6(47) +C4H6(43) multiplicity 3 1 C u0 p0 c0 {2,D} {3,S} {5,S} 2 C u0 p0 c0 {1,D} {4,S} {6,S} @@ -187,7 +187,7 @@ multiplicity 3 9 H u0 p0 c0 {4,S} 10 H u0 p0 c0 {4,S} -C4H6(116) +C4H6(69) 1 C u0 p0 c0 {2,S} {5,S} {6,S} {7,S} 2 C u0 p0 c0 {1,S} {4,D} {8,S} 3 C u0 p0 c0 {4,D} {9,S} {10,S} @@ -199,7 +199,30 @@ C4H6(116) 9 H u0 p0 c0 {3,S} 10 H u0 p0 c0 {3,S} -C4H5(32) +C4H5(144) +multiplicity 2 +1 C u0 p0 c0 {3,S} {5,S} {6,S} {7,S} +2 C u1 p0 c0 {4,S} {8,S} {9,S} +3 C u0 p0 c0 {1,S} {4,T} +4 C u0 p0 c0 {2,S} {3,T} +5 H u0 p0 c0 {1,S} +6 H u0 p0 c0 {1,S} +7 H u0 p0 c0 {1,S} +8 H u0 p0 c0 {2,S} +9 H u0 p0 c0 {2,S} + +C3H5(32) +multiplicity 2 +1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} +2 C u0 p0 c0 {1,S} {3,D} {7,S} +3 C u1 p0 c0 {2,D} {8,S} +4 H u0 p0 c0 {1,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 {3,S} + +C4H5(35) multiplicity 2 1 C u0 p0 c0 {2,S} {3,D} {5,S} 2 C u0 p0 c0 {1,S} {4,D} {6,S} @@ -211,7 +234,7 @@ multiplicity 2 8 H u0 p0 c0 {3,S} 9 H u0 p0 c0 {4,S} -C4H5(427) +C4H5(185) multiplicity 2 1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} 2 C u0 p0 c0 {1,S} {3,D} {6,S} @@ -223,14 +246,3 @@ multiplicity 2 8 H u0 p0 c0 {4,S} 9 H u0 p0 c0 {4,S} -C3H5(29) -multiplicity 2 -1 C u0 p0 c0 {2,S} {4,S} {5,S} {6,S} -2 C u0 p0 c0 {1,S} {3,D} {7,S} -3 C u1 p0 c0 {2,D} {8,S} -4 H u0 p0 c0 {1,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 {3,S} - From cfb4268be0f752b66f77aa88d864808fec36ed3f Mon Sep 17 00:00:00 2001 From: Max Liu Date: Mon, 30 Sep 2019 12:19:19 -0400 Subject: [PATCH 6/9] Update IPython notebooks with Python 3 and RMG changes --- ipython/canteraSensitivityComparison.ipynb | 72 +- ipython/canteraSimulation.ipynb | 94 +- ...ustion_model_and_ignition_delay_demo.ipynb | 80 +- ...arameterSourcesAndAssignUncertainies.ipynb | 248 ++--- ipython/generateReactions.ipynb | 941 ++---------------- ipython/kinetics_library_to_training.ipynb | 66 +- ipython/kinetics_library_to_training_tools.py | 99 +- ipython/localUncertainty.ipynb | 122 +-- ipython/mechanism_analyzer.ipynb | 611 ++++++------ ipython/regressionTest.ipynb | 85 +- 10 files changed, 768 insertions(+), 1650 deletions(-) diff --git a/ipython/canteraSensitivityComparison.ipynb b/ipython/canteraSensitivityComparison.ipynb index 0569b101d8..9678699568 100644 --- a/ipython/canteraSensitivityComparison.ipynb +++ b/ipython/canteraSensitivityComparison.ipynb @@ -18,7 +18,7 @@ "outputs": [], "source": [ "import cantera\n", - "print cantera.__version__ # Check Cantera version" + "print(cantera.__version__) # Check Cantera version" ] }, { @@ -31,10 +31,10 @@ "\n", "from IPython.display import display, Image\n", "\n", - "from rmgpy.chemkin import loadChemkinFile\n", + "from rmgpy.chemkin import load_chemkin_file\n", "from rmgpy.species import Species\n", - "from rmgpy.tools.canteraModel import Cantera, getRMGSpeciesFromUserSpecies\n", - "from rmgpy.tools.plot import SimulationPlot, ReactionSensitivityPlot, parseCSVData\n", + "from rmgpy.tools.canteraModel import Cantera, get_rmg_species_from_user_species\n", + "from rmgpy.tools.plot import SimulationPlot, ReactionSensitivityPlot, parse_csv_data\n", "from rmgpy.tools.simulate import run_simulation" ] }, @@ -51,9 +51,9 @@ "metadata": {}, "outputs": [], "source": [ - "speciesList, reactionList = loadChemkinFile('./data/ethane_model/chem_annotated.inp',\n", - " './data/ethane_model/species_dictionary.txt',\n", - " './data/ethane_model/tran.dat')" + "species_list, reaction_list = load_chemkin_file('./data/ethane_model/chem_annotated.inp',\n", + " './data/ethane_model/species_dictionary.txt',\n", + " './data/ethane_model/tran.dat')" ] }, { @@ -70,19 +70,19 @@ "outputs": [], "source": [ "# Find the species: ethane and methane\n", - "user_ethane = Species().fromSMILES('CC')\n", - "user_methane = Species().fromSMILES('C')\n", - "speciesDict = getRMGSpeciesFromUserSpecies([user_ethane, user_methane], speciesList)\n", - "ethane = speciesDict[user_ethane]\n", - "methane = speciesDict[user_methane]\n", - "sensitiveSpecies = [ethane, methane]\n", + "user_ethane = Species().from_smiles('CC')\n", + "user_methane = Species().from_smiles('C')\n", + "species_dict = get_rmg_species_from_user_species([user_ethane, user_methane], species_list)\n", + "ethane = species_dict[user_ethane]\n", + "methane = species_dict[user_methane]\n", + "sensitive_species = [ethane, methane]\n", "\n", - "#reactorTypeList = ['IdealGasReactor']\n", - "reactorTypeList = ['IdealGasConstPressureTemperatureReactor']\n", - "molFracList=[{ethane: 1}]\n", + "#reactor_type_list = ['IdealGasReactor']\n", + "reactor_type_list = ['IdealGasConstPressureTemperatureReactor']\n", + "mol_frac_list = [{ethane: 1}]\n", "Tlist = ([1300], 'K')\n", "Plist = ([1], 'bar')\n", - "reactionTimeList = ([0.5], 'ms')" + "reaction_time_list = ([0.5], 'ms')" ] }, { @@ -92,17 +92,17 @@ "outputs": [], "source": [ "# Create cantera object, loading in the species and reactions\n", - "job = Cantera(speciesList=speciesList, reactionList=reactionList, outputDirectory='temp', sensitiveSpecies=sensitiveSpecies)\n", + "job = Cantera(species_list=species_list, reaction_list=reaction_list, output_directory='temp', sensitive_species=sensitive_species)\n", "# The cantera file must be created from an associated chemkin file\n", "\n", "# We can either load the Model from the initialized set of rmg species and reactions\n", - "job.loadModel()\n", + "job.load_model()\n", "\n", "# Or load it from a chemkin file by uncommenting the following line:\n", - "#job.loadChemkinModel('data/minimal_model/chem_annotated.inp',transportFile='data/minimal_model/tran.dat')\n", + "#job.load_chemkin_model('data/ethane_model/chem_annotated.inp',transport_file='data/ethane_model/tran.dat')\n", "\n", "# Generate the conditions based on the settings we declared earlier\n", - "job.generateConditions(reactorTypeList, reactionTimeList, molFracList, Tlist, Plist)" + "job.generate_conditions(reactor_type_list, reaction_time_list, mol_frac_list, Tlist, Plist)" ] }, { @@ -117,10 +117,10 @@ "\n", "# Show the plots in the ipython notebook\n", "for i, condition in enumerate(job.conditions):\n", - " print 'Cantera Simulation: Condition {0} Species Mole Fractions'.format(i+1)\n", + " print('Cantera Simulation: Condition {0} Species Mole Fractions'.format(i+1))\n", " display(Image(filename=\"temp/{0}_mole_fractions.png\".format(i+1)))\n", " \n", - " print 'Cantera Simulation: Condition {0} Ethane Reaction Sensitivity'.format(i+1)\n", + " print('Cantera Simulation: Condition {0} Ethane Reaction Sensitivity'.format(i+1))\n", " display(Image(filename=\"temp/{0}_ethane(1)_sensitivity.png\".format(i+1)))" ] }, @@ -149,10 +149,10 @@ "metadata": {}, "outputs": [], "source": [ - "print 'RMG Native Simulation: Species Mole Fractions'\n", + "print('RMG Native Simulation: Species Mole Fractions')\n", "display(Image(filename=\"./temp/solver/simulation_1_27.png\"))\n", "\n", - "print 'RMG Native Simulation: Ethane Reaction Sensitivity'\n", + "print('RMG Native Simulation: Ethane Reaction Sensitivity')\n", "display(Image(filename=\"./temp/solver/sensitivity_1_SPC_1_reactions.png\"))" ] }, @@ -164,14 +164,14 @@ "source": [ "# Let's also compare against the same simulation and sensitivity analysis that was conducted in CHEMKIN\n", "# and saved as a .csv file\n", - "time, dataList = parseCSVData('./data/ethane_model/chemkin_mole_fractions.csv')\n", - "SimulationPlot(xVar=time, yVar=dataList, numSpecies=10).plot('./temp/chemkin_mole_fractions.png')\n", - "print 'CHEMKIN Simulation: Species Mole Fractions'\n", + "time, data_list = parse_csv_data('./data/ethane_model/chemkin_mole_fractions.csv')\n", + "SimulationPlot(x_var=time, y_var=data_list, num_species=10).plot('./temp/chemkin_mole_fractions.png')\n", + "print('CHEMKIN Simulation: Species Mole Fractions')\n", "display(Image(filename=\"./temp/chemkin_mole_fractions.png\"))\n", "\n", - "time, dataList = parseCSVData('./data/ethane_model/chemkin_sensitivity_ethane.csv')\n", - "ReactionSensitivityPlot(xVar=time, yVar=dataList, numReactions=10).barplot('./temp/chemkin_sensitivity_ethane.png')\n", - "print 'CHEMKIN Simulation: Ethane Reaction Sensitivity'\n", + "time, data_list = parse_csv_data('./data/ethane_model/chemkin_sensitivity_ethane.csv')\n", + "ReactionSensitivityPlot(x_var=time, y_var=data_list, num_reactions=10).barplot('./temp/chemkin_sensitivity_ethane.png')\n", + "print('CHEMKIN Simulation: Ethane Reaction Sensitivity')\n", "display(Image(filename=\"./temp/chemkin_sensitivity_ethane.png\"))" ] }, @@ -185,21 +185,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/ipython/canteraSimulation.ipynb b/ipython/canteraSimulation.ipynb index 94b3982856..dfd76a2aca 100644 --- a/ipython/canteraSimulation.ipynb +++ b/ipython/canteraSimulation.ipynb @@ -15,8 +15,8 @@ "source": [ "from IPython.display import display, Image\n", "\n", - "from rmgpy.chemkin import loadChemkinFile\n", - "from rmgpy.tools.canteraModel import Cantera, getRMGSpeciesFromUserSpecies\n", + "from rmgpy.chemkin import load_chemkin_file\n", + "from rmgpy.tools.canteraModel import Cantera, get_rmg_species_from_user_species\n", "from rmgpy.species import Species" ] }, @@ -33,9 +33,9 @@ "metadata": {}, "outputs": [], "source": [ - "speciesList, reactionList = loadChemkinFile('data/ethane_model/chem_annotated.inp',\n", - " 'data/ethane_model/species_dictionary.txt',\n", - " 'data/ethane_model/tran.dat')" + "species_list, reaction_list = load_chemkin_file('data/ethane_model/chem_annotated.inp',\n", + " 'data/ethane_model/species_dictionary.txt',\n", + " 'data/ethane_model/tran.dat')" ] }, { @@ -52,15 +52,15 @@ "outputs": [], "source": [ "# Find the species: ethane\n", - "user_ethane=Species().fromSMILES('CC')\n", - "speciesDict = getRMGSpeciesFromUserSpecies([user_ethane], speciesList)\n", - "ethane = speciesDict[user_ethane]\n", + "user_ethane=Species().from_smiles('CC')\n", + "species_dict = get_rmg_species_from_user_species([user_ethane], species_list)\n", + "ethane = species_dict[user_ethane]\n", "\n", - "reactorTypeList = ['IdealGasReactor']\n", - "molFracList=[{ethane: 1}]\n", - "Tlist = ([1300,1500,2000], 'K')\n", + "reactor_type_list = ['IdealGasReactor']\n", + "mol_frac_list=[{ethane: 1}]\n", + "Tlist = ([1300, 1500, 2000], 'K')\n", "Plist = ([1], 'bar')\n", - "reactionTimeList = ([0.5], 'ms')" + "reaction_time_list = ([0.5], 'ms')" ] }, { @@ -70,17 +70,17 @@ "outputs": [], "source": [ "# Create cantera object, loading in the species and reactions\n", - "job = Cantera(speciesList=speciesList, reactionList=reactionList, outputDirectory='temp')\n", + "job = Cantera(species_list=species_list, reaction_list=reaction_list, output_directory='temp')\n", "# The cantera file must be created from an associated chemkin file\n", "\n", "# We can either load the Model from the initialized set of rmg species and reactions\n", - "job.loadModel()\n", + "job.load_model()\n", "\n", "# Or load it from a chemkin file by uncommenting the following line:\n", - "#job.loadChemkinModel('data/minimal_model/chem_annotated.inp',transportFile='data/minimal_model/tran.dat')\n", + "#job.load_chemkin_model('data/ethane_model/chem_annotated.inp',transport_file='data/ethane_model/tran.dat')\n", "\n", "# Generate the conditions based on the settings we declared earlier\n", - "job.generateConditions(reactorTypeList, reactionTimeList, molFracList, Tlist, Plist)" + "job.generate_conditions(reactor_type_list, reaction_time_list, mol_frac_list, Tlist, Plist)" ] }, { @@ -95,7 +95,7 @@ "\n", "# Show the plots in the ipython notebook\n", "for i, condition in enumerate(job.conditions):\n", - " print 'Condition {0}'.format(i+1)\n", + " print('Condition {0}'.format(i+1))\n", " display(Image(filename=\"temp/{0}_mole_fractions.png\".format(i+1)))" ] }, @@ -106,15 +106,15 @@ "outputs": [], "source": [ "# We can get the cantera model Solution's species and reactions\n", - "ctSpecies = job.model.species()\n", - "ctReactions = job.model.reactions()\n", + "ct_species = job.model.species()\n", + "ct_reactions = job.model.reactions()\n", "\n", "# We can view a cantera species or reaction object from this\n", - "ct_ethane = ctSpecies[4]\n", - "ct_rxn = ctReactions[0]\n", + "ct_ethane = ct_species[4]\n", + "ct_rxn = ct_reactions[0]\n", "\n", - "print ct_ethane\n", - "print ct_rxn" + "print(ct_ethane)\n", + "print(ct_rxn)" ] }, { @@ -127,32 +127,32 @@ "# RMG objects first, then using the `modifyReactionKinetics` or `modifySpeciesThermo` functions\n", "\n", "# Alter the RMG objects in place, lets pick ethane and the first reaction\n", - "rmg_ethane = speciesDict[user_ethane]\n", - "rmg_ethane.thermo.changeBaseEnthalpy(2*4184) # Change base enthalpy by 2 kcal/mol\n", + "rmg_ethane = species_dict[user_ethane]\n", + "rmg_ethane.thermo.change_base_enthalpy(2*4184) # Change base enthalpy by 2 kcal/mol\n", "\n", - "rmg_rxn = reactionList[0]\n", - "rmg_rxn.kinetics.changeRate(4) # Change A factor by multiplying by a factor of 4\n", + "rmg_rxn = reaction_list[0]\n", + "rmg_rxn.kinetics.change_rate(4) # Change A factor by multiplying by a factor of 4\n", "\n", "# Take a look at the state of the cantera model before and after\n", - "print 'Cantera Model: Before'\n", - "ctSpecies = job.model.species()\n", - "ctReactions = job.model.reactions()\n", - "print 'Ethane Thermo = {} kcal/mol'.format(ctSpecies[4].thermo.h(300)/1000/4184)\n", - "print 'Reaction 1 Kinetics = {}'.format(ctReactions[0].rate)\n", + "print('Cantera Model: Before')\n", + "ct_species = job.model.species()\n", + "ct_reactions = job.model.reactions()\n", + "print('Ethane Thermo = {} kcal/mol'.format(ct_species[4].thermo.h(300)/1000/4184))\n", + "print('Reaction 1 Kinetics = {}'.format(ct_reactions[0].rate))\n", "\n", "# Now use the altered RMG objects to modify the kinetics and thermo\n", - "job.modifyReactionKinetics(0, rmg_rxn)\n", - "job.modifySpeciesThermo(4, rmg_ethane, useChemkinIdentifier = True)\n", + "job.modify_reaction_kinetics(0, rmg_rxn)\n", + "job.modify_species_thermo(4, rmg_ethane, use_chemkin_identifier = True)\n", "\n", "# If we modify thermo, the cantera model must be refreshed. If only kinetics are modified, this does not need to be done.\n", - "job.refreshModel()\n", + "job.refresh_model()\n", "\n", - "print ''\n", - "print 'Cantera Model: After'\n", - "ctSpecies = job.model.species()\n", - "ctReactions = job.model.reactions()\n", - "print 'Ethane Thermo = {} kcal/mol'.format(ctSpecies[4].thermo.h(300)/1000/4184)\n", - "print 'Reaction 1 Kinetics = {}'.format(ctReactions[0].rate)" + "print('')\n", + "print('Cantera Model: After')\n", + "ct_species = job.model.species()\n", + "ct_reactions = job.model.reactions()\n", + "print('Ethane Thermo = {} kcal/mol'.format(ct_species[4].thermo.h(300)/1000/4184))\n", + "print('Reaction 1 Kinetics = {}'.format(ct_reactions[0].rate))" ] }, { @@ -167,7 +167,7 @@ "\n", "# Show the plots in the ipython notebook\n", "for i, condition in enumerate(job.conditions):\n", - " print 'Condition {0}'.format(i+1)\n", + " print('Condition {0}'.format(i+1))\n", " display(Image(filename=\"temp/{0}_mole_fractions.png\".format(i+1)))" ] }, @@ -181,21 +181,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/ipython/combustion_model_and_ignition_delay_demo.ipynb b/ipython/combustion_model_and_ignition_delay_demo.ipynb index ccbad8de65..409ac22f49 100644 --- a/ipython/combustion_model_and_ignition_delay_demo.ipynb +++ b/ipython/combustion_model_and_ignition_delay_demo.ipynb @@ -35,7 +35,7 @@ "from IPython.display import display, Image\n", "from rmgpy.molecule import Molecule\n", "\n", - "fuel_molecule = Molecule(SMILES=fuel)\n", + "fuel_molecule = Molecule(smiles=fuel)\n", "print(\"The fuel molecule is:\")\n", "display(fuel_molecule)" ] @@ -55,14 +55,14 @@ }, "outputs": [], "source": [ - "fuel_molecule = Molecule(SMILES=fuel)\n", - "nC = int(fuel_molecule.getNumAtoms('C'))\n", - "nH = int(fuel_molecule.getNumAtoms('H'))\n", - "nO = int(fuel_molecule.getNumAtoms('O'))\n", + "fuel_molecule = Molecule(smiles=fuel)\n", + "nC = int(fuel_molecule.get_num_atoms('C'))\n", + "nH = int(fuel_molecule.get_num_atoms('H'))\n", + "nO = int(fuel_molecule.get_num_atoms('O'))\n", "\n", "fuel_stoich = equivalence_ratio/(nC+(nH/4.0)-(nO/2.0))\n", "\n", - "input_file = '''\n", + "input_file = f'''\n", "# Data sources\n", "database(\n", " thermoLibraries = ['BurkeH2O2','primaryThermoLibrary','thermo_DFT_CCSDTF12_BAC','DFT_QCI_thermo','FFCM1(-)'],\n", @@ -77,7 +77,7 @@ "species(\n", " label='fuel',\n", " reactive=True,\n", - " structure=SMILES('''+\"'\"+fuel+\"'\"+'''),\n", + " structure=SMILES('{fuel}'),\n", ")\n", "\n", "species(\n", @@ -100,14 +100,14 @@ "\n", "# Reaction system\n", "simpleReactor(\n", - " temperature=('''+str(temperature)+''','K'),\n", - " pressure=('''+str(pressure)+''','atm'),\n", - " initialMoleFractions={\n", - " 'fuel': '''+str(fuel_stoich)+''',\n", + " temperature=({temperature!s},'K'),\n", + " pressure=({pressure!s},'atm'),\n", + " initialMoleFractions={{\n", + " 'fuel': {fuel_stoich!s},\n", " 'O2': 1,\n", " 'N2': 3.76,\n", - " },\n", - " terminationTime=('''+str(sim_time/1000.0)+''','s'),\n", + " }},\n", + " terminationTime=({sim_time/1000.0},'s'),\n", " sensitivity=['OH'],\n", " sensitivityThreshold=0.01,\n", ")\n", @@ -197,7 +197,7 @@ "subprocess.check_call(['python', rmgpy_path, input_path])\n", "\n", "end = time.time()\n", - "print 'Total simulation time: ' + str(datetime.timedelta(seconds=round(end-start)))\n", + "print('Total simulation time: ' + str(datetime.timedelta(seconds=round(end-start))))\n", "\n", "with open(os.path.join(directory, 'RMG.log'),'r') as f:\n", " begin = False\n", @@ -205,7 +205,7 @@ " if 'MODEL GENERATION COMPLETED' in line:\n", " begin = True\n", " if begin:\n", - " print line.strip()" + " print(line.strip())" ] }, { @@ -223,21 +223,21 @@ }, "outputs": [], "source": [ - "from rmgpy.chemkin import loadChemkinFile\n", - "from rmgpy.tools.canteraModel import Cantera, getRMGSpeciesFromUserSpecies\n", + "from rmgpy.chemkin import load_chemkin_file\n", + "from rmgpy.tools.canteraModel import Cantera, get_rmg_species_from_user_species\n", "from rmgpy.species import Species\n", "import time\n", "\n", "chem_path = os.path.join(directory, 'chemkin')\n", - "species_list, reaction_list = loadChemkinFile(os.path.join(chem_path, 'chem_annotated.inp'),\n", + "species_list, reaction_list = load_chemkin_file(os.path.join(chem_path, 'chem_annotated.inp'),\n", " os.path.join(chem_path, 'species_dictionary.txt'),\n", " os.path.join(chem_path, 'tran.dat'))\n", "\n", - "fuel_species=Species(SMILES=fuel)\n", - "O2_species=Species(SMILES='[O][O]')\n", - "N2_species=Species(SMILES='N#N')\n", - "OH_species=Species(SMILES='[OH]')\n", - "species_dict = getRMGSpeciesFromUserSpecies([fuel_species, O2_species, N2_species, OH_species], species_list)\n", + "fuel_species = Species(smiles=fuel)\n", + "O2_species = Species(smiles='[O][O]')\n", + "N2_species = Species(smiles='N#N')\n", + "OH_species = Species(smiles='[OH]')\n", + "species_dict = get_rmg_species_from_user_species([fuel_species, O2_species, N2_species, OH_species], species_list)\n", "\n", "reactor_type_list = ['IdealGasReactor']\n", "reaction_time_list = ([sim_time], 'ms')\n", @@ -248,9 +248,9 @@ "T_list = ([temperature],'K')\n", "P_list = ([pressure],'atm')\n", "\n", - "job = Cantera(speciesList=species_list, reactionList=reaction_list, outputDirectory=directory)\n", - "job.loadChemkinModel(os.path.join(chem_path, 'chem_annotated.inp'), os.path.join(chem_path, 'tran.dat'))\n", - "job.generateConditions(reactor_type_list, reaction_time_list, mol_frac_list, T_list, P_list)\n", + "job = Cantera(species_list=species_list, reaction_list=reaction_list, output_directory=directory)\n", + "job.load_chemkin_model(os.path.join(chem_path, 'chem_annotated.inp'), os.path.join(chem_path, 'tran.dat'))\n", + "job.generate_conditions(reactor_type_list, reaction_time_list, mol_frac_list, T_list, P_list)\n", "\n", "alldata = job.simulate()\n", "print(\"Simulation Completed\")" @@ -290,7 +290,7 @@ "idi = next(i for i,d in enumerate(dpdt) if d==max(dpdt))\n", "ign_delay_time = times[idi]\n", "\n", - "for spc in xrange(len(alldata[0][1][:])):\n", + "for spc in range(len(alldata[0][1][:])):\n", " if alldata[0][1][spc].label == str(species_dict[fuel_species]):\n", " Fuel_idx = spc\n", " if alldata[0][1][spc].label == str(species_dict[OH_species]):\n", @@ -303,8 +303,8 @@ "\n", "files = os.listdir(os.path.join(directory, 'solver'))\n", "\n", - "sensitivity_file = str(filter(lambda x: ('sensitivity' in x) and ('.csv' in x),files)[0])\n", - "SA_time, SA_data = rmg_plot.parseCSVData(os.path.join(directory, 'solver', sensitivity_file))\n", + "sensitivity_file = [f for f in files if ('sensitivity' in f) and ('.csv' in f)][0]\n", + "SA_time, SA_data = rmg_plot.parse_csv_data(os.path.join(directory, 'solver', sensitivity_file))\n", "\n", "time_error = 1\n", "\n", @@ -314,7 +314,7 @@ " time_error = abs(SA_time.data[i]-ign_delay_time)\n", "\n", "Gidx = 0\n", - "for i in xrange(len(SA_data[:])):\n", + "for i in range(len(SA_data[:])):\n", " if \"G\" in SA_data[i].label:\n", " if not Gidx:\n", " Gidx = i\n", @@ -323,30 +323,30 @@ " SA_data[i].label = SA_data[i].label.split(' ')[1]\n", "\n", "rank1 = []\n", - "for n in xrange(Gidx):\n", + "for n in range(Gidx):\n", " rank1.append(abs(SA_data[n].data[ign_delay_idx])) # list of max SA range for each rxn\n", "num1 = np.linspace(0,len(rank1)-1,len(rank1)) # will be used to get the order of reactions by rank1\n", "num1 = zip(rank1,num1)\n", "num1 = sorted(num1, key=itemgetter(0),reverse=True)\n", "SA_k_data = []\n", "SA_k_label = []\n", - "for i in xrange(min(top_sens, Gidx)):\n", + "for i in range(min(top_sens, Gidx)):\n", " SA_k_data.append(SA_data[int(num1[i][1])].data[ign_delay_idx]) # make sorted lists size topSA of SA values and rxns labels\n", " SA_k_label.append(SA_data[int(num1[i][1])].label)\n", " \n", "rank2 = []\n", - "for n in xrange(len(SA_data)-Gidx):\n", + "for n in range(len(SA_data)-Gidx):\n", " rank2.append(abs(SA_data[n+Gidx].data[ign_delay_idx])) # list of max SA range for each rxn\n", "num2 = np.linspace(0,len(rank2)-1,len(rank2)) # will be used to get the order of reactions by rank1\n", "num2 = zip(rank2,num2)\n", "num2 = sorted(num2, key=itemgetter(0),reverse=True)\n", "SA_G_data = []\n", "SA_G_label = []\n", - "for i in xrange(min(top_sens, len(SA_data)-Gidx)):\n", + "for i in range(min(top_sens, len(SA_data)-Gidx)):\n", " SA_G_data.append(SA_data[int(num2[i][1])+Gidx].data[ign_delay_idx]) # make sorted lists size topSA of SA values and rxns labels\n", " SA_G_label.append(SA_data[int(num2[i][1])+Gidx].label)\n", " \n", - "print \"Ignition delay time is {0:.4f} ms\".format(ign_delay_time * 1000)\n", + "print(\"Ignition delay time is {0:.4f} ms\".format(ign_delay_time * 1000))\n", " \n", "plt.rcParams['axes.labelsize'] = 18\n", "plt.rcParams['xtick.labelsize'] = 12\n", @@ -451,21 +451,21 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/ipython/findParameterSourcesAndAssignUncertainies.ipynb b/ipython/findParameterSourcesAndAssignUncertainies.ipynb index f06715bbe6..a7c1b41e1f 100644 --- a/ipython/findParameterSourcesAndAssignUncertainies.ipynb +++ b/ipython/findParameterSourcesAndAssignUncertainies.ipynb @@ -20,7 +20,9 @@ "source": [ "# Parameter Uncertainty Assignment\n", "\n", - "This script aims to extract model sources in a clear and informative format. The script first shows what all the kinetic and thermo sources are in a model. Then it goes through each reaction and species to show their source and what the assigned uncertainties are. This can be used with any RMG-generated CHEMKIN file that is annotated." + "This script aims to extract model sources in a clear and informative format. The script first shows what all the kinetic and thermo sources are in a model. Then it goes through each reaction and species to show their source and what the assigned uncertainties are. This can be used with any RMG-generated CHEMKIN file that is annotated.\n", + "\n", + "__Note__: The RMG-database version must match the version used to generate the model. RMG will attempt to recreate the kinetics estimate for each reaction and may fail if the database is different." ] }, { @@ -29,8 +31,8 @@ "metadata": {}, "outputs": [], "source": [ - "chemFile = './data/parseSource/chem_annotated.inp'\n", - "dictFile = './data/parseSource/species_dictionary.txt'" + "chem_file = './data/parse_source/chem_annotated.inp'\n", + "dict_file = './data/parse_source/species_dictionary.txt'" ] }, { @@ -39,7 +41,7 @@ "metadata": {}, "outputs": [], "source": [ - "uncertainty = Uncertainty(outputDirectory='./temp/uncertainty')" + "uncertainty = Uncertainty(output_directory='./temp/uncertainty')" ] }, { @@ -48,7 +50,7 @@ "metadata": {}, "outputs": [], "source": [ - "uncertainty.loadModel(chemFile, dictFile)" + "uncertainty.load_model(chem_file, dict_file)" ] }, { @@ -59,10 +61,10 @@ "source": [ "# NOTE: You must load the database with the same settings which were used to generate the model.\n", "# This includes any thermo or kinetics libraries which were used.\n", - "uncertainty.loadDatabase(\n", - " thermoLibraries=['DFT_QCI_thermo', 'primaryThermoLibrary'],\n", - " kineticsFamilies='all',\n", - " reactionLibraries=[],\n", + "uncertainty.load_database(\n", + " thermo_libraries=['DFT_QCI_thermo', 'primaryThermoLibrary'],\n", + " kinetics_families='default',\n", + " reaction_libraries=[],\n", ")" ] }, @@ -72,8 +74,8 @@ "metadata": {}, "outputs": [], "source": [ - "uncertainty.extractSourcesFromModel()\n", - "uncertainty.compileAllSources()" + "uncertainty.extract_sources_from_model()\n", + "uncertainty.compile_all_sources()" ] }, { @@ -84,36 +86,36 @@ }, "outputs": [], "source": [ - "print 'All Kinetic Sources'\n", - "for sourceType in uncertainty.allKineticSources.keys():\n", + "print('All Kinetic Sources')\n", + "for sourceType in uncertainty.all_kinetic_sources.keys():\n", " if sourceType == 'Library':\n", - " print '============'\n", - " print 'Library kinetics'\n", - " print ''\n", - " print '\\tReactions: ', uncertainty.allKineticSources['Library']\n", + " print('============')\n", + " print('Library kinetics')\n", + " print('')\n", + " print('\\tReactions: ', uncertainty.all_kinetic_sources['Library'])\n", " elif sourceType == 'PDep':\n", - " print '============'\n", - " print 'PDep kinetics'\n", - " print ''\n", - " print '\\tReactions: ', uncertainty.allKineticSources['PDep']\n", + " print('============')\n", + " print('PDep kinetics')\n", + " print('')\n", + " print('\\tReactions: ', uncertainty.all_kinetic_sources['PDep'])\n", " elif sourceType == 'Rate Rules':\n", - " print '============'\n", - " print 'Rate rule kinetics'\n", - " print ''\n", - " for familyLabel, entries in uncertainty.allKineticSources['Rate Rules'].iteritems():\n", - " print '\\t', familyLabel\n", + " print('============')\n", + " print('Rate rule kinetics')\n", + " print('')\n", + " for familyLabel, entries in uncertainty.all_kinetic_sources['Rate Rules'].items():\n", + " print('\\t', familyLabel)\n", " for entry in entries:\n", - " print '\\t\\t', entry\n", + " print('\\t\\t', entry)\n", " elif sourceType == 'Training':\n", - " print '============'\n", - " print 'Training reaction kinetics'\n", - " print ''\n", - " for familyLabel, entries in uncertainty.allKineticSources['Training'].iteritems():\n", - " print '\\t', familyLabel\n", + " print('============')\n", + " print('Training reaction kinetics')\n", + " print('')\n", + " for familyLabel, entries in uncertainty.all_kinetic_sources['Training'].items():\n", + " print('\\t', familyLabel)\n", " for entry in entries:\n", - " print '\\t\\t', entry\n", + " print('\\t\\t', entry)\n", " else:\n", - " print sourceType\n", + " print(sourceType)\n", " raise Exception('Kinetics source must be Library, PDep, Rate Rules, or Training')" ] }, @@ -123,26 +125,26 @@ "metadata": {}, "outputs": [], "source": [ - "print 'All Thermo Sources'\n", - "for sourceType in uncertainty.allThermoSources.keys():\n", + "print('All Thermo Sources')\n", + "for sourceType in uncertainty.all_thermo_sources.keys():\n", " if sourceType == 'Library':\n", - " print '============'\n", - " print 'Library thermo'\n", - " print ''\n", - " print '\\tSpecies: ', uncertainty.allThermoSources['Library']\n", + " print('============')\n", + " print('Library thermo')\n", + " print('')\n", + " print('\\tSpecies: ', uncertainty.all_thermo_sources['Library'])\n", " elif sourceType == 'QM':\n", - " print '============'\n", - " print 'QM thermo'\n", - " print ''\n", - " print '\\tSpecies: ', uncertainty.allThermoSources['QM']\n", + " print('============')\n", + " print('QM thermo')\n", + " print('')\n", + " print('\\tSpecies: ', uncertainty.all_thermo_sources['QM'])\n", " elif sourceType == 'GAV':\n", - " print '============'\n", - " print 'Group additivity thermo'\n", - " print ''\n", - " for groupType, entries in uncertainty.allThermoSources['GAV'].iteritems():\n", - " print '\\t', groupType\n", + " print('============')\n", + " print('Group additivity thermo')\n", + " print('')\n", + " for groupType, entries in uncertainty.all_thermo_sources['GAV'].items():\n", + " print('\\t', groupType)\n", " for entry in entries:\n", - " print '\\t\\t', entry\n", + " print('\\t\\t', entry)\n", " else:\n", " raise Exception('Thermo source must be GAV, QM, or Library')" ] @@ -156,7 +158,7 @@ "# Assign all the uncertainties using the Uncertainty() class function\n", "# ThermoParameterUncertainty and KineticParameterUncertainty classes may be customized and passed into this function\n", "# if non-default constants for constructing the uncertainties are desired\n", - "uncertainty.assignParameterUncertainties()" + "uncertainty.assign_parameter_uncertainties()" ] }, { @@ -175,8 +177,8 @@ "metadata": {}, "outputs": [], "source": [ - "gParamEngine = ThermoParameterUncertainty()\n", - "kParamEngine = KineticParameterUncertainty()" + "g_param_engine = ThermoParameterUncertainty()\n", + "k_param_engine = KineticParameterUncertainty()" ] }, { @@ -185,59 +187,56 @@ "metadata": {}, "outputs": [], "source": [ - "for rxn, source in uncertainty.reactionSourcesDict.iteritems():\n", - " print '======'\n", - " print rxn\n", + "for rxn, source in uncertainty.reaction_sources_dict.items():\n", + " print('======')\n", + " print(rxn)\n", " display(rxn)\n", " if 'Library' in source:\n", - " print 'Library reaction'\n", - " print source['Library']\n", + " print('Library reaction')\n", + " print(source['Library'])\n", " elif 'PDep' in source:\n", - " print 'PDep reaction'\n", - " print source['PDep']\n", + " print('PDep reaction')\n", + " print(source['PDep'])\n", " elif 'Rate Rules' in source:\n", - " print 'Rate rule estimate'\n", + " print('Rate rule estimate')\n", " family = source['Rate Rules'][0]\n", " sourceDict = source['Rate Rules'][1]\n", " originalTemplate = sourceDict['template']\n", - " print '\\tFamily = ', family\n", - " print '\\tOriginal Template = ', [group.label for group in originalTemplate]\n", - " print '\\tExact = ', sourceDict['exact']\n", + " print('\\tFamily = ', family)\n", + " print('\\tOriginal Template = ', [group.label for group in originalTemplate])\n", + " print('\\tExact = ', sourceDict['exact'])\n", " rules = sourceDict['rules']\n", " training = sourceDict['training']\n", " if rules:\n", - " print '\\tRate rule sources:'\n", + " print('\\tRate rule sources:')\n", " for ruleEntry, weight in rules:\n", - " print '\\t\\t', ruleEntry, '=', weight\n", + " print('\\t\\t', ruleEntry, '=', weight)\n", " if training:\n", - " print '\\tTraining sources:'\n", + " print('\\tTraining sources:')\n", " for ruleEntry, trainingEntry, weight in training:\n", - " print '\\t\\t', ruleEntry , 'mapped to', trainingEntry , '=', weight\n", + " print('\\t\\t', ruleEntry , 'mapped to', trainingEntry , '=', weight)\n", " elif 'Training' in source:\n", - " print 'Training reaction'\n", + " print('Training reaction')\n", " family = source['Training'][0]\n", " training = source['Training'][1]\n", - " print '\\t Family = ', family\n", - " print '\\t\\t', training\n", - "\n", + " print('\\t Family = ', family)\n", + " print('\\t\\t', training)\n", "\n", - "\n", - " print ''\n", - " print 'Rate coefficient at {} K = {:.2e}'.format(T, rxn.kinetics.getRateCoefficient(T,P))\n", + " print('')\n", + " print('Rate coefficient at {} K = {:.2e}'.format(T, rxn.kinetics.get_rate_coefficient(T,P)))\n", "\n", " # Uncomment the following lines if you want to verify that the parsing has been performed correctly by\n", " # checking the values for both the original and reconstructed kinetics\n", + "# print('---------')\n", + "# print('Original kinetics:')\n", + "# print(rxn.kinetics)\n", + "# print('')\n", + "# print('Reconstructed kinetics from parsing:')\n", + "# reconstructedKinetics = uncertainty.database.kinetics.reconstruct_kinetics_from_source(rxn, source, fix_barrier_height=True)\n", + "# print(reconstructedKinetics)\n", "\n", - "# print '---------'\n", - "# print 'Original kinetics:'\n", - "# print rxn.kinetics\n", - "# print ''\n", - "# print 'Reconstructed kinetics from parsing:'\n", - "# reconstructedKinetics=uncertainty.database.kinetics.reconstructKineticsFromSource(rxn,source,fixBarrierHeight=True)\n", - "# print reconstructedKinetics\n", - "\n", - " rxnIndex = uncertainty.reactionList.index(rxn)\n", - " print 'Uncertainty dln(k) = ', uncertainty.kineticInputUncertainties[rxnIndex]\n", + "# rxnIndex = uncertainty.reaction_list.index(rxn)\n", + "# print('Uncertainty dln(k) = ', uncertainty.kinetic_input_uncertainties[rxnIndex])\n", " \n", "# # Test that the partial uncertainty calculation is working\n", "# dlnk = 0.0\n", @@ -247,19 +246,17 @@ "# rules = sourceDict['rules']\n", "# training = sourceDict['training']\n", "# for ruleEntry, weight in rules:\n", - "# dlnk += kParamEngine.getPartialUncertaintyValue(source, 'Rate Rules', corrParam=ruleEntry, corrFamily=family)\n", + "# dlnk += k_param_engine.get_partial_uncertainty_value(source, 'Rate Rules', corr_param=ruleEntry, corr_family=family)\n", "# for ruleEntry, trainingEntry, weight in training:\n", - "# dlnk += kParamEngine.getPartialUncertaintyValue(source, 'Rate Rules', corrParam=ruleEntry, corrFamily=family)\n", - "# dlnk += kParamEngine.getPartialUncertaintyValue(source, 'Estimation')\n", + "# dlnk += k_param_engine.get_partial_uncertainty_value(source, 'Rate Rules', corr_param=ruleEntry, corr_family=family)\n", + "# dlnk += k_param_engine.get_partial_uncertainty_value(source, 'Estimation')\n", "# elif 'PDep' in source:\n", - "# dlnk += kParamEngine.getPartialUncertaintyValue(source, 'PDep', source['PDep'])\n", + "# dlnk += k_param_engine.get_partial_uncertainty_value(source, 'PDep', source['PDep'])\n", "# elif 'Library' in source:\n", - "# dlnk += kParamEngine.getPartialUncertaintyValue(source, 'Library', source['Library'])\n", + "# dlnk += k_param_engine.get_partial_uncertainty_value(source, 'Library', source['Library'])\n", "# elif 'Training' in source:\n", - "# dlnk += kParamEngine.getPartialUncertaintyValue(source, 'Training', source['Training'])\n", - "# print 'Uncertainty dlnk calculated using sum of partial values = ', dlnk\n", - " \n", - " " + "# dlnk += k_param_engine.get_partial_uncertainty_value(source, 'Training', source['Training'])\n", + "# print('Uncertainty dlnk calculated using sum of partial values = ', dlnk)" ] }, { @@ -268,40 +265,38 @@ "metadata": {}, "outputs": [], "source": [ - "for species, source in uncertainty.speciesSourcesDict.iteritems():\n", - " print '=========='\n", - " print species\n", + "for species, source in uncertainty.species_sources_dict.items():\n", + " print('==========')\n", + " print(species)\n", " display(species)\n", " if 'Library' in source:\n", - " print 'Thermo Library: ', source['Library']\n", + " print('Thermo Library: ', source['Library'])\n", " if 'QM' in source:\n", - " print 'QM: ', source['QM']\n", + " print('QM: ', source['QM'])\n", " if 'GAV' in source:\n", - " print 'Group additivity:'\n", - " for groupType, groupList in source['GAV'].iteritems():\n", - " print '\\t', groupType\n", + " print('Group additivity:')\n", + " for groupType, groupList in source['GAV'].items():\n", + " print('\\t', groupType)\n", " for group, weight in groupList:\n", - " print '\\t\\t', group, '=', weight\n", - " \n", - " \n", - " \n", - " spcIndex = uncertainty.speciesList.index(species) \n", - " print ''\n", - " print 'Uncertainty dG = ', uncertainty.thermoInputUncertainties[spcIndex], ' kcal/mol'\n", + " print('\\t\\t', group, '=', weight)\n", + "\n", + " spcIndex = uncertainty.species_list.index(species) \n", + " print('')\n", + " print('Uncertainty dG = ', uncertainty.thermo_input_uncertainties[spcIndex], ' kcal/mol')\n", " \n", " \n", " # Test that the partial uncertainty calculation is working\n", " dG = 0.0\n", " if 'Library' in source:\n", - " dG += gParamEngine.getPartialUncertaintyValue(source, 'Library', corrParam=source['Library'])\n", + " dG += g_param_engine.get_partial_uncertainty_value(source, 'Library', corr_param=source['Library'])\n", " if 'QM' in source:\n", - " dG += gParamEngine.getPartialUncertaintyValue(source, 'QM',corrParam=source['QM'])\n", + " dG += g_param_engine.get_partial_uncertainty_value(source, 'QM',corr_param=source['QM'])\n", " if 'GAV' in source:\n", - " for groupType, groupList in source['GAV'].iteritems():\n", + " for groupType, groupList in source['GAV'].items():\n", " for group, weight in groupList:\n", - " dG += gParamEngine.getPartialUncertaintyValue(source, 'GAV', group, groupType)\n", - " dG += gParamEngine.getPartialUncertaintyValue(source, 'Estimation')\n", - " print 'Uncertainty dG calculated using sum of partial values = ', dG, ' kcal/mol'" + " dG += g_param_engine.get_partial_uncertainty_value(source, 'GAV', group, groupType)\n", + " dG += g_param_engine.get_partial_uncertainty_value(source, 'Estimation')\n", + " print('Uncertainty dG calculated using sum of partial values = ', dG, ' kcal/mol')" ] }, { @@ -311,7 +306,7 @@ "outputs": [], "source": [ "# Assign correlated parameter uncertainties \n", - "uncertainty.assignParameterUncertainties(correlated=True)" + "uncertainty.assign_parameter_uncertainties(correlated=True)" ] }, { @@ -321,7 +316,7 @@ "outputs": [], "source": [ "# See the thermo correlated parameter partial uncertainties\n", - "uncertainty.thermoInputUncertainties" + "uncertainty.thermo_input_uncertainties" ] }, { @@ -333,27 +328,34 @@ "outputs": [], "source": [ "# See the kinetics correlated parameter partial uncertainties\n", - "uncertainty.kineticInputUncertainties" + "uncertainty.kinetic_input_uncertainties" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/ipython/generateReactions.ipynb b/ipython/generateReactions.ipynb index 96a1fb6ded..df2aa6bb46 100644 --- a/ipython/generateReactions.ipynb +++ b/ipython/generateReactions.ipynb @@ -12,10 +12,8 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "from rmgpy.rmg.main import RMG\n", @@ -34,27 +32,25 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "database = \"\"\"\n", - "database(\t\t\n", + "database(\n", " thermoLibraries = ['BurkeH2O2','primaryThermoLibrary','DFT_QCI_thermo','CBS_QB3_1dHR','Narayanaswamy','Chernov'],\t\t\n", - " reactionLibraries = [],\t\t\n", - " seedMechanisms = [],\t\t\n", - " kineticsDepositories = ['training'],\t\t\n", + " reactionLibraries = [],\n", + " seedMechanisms = [],\n", + " kineticsDepositories = ['training'],\n", " kineticsFamilies = [\n", - " 'H_Abstraction',\n", - " 'R_Addition_MultipleBond',\n", - " 'intra_H_migration',\n", - " 'Intra_R_Add_Endocyclic',\n", - " 'Intra_R_Add_Exocyclic'\n", + " 'H_Abstraction',\n", + " 'R_Addition_MultipleBond',\n", + " 'intra_H_migration',\n", + " 'Intra_R_Add_Endocyclic',\n", + " 'Intra_R_Add_Exocyclic'\n", " ],\n", - " kineticsEstimator = 'rate rules',\t\t\n", - ")\t\n", + " kineticsEstimator = 'rate rules',\n", + ")\n", "\n", "options(\n", " verboseComments=True, # Set to True for detailed kinetics comments\n", @@ -71,16 +67,14 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ - "speciesList = \"\"\"\n", - "species(\t\t\n", + "species_list = \"\"\"\n", + "species(\n", " label='i1',\n", - " reactive=True,\t\t\n", + " reactive=True,\n", " structure=adjacencyList(\n", " \\\"\"\"\n", " multiplicity 2\n", @@ -112,24 +106,20 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "# Write input file to disk\n", - "inputFile = open('temp/input.py','w')\n", - "inputFile.write(database)\n", - "inputFile.write(speciesList)\n", - "inputFile.close()" + "with open('temp/input.py','w') as input_file:\n", + " input_file.write(database)\n", + " input_file.write(species_list)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [], @@ -137,20 +127,17 @@ "# Execute generate reactions\n", "from rmgpy.tools.generate_reactions import RMG, execute\n", "kwargs = {\n", - " 'restart': '',\n", - " 'walltime': '00:00:00:00',\n", - " 'kineticsdatastore': True\n", - " }\n", - "rmg = RMG(inputFile='temp/input.py', outputDirectory='temp')\n", + " 'walltime': '00:00:00:00',\n", + " 'kineticsdatastore': True\n", + "}\n", + "rmg = RMG(input_file='temp/input.py', output_directory='temp')\n", "rmg = execute(rmg, **kwargs)" ] }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "# Pick some temperature to evaluate the forward and reverse kinetics\n", @@ -159,846 +146,38 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=1, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=2, label=\"CC=Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.742937,0.0543143,1.95448e-05,-5.98574e-08,2.53336e-11,11068.7,25.7029], Tmin=(100,'K'), Tmax=(1005.86,'K')), NASAPolynomial(coeffs=[15.4891,0.0363121,-1.42119e-05,2.68206e-09,-1.93064e-13,6046.35,-55.7442], Tmin=(1005.86,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(90.9289,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(448.981,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)HHH) + other(R) + group(Cb-(Cds-Cds)) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCbH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(90.9289,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC=Cc1ccccc1\"), Molecule(SMILES=\"CC=CC1C=CC=CC=1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=3, label=\"[H]\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[2.5,1.80964e-12,-2.29325e-15,9.44342e-19,-1.19532e-22,25472.7,-0.454534], Tmin=(100,'K'), Tmax=(4681,'K')), NASAPolynomial(coeffs=[2.49199,6.74572e-06,-2.12911e-09,2.98597e-13,-1.57e-17,25480.3,-0.403389], Tmin=(4681,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(211.792,'kJ/mol'), Cp0=(20.7862,'J/(mol*K)'), CpInf=(20.7862,'J/(mol*K)'), comment=\"\"\"Thermo library: KlippensteinH2O2\"\"\"), conformer=Conformer(E0=(211.792,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[H]\")], molecularWeight=(1.00794,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(2.424e+10,'s^-1'), n=0.914, Ea=(34.551,'kcal/mol'), T0=(1,'K'), comment=\"\"\"Matched reaction 78 C9H11-11 <=> C9H10-7 + H in R_Addition_MultipleBond/training\"\"\"), pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=2, label=\"CC=Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.742937,0.0543143,1.95448e-05,-5.98574e-08,2.53336e-11,11068.7,25.7029], Tmin=(100,'K'), Tmax=(1005.86,'K')), NASAPolynomial(coeffs=[15.4891,0.0363121,-1.42119e-05,2.68206e-09,-1.93064e-13,6046.35,-55.7442], Tmin=(1005.86,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(90.9289,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(448.981,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)HHH) + other(R) + group(Cb-(Cds-Cds)) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCbH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(90.9289,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC=Cc1ccccc1\"), Molecule(SMILES=\"CC=CC1C=CC=CC=1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=3, label=\"[H]\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[2.5,1.80964e-12,-2.29325e-15,9.44342e-19,-1.19532e-22,25472.7,-0.454534], Tmin=(100,'K'), Tmax=(4681,'K')), NASAPolynomial(coeffs=[2.49199,6.74572e-06,-2.12911e-09,2.98597e-13,-1.57e-17,25480.3,-0.403389], Tmin=(4681,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(211.792,'kJ/mol'), Cp0=(20.7862,'J/(mol*K)'), CpInf=(20.7862,'J/(mol*K)'), comment=\"\"\"Thermo library: KlippensteinH2O2\"\"\"), conformer=Conformer(E0=(211.792,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[H]\")], molecularWeight=(1.00794,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = R_Addition_MultipleBond\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: CC=Cc1ccccc1\n", - "SMILES: CC=Cc1ccccc1\n", - "Label: [H]\n", - "SMILES: [H]\n", - "\n", - "! Template reaction: R_Addition_MultipleBond\n", - "! Flux pairs: i1(1), C9H10(2); i1(1), H(3); \n", - "! Matched reaction 78 C9H11-11 <=> C9H10-7 + H in R_Addition_MultipleBond/training\n", - "i1(1)=C9H10(2)+H(3) 2.424e+10 0.914 34.551 \n", - "\n", - "\n", - "Heat of Reaction = 32.56 kcal/mol\n", - "Forward kinetics at 623.0 K: 6.58E+00\n", - "Reverse kinetics at 623.0 K: 2.17E+06\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=2, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=3, label=\"[H]\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[2.5,1.80964e-12,-2.29325e-15,9.44342e-19,-1.19532e-22,25472.7,-0.454534], Tmin=(100,'K'), Tmax=(4681,'K')), NASAPolynomial(coeffs=[2.49199,6.74572e-06,-2.12911e-09,2.98597e-13,-1.57e-17,25480.3,-0.403389], Tmin=(4681,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(211.792,'kJ/mol'), Cp0=(20.7862,'J/(mol*K)'), CpInf=(20.7862,'J/(mol*K)'), comment=\"\"\"Thermo library: KlippensteinH2O2\"\"\"), conformer=Conformer(E0=(211.792,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[H]\")], molecularWeight=(1.00794,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=4, label=\"C=CCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.1519,0.0399344,6.53641e-05,-1.09403e-07,4.33249e-11,13892.1,23.5662], Tmin=(100,'K'), Tmax=(979.11,'K')), NASAPolynomial(coeffs=[16.0996,0.034971,-1.2982e-05,2.46446e-09,-1.81527e-13,8275.88,-61.9651], Tmin=(979.11,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(114.485,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(448.981,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)CbHH) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cds-CdsHH) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(114.485,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C=CCc1ccccc1\"), Molecule(SMILES=\"C=CCC1C=CC=CC=1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(4.935e+11,'s^-1'), n=0.894, Ea=(35.284,'kcal/mol'), T0=(1,'K'), comment=\"\"\"Matched reaction 77 C9H11-10 <=> C9H10-6 + H in R_Addition_MultipleBond/training\n", - "Ea raised from 146.0 to 147.6 kJ/mol to match endothermicity of reaction.\"\"\"), pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=4, label=\"C=CCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.1519,0.0399344,6.53641e-05,-1.09403e-07,4.33249e-11,13892.1,23.5662], Tmin=(100,'K'), Tmax=(979.11,'K')), NASAPolynomial(coeffs=[16.0996,0.034971,-1.2982e-05,2.46446e-09,-1.81527e-13,8275.88,-61.9651], Tmin=(979.11,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(114.485,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(448.981,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)CbHH) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cds-CdsHH) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(114.485,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C=CCc1ccccc1\"), Molecule(SMILES=\"C=CCC1C=CC=CC=1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=3, label=\"[H]\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[2.5,1.80964e-12,-2.29325e-15,9.44342e-19,-1.19532e-22,25472.7,-0.454534], Tmin=(100,'K'), Tmax=(4681,'K')), NASAPolynomial(coeffs=[2.49199,6.74572e-06,-2.12911e-09,2.98597e-13,-1.57e-17,25480.3,-0.403389], Tmin=(4681,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(211.792,'kJ/mol'), Cp0=(20.7862,'J/(mol*K)'), CpInf=(20.7862,'J/(mol*K)'), comment=\"\"\"Thermo library: KlippensteinH2O2\"\"\"), conformer=Conformer(E0=(211.792,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[H]\")], molecularWeight=(1.00794,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = R_Addition_MultipleBond\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: [H]\n", - "SMILES: [H]\n", - "Label: C=CCc1ccccc1\n", - "SMILES: C=CCc1ccccc1\n", - "\n", - "! Template reaction: R_Addition_MultipleBond\n", - "! Flux pairs: i1(1), C9H10(4); i1(1), H(3); \n", - "! Matched reaction 77 C9H11-10 <=> C9H10-6 + H in R_Addition_MultipleBond/training\n", - "! Ea raised from 146.0 to 147.6 kJ/mol to match endothermicity of reaction.\n", - "i1(1)=H(3)+C9H10(4) 4.935e+11 0.894 35.284 \n", - "\n", - "\n", - "Heat of Reaction = 37.43 kcal/mol\n", - "Forward kinetics at 623.0 K: 6.52E+01\n", - "Reverse kinetics at 623.0 K: 1.98E+10\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\nQmCC\n", - "text/plain": [ - "Reaction(index=3, reactants=[Species(index=5, label=\"C=CC\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[3.31912,0.00817958,3.34736e-05,-4.36194e-08,1.58214e-11,749.325,9.54025], Tmin=(100,'K'), Tmax=(983.754,'K')), NASAPolynomial(coeffs=[5.36755,0.0170743,-6.35108e-06,1.1662e-09,-8.27621e-14,-487.137,-4.54466], Tmin=(983.754,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(5.9763,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(203.705,'J/(mol*K)'), comment=\"\"\"Thermo library: DFT_QCI_thermo\"\"\"), conformer=Conformer(E0=(5.9763,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C=CC\")], molecularWeight=(42.0797,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=6, label=\"[c]1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.87655,0.0626806,-4.87402e-05,1.41122e-08,5.18518e-13,39926.9,45.9964], Tmin=(298,'K'), Tmax=(1000,'K')), NASAPolynomial(coeffs=[1.38016,0.0404032,-2.42251e-05,6.88723e-09,-7.50961e-13,38697.4,15.5221], Tmin=(1000,'K'), Tmax=(3000,'K'))], Tmin=(298,'K'), Tmax=(3000,'K'), E0=(326.78,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(257.749,'J/(mol*K)'), comment=\"\"\"Thermo library: Narayanaswamy\"\"\"), conformer=Conformer(E0=(326.78,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[c]1ccccc1\"), Molecule(SMILES=\"[C]1=CC=CC=C1\"), Molecule(SMILES=\"C1=C[CH]C=CC=1\")], molecularWeight=(77.1039,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(214.5,'cm^3/(mol*s)'), n=3.05, Ea=(0.83,'kcal/mol'), T0=(1,'K'), comment=\"\"\"Matched reaction 73 propene_1 + C6H5 <=> C9H11-6 in R_Addition_MultipleBond/training\"\"\"), pairs=[(Species(index=5, label=\"C=CC\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[3.31912,0.00817958,3.34736e-05,-4.36194e-08,1.58214e-11,749.325,9.54025], Tmin=(100,'K'), Tmax=(983.754,'K')), NASAPolynomial(coeffs=[5.36755,0.0170743,-6.35108e-06,1.1662e-09,-8.27621e-14,-487.137,-4.54466], Tmin=(983.754,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(5.9763,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(203.705,'J/(mol*K)'), comment=\"\"\"Thermo library: DFT_QCI_thermo\"\"\"), conformer=Conformer(E0=(5.9763,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C=CC\")], molecularWeight=(42.0797,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=6, label=\"[c]1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.87655,0.0626806,-4.87402e-05,1.41122e-08,5.18518e-13,39926.9,45.9964], Tmin=(298,'K'), Tmax=(1000,'K')), NASAPolynomial(coeffs=[1.38016,0.0404032,-2.42251e-05,6.88723e-09,-7.50961e-13,38697.4,15.5221], Tmin=(1000,'K'), Tmax=(3000,'K'))], Tmin=(298,'K'), Tmax=(3000,'K'), E0=(326.78,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(257.749,'J/(mol*K)'), comment=\"\"\"Thermo library: Narayanaswamy\"\"\"), conformer=Conformer(E0=(326.78,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[c]1ccccc1\"), Molecule(SMILES=\"[C]1=CC=CC=C1\"), Molecule(SMILES=\"C1=C[CH]C=CC=1\")], molecularWeight=(77.1039,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = R_Addition_MultipleBond\n", - "\n", - "Reactants\n", - "Label: C=CC\n", - "SMILES: C=CC\n", - "\n", - "Label: [c]1ccccc1\n", - "SMILES: [c]1ccccc1\n", - "\n", - "Products\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "! Template reaction: R_Addition_MultipleBond\n", - "! Flux pairs: C3H6(5), i1(1); C6H5(6), i1(1); \n", - "! Matched reaction 73 propene_1 + C6H5 <=> C9H11-6 in R_Addition_MultipleBond/training\n", - "C3H6(5)+C6H5(6)=i1(1) 2.145e+02 3.050 0.830 \n", - "\n", - "\n", - "Heat of Reaction = -37.57 kcal/mol\n", - "Forward kinetics at 623.0 K: 3.66E+04\n", - "Reverse kinetics at 623.0 K: 3.03E-01\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\nAElFTkSuQmCC\n", - "text/plain": [ - "Reaction(index=4, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=7, label=\"CC[CH]c1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.373114,0.0635813,3.73085e-06,-4.67424e-08,2.14667e-11,15138.6,25.3807], Tmin=(100,'K'), Tmax=(999.765,'K')), NASAPolynomial(coeffs=[15.8796,0.0386931,-1.46699e-05,2.69755e-09,-1.90868e-13,10181.3,-58.7117], Tmin=(999.765,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(124.665,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(Benzyl_S)\"\"\"), conformer=Conformer(E0=(124.665,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC[CH]c1ccccc1\"), Molecule(SMILES=\"CCC=C1[CH]C=CC=C1\"), Molecule(SMILES=\"CCC=C1C=C[CH]C=C1\"), Molecule(SMILES=\"CC[CH]C1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(1.148e+11,'s^-1'), n=0.537, Ea=(37.159,'kcal/mol'), T0=(1,'K'), comment=\"\"\"Matched reaction 36 C9H11-5 <=> C9H11-6 in intra_H_migration/training\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions matched the same entry in intra_H_migration, but this direction is exergonic.\n", - "dHrxn(298 K) = -52.51 kJ/mol, dGrxn(298 K) = -39.83 kJ/mol\"\"\"), degeneracy=2, pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=7, label=\"CC[CH]c1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.373114,0.0635813,3.73085e-06,-4.67424e-08,2.14667e-11,15138.6,25.3807], Tmin=(100,'K'), Tmax=(999.765,'K')), NASAPolynomial(coeffs=[15.8796,0.0386931,-1.46699e-05,2.69755e-09,-1.90868e-13,10181.3,-58.7117], Tmin=(999.765,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(124.665,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(Benzyl_S)\"\"\"), conformer=Conformer(E0=(124.665,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC[CH]c1ccccc1\"), Molecule(SMILES=\"CCC=C1[CH]C=CC=C1\"), Molecule(SMILES=\"CCC=C1C=C[CH]C=C1\"), Molecule(SMILES=\"CC[CH]C1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = intra_H_migration\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: CC[CH]c1ccccc1\n", - "SMILES: CC[CH]c1ccccc1\n", - "\n", - "! Template reaction: intra_H_migration\n", - "! Flux pairs: i1(1), C9H11(7); \n", - "! Matched reaction 36 C9H11-5 <=> C9H11-6 in intra_H_migration/training\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions matched the same entry in intra_H_migration, but this direction is exergonic.\n", - "! dHrxn(298 K) = -52.51 kJ/mol, dGrxn(298 K) = -39.83 kJ/mol\n", - "i1(1)=C9H11(7) 1.148e+11 0.537 37.159 \n", - "\n", - "\n", - "Heat of Reaction = -11.65 kcal/mol\n", - "Forward kinetics at 623.0 K: 3.35E-01\n", - "Reverse kinetics at 623.0 K: 1.65E-03\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\nAElFTkSuQmCC\n", - "text/plain": [ - "Reaction(index=5, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=8, label=\"[CH2]CCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.63563,0.0555042,2.41377e-05,-6.57951e-08,2.73638e-11,22922.7,29.7975], Tmin=(100,'K'), Tmax=(1009.8,'K')), NASAPolynomial(coeffs=[15.911,0.0385149,-1.52707e-05,2.90043e-09,-2.09358e-13,17618.9,-55.0329], Tmin=(1009.8,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(189.449,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJ)\"\"\"), conformer=Conformer(E0=(189.449,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[CH2]CCc1ccccc1\"), Molecule(SMILES=\"[CH2]CCC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(1.312e+11,'s^-1'), n=0.608, Ea=(39.998,'kcal/mol'), T0=(1,'K'), comment=\"\"\"Matched reaction 35 C9H11-3 <=> C9H11-4 in intra_H_migration/training\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions matched the same entry in intra_H_migration, but this direction is exergonic.\n", - "dHrxn(298 K) = 11.09 kJ/mol, dGrxn(298 K) = 13.22 kJ/mol\"\"\"), degeneracy=3, pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=8, label=\"[CH2]CCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.63563,0.0555042,2.41377e-05,-6.57951e-08,2.73638e-11,22922.7,29.7975], Tmin=(100,'K'), Tmax=(1009.8,'K')), NASAPolynomial(coeffs=[15.911,0.0385149,-1.52707e-05,2.90043e-09,-2.09358e-13,17618.9,-55.0329], Tmin=(1009.8,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(189.449,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJ)\"\"\"), conformer=Conformer(E0=(189.449,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"[CH2]CCc1ccccc1\"), Molecule(SMILES=\"[CH2]CCC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = intra_H_migration\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: [CH2]CCc1ccccc1\n", - "SMILES: [CH2]CCc1ccccc1\n", - "\n", - "! Template reaction: intra_H_migration\n", - "! Flux pairs: i1(1), C9H11(8); \n", - "! Matched reaction 35 C9H11-3 <=> C9H11-4 in intra_H_migration/training\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions matched the same entry in intra_H_migration, but this direction is exergonic.\n", - "! dHrxn(298 K) = 11.09 kJ/mol, dGrxn(298 K) = 13.22 kJ/mol\n", - "i1(1)=C9H11(8) 1.312e+11 0.608 39.998 \n", - "\n", - "\n", - "Heat of Reaction = 3.09 kcal/mol\n", - "Forward kinetics at 623.0 K: 6.11E-02\n", - "Reverse kinetics at 623.0 K: 1.07E+00\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\nu8nhXDMyAAAAAElFTkSuQmCC\n", - "text/plain": [ - "Reaction(index=6, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=9, label=\"CCCc1[c]cccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.548241,0.058419,1.51708e-05,-5.77856e-08,2.51145e-11,28872,28.7846], Tmin=(100,'K'), Tmax=(1000.73,'K')), NASAPolynomial(coeffs=[16.1013,0.0371544,-1.4265e-05,2.66743e-09,-1.91248e-13,23711.1,-56.4943], Tmin=(1000.73,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(238.894,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(238.894,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1[c]cccc1\"), Molecule(SMILES=\"CCCC1=[C]C=CC=C1\"), Molecule(SMILES=\"CCCC1[C]=CC=CC=1\"), Molecule(SMILES=\"CCCC1=C=CC=C[CH]1\"), Molecule(SMILES=\"CCCC1=C=C[CH]C=C1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.003481,'s^-1'), n=4.357, Ea=(21.411,'kcal/mol'), T0=(1,'K'), comment=\"\"\"Matched reaction 37 C9H11-7 <=> C9H11-8 in intra_H_migration/training\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions matched the same entry in intra_H_migration, but this direction is exergonic.\n", - "dHrxn(298 K) = 60.88 kJ/mol, dGrxn(298 K) = 65.43 kJ/mol\"\"\"), degeneracy=2, pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=9, label=\"CCCc1[c]cccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.548241,0.058419,1.51708e-05,-5.77856e-08,2.51145e-11,28872,28.7846], Tmin=(100,'K'), Tmax=(1000.73,'K')), NASAPolynomial(coeffs=[16.1013,0.0371544,-1.4265e-05,2.66743e-09,-1.91248e-13,23711.1,-56.4943], Tmin=(1000.73,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(238.894,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(238.894,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1[c]cccc1\"), Molecule(SMILES=\"CCCC1=[C]C=CC=C1\"), Molecule(SMILES=\"CCCC1[C]=CC=CC=1\"), Molecule(SMILES=\"CCCC1=C=CC=C[CH]1\"), Molecule(SMILES=\"CCCC1=C=C[CH]C=C1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = intra_H_migration\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: CCCc1[c]cccc1\n", - "SMILES: CCCc1[c]cccc1\n", - "\n", - "! Template reaction: intra_H_migration\n", - "! Flux pairs: i1(1), C9H11(9); \n", - "! Matched reaction 37 C9H11-7 <=> C9H11-8 in intra_H_migration/training\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions matched the same entry in intra_H_migration, but this direction is exergonic.\n", - "! dHrxn(298 K) = 60.88 kJ/mol, dGrxn(298 K) = 65.43 kJ/mol\n", - "i1(1)=C9H11(9) 3.481e-03 4.357 21.411 \n", - "\n", - "\n", - "Heat of Reaction = 15.01 kcal/mol\n", - "Forward kinetics at 623.0 K: 1.61E+02\n", - "Reverse kinetics at 623.0 K: 1.10E+08\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=7, reactants=[Species(index=10, label=\"CCCc1c[c]ccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.548241,0.058419,1.51708e-05,-5.77856e-08,2.51145e-11,28872,28.7846], Tmin=(100,'K'), Tmax=(1000.73,'K')), NASAPolynomial(coeffs=[16.1013,0.0371544,-1.4265e-05,2.66743e-09,-1.91248e-13,23711.1,-56.4943], Tmin=(1000.73,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(238.894,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(238.894,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1c[c]ccc1\"), Molecule(SMILES=\"CCCC1C=CC=[C]C=1\"), Molecule(SMILES=\"CCCC1C=[C]C=CC=1\"), Molecule(SMILES=\"CCCC1C=C=C[CH]C=1\"), Molecule(SMILES=\"CCC[C]1C=C=CC=C1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(18494,'s^-1'), n=1.9413, Ea=(37.9044,'kJ/mol'), T0=(1,'K'), comment=\"\"\"Average of [Average of [Average of [Average of [Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [R5H_SSSS_OO(Cs/Cs)Cs;O_rad_out;Cs_H_out_H/NonDeC] + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC] + Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] + Average of [Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC]] + Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]] + Average of [Average of [Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]]] + Average of [Average of [Average of [Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]] + Average of [Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]]]]\n", - "Estimated using template [R5H;Y_rad_out;Cs_H_out_H/NonDeC] for rate rule [R5H;Cb_rad_out;Cs_H_out_H/NonDeC]\n", - "Multiplied by reaction path degeneracy 4\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions are estimates, but this direction is exergonic.\n", - "dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\"\"\"), degeneracy=4, pairs=[(Species(index=10, label=\"CCCc1c[c]ccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.548241,0.058419,1.51708e-05,-5.77856e-08,2.51145e-11,28872,28.7846], Tmin=(100,'K'), Tmax=(1000.73,'K')), NASAPolynomial(coeffs=[16.1013,0.0371544,-1.4265e-05,2.66743e-09,-1.91248e-13,23711.1,-56.4943], Tmin=(1000.73,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(238.894,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(238.894,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1c[c]ccc1\"), Molecule(SMILES=\"CCCC1C=CC=[C]C=1\"), Molecule(SMILES=\"CCCC1C=[C]C=CC=1\"), Molecule(SMILES=\"CCCC1C=C=C[CH]C=1\"), Molecule(SMILES=\"CCC[C]1C=C=CC=C1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = intra_H_migration\n", - "\n", - "Reactants\n", - "Label: CCCc1c[c]ccc1\n", - "SMILES: CCCc1c[c]ccc1\n", - "\n", - "Products\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "! Template reaction: intra_H_migration\n", - "! Flux pairs: C9H11(10), i1(1); \n", - "! Average of [Average of [Average of [Average of [Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC] + Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [R5H_SSSS_OO(Cs/Cs)Cs;O_rad_out;Cs_H_out_H/NonDeC] +\n", - "! R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC] + Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC] +\n", - "! Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] + Average of\n", - "! [Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC]] + Average of [Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] +\n", - "! Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of\n", - "! [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]] + Average of [Average of [Average of [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC\n", - "! + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] +\n", - "! Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of\n", - "! [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of\n", - "! [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]]] + Average of [Average of [Average of [Average of\n", - "! [R5H_CCCC_O;O_rad_out;Cs_H_out_H/NonDeC + R5H_SSSS_OOCCC;O_rad_out;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of [Average of\n", - "! [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of\n", - "! [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] +\n", - "! Average of [Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] + Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] +\n", - "! Average of [Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]] + Average of [Average of [Average of [Average of\n", - "! [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC] + Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]] +\n", - "! Average of [Average of [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of\n", - "! [R5H_SSSS_CsCsCsSCs;C_rad_out_H/NonDeC;Cs_H_out_H/NonDeC]]]]]]]\n", - "! Estimated using template [R5H;Y_rad_out;Cs_H_out_H/NonDeC] for rate rule [R5H;Cb_rad_out;Cs_H_out_H/NonDeC]\n", - "! Multiplied by reaction path degeneracy 4\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions are estimates, but this direction is exergonic.\n", - "! dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\n", - "C9H11(10)=i1(1) 1.849e+04 1.941 9.059 \n", - "\n", - "\n", - "Heat of Reaction = -15.01 kcal/mol\n", - "Forward kinetics at 623.0 K: 3.27E+06\n", - "Reverse kinetics at 623.0 K: 4.80E+00\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "Reaction(index=8, reactants=[Species(index=11, label=\"CCCc1cc[c]cc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.548241,0.058419,1.51708e-05,-5.77856e-08,2.51145e-11,28872,28.7846], Tmin=(100,'K'), Tmax=(1000.73,'K')), NASAPolynomial(coeffs=[16.1013,0.0371544,-1.4265e-05,2.66743e-09,-1.91248e-13,23711.1,-56.4943], Tmin=(1000.73,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(238.894,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(238.894,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1cc[c]cc1\"), Molecule(SMILES=\"CCCC1C=C[C]=CC=1\"), Molecule(SMILES=\"CCCC1[CH]C=C=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(6.48e+06,'s^-1'), n=1.22, Ea=(69.4544,'kJ/mol'), T0=(1,'K'), comment=\"\"\"Average of [Average of [Average of [Average of [Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC] + Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]] + Average of [Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]]]]]\n", - "Estimated using template [R6H;Y_rad_out;Cs_H_out_H/NonDeC] for rate rule [R6H;Cb_rad_out;Cs_H_out_H/NonDeC]\n", - "Multiplied by reaction path degeneracy 4\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions are estimates, but this direction is exergonic.\n", - "dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\"\"\"), degeneracy=2, pairs=[(Species(index=11, label=\"CCCc1cc[c]cc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.548241,0.058419,1.51708e-05,-5.77856e-08,2.51145e-11,28872,28.7846], Tmin=(100,'K'), Tmax=(1000.73,'K')), NASAPolynomial(coeffs=[16.1013,0.0371544,-1.4265e-05,2.66743e-09,-1.91248e-13,23711.1,-56.4943], Tmin=(1000.73,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(238.894,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(238.894,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1cc[c]cc1\"), Molecule(SMILES=\"CCCC1C=C[C]=CC=1\"), Molecule(SMILES=\"CCCC1[CH]C=C=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = intra_H_migration\n", - "\n", - "Reactants\n", - "Label: CCCc1cc[c]cc1\n", - "SMILES: CCCc1cc[c]cc1\n", - "\n", - "Products\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "! Template reaction: intra_H_migration\n", - "! Flux pairs: C9H11(11), i1(1); \n", - "! Average of [Average of [Average of [Average of [Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC] + Average of\n", - "! [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]] + Average of [Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]]] + Average of [Average of [Average of\n", - "! [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]]]] + Average of [Average of [Average of [Average of [R6H_SSSSS_OO;O_rad_out;Cs_H_out_H/NonDeC]]]]]\n", - "! Estimated using template [R6H;Y_rad_out;Cs_H_out_H/NonDeC] for rate rule [R6H;Cb_rad_out;Cs_H_out_H/NonDeC]\n", - "! Multiplied by reaction path degeneracy 4\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions are estimates, but this direction is exergonic.\n", - "! dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\n", - "C9H11(11)=i1(1) 6.480e+06 1.220 16.600 \n", - "\n", - "\n", - "Heat of Reaction = -15.01 kcal/mol\n", - "Forward kinetics at 623.0 K: 2.50E+04\n", - "Reverse kinetics at 623.0 K: 3.67E-02\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n2hDsVwYAAAAASUVORK5CYII=\n", - "text/plain": [ - "Reaction(index=9, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=12, label=\"CC1CC12[CH]C=CC=C2\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.13456,0.0361122,9.1249e-05,-1.41024e-07,5.54311e-11,30358.9,21.4199], Tmin=(100,'K'), Tmax=(967.705,'K')), NASAPolynomial(coeffs=[17.4745,0.0358496,-1.26294e-05,2.38338e-09,-1.7751e-13,24046.3,-73.1506], Tmin=(967.705,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(251.359,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(478.082,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + other(R) + group(Cs-CsCsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + polycyclic(s1_3_6_diene_1_4) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(251.359,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC1CC12C=C[CH]C=C2\"), Molecule(SMILES=\"CC1CC12[CH]C=CC=C2\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(4.07693e+14,'s^-1'), n=-0.537569, Ea=(90.4981,'kJ/mol'), T0=(1,'K'), Tmin=(303.03,'K'), Tmax=(2000,'K'), comment=\"\"\"Average of [Average of [R4_S_D;doublebond_intra_2H_secDe;radadd_intra_csHNd from training reaction 2]]\n", - "Estimated using template [R4_S_D;doublebond_intra;radadd_intra_csHNd] for rate rule [R4_S_D;doublebond_intra_HDe_secDe;radadd_intra_csHNd]\"\"\"), pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=12, label=\"CC1CC12[CH]C=CC=C2\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.13456,0.0361122,9.1249e-05,-1.41024e-07,5.54311e-11,30358.9,21.4199], Tmin=(100,'K'), Tmax=(967.705,'K')), NASAPolynomial(coeffs=[17.4745,0.0358496,-1.26294e-05,2.38338e-09,-1.7751e-13,24046.3,-73.1506], Tmin=(967.705,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(251.359,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(478.082,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + other(R) + group(Cs-CsCsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + polycyclic(s1_3_6_diene_1_4) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(251.359,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC1CC12C=C[CH]C=C2\"), Molecule(SMILES=\"CC1CC12[CH]C=CC=C2\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = Intra_R_Add_Exocyclic\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: CC1CC12[CH]C=CC=C2\n", - "SMILES: CC1CC12C=C[CH]C=C2\n", - "\n", - "! Template reaction: Intra_R_Add_Exocyclic\n", - "! Flux pairs: i1(1), C9H11(12); \n", - "! Average of [Average of [R4_S_D;doublebond_intra_2H_secDe;radadd_intra_csHNd from training reaction 2]]\n", - "! Estimated using template [R4_S_D;doublebond_intra;radadd_intra_csHNd] for rate rule [R4_S_D;doublebond_intra_HDe_secDe;radadd_intra_csHNd]\n", - "i1(1)=C9H11(12) 4.077e+14 -0.538 21.630 \n", - "\n", - "\n", - "Heat of Reaction = 17.17 kcal/mol\n", - "Forward kinetics at 623.0 K: 3.32E+05\n", - "Reverse kinetics at 623.0 K: 5.19E+15\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=10, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=13, label=\"CC1CC2=CC=C[CH]C21\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.34927,0.0343687,8.49496e-05,-1.26527e-07,4.82515e-11,35810,20.7826], Tmin=(100,'K'), Tmax=(985.052,'K')), NASAPolynomial(coeffs=[14.4917,0.0406701,-1.55072e-05,2.95419e-09,-2.16537e-13,30325.9,-57.1183], Tmin=(985.052,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(296.771,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(478.082,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + polycyclic(s2_4_6_diene_1_3) + radical(Allyl_T)\"\"\"), conformer=Conformer(E0=(296.771,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC1C[C]2C=CC=CC21\"), Molecule(SMILES=\"CC1CC2=C[CH]C=CC21\"), Molecule(SMILES=\"CC1CC2=CC=C[CH]C21\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(6.19e+11,'s^-1'), n=0.21, Ea=(118.122,'kJ/mol'), T0=(1,'K'), Tmin=(300,'K'), Tmax=(1500,'K'), comment=\"\"\"Exact match found for rate rule [R5_SS_D;doublebond_intra_HCd_pri;radadd_intra_csHNd]\n", - "Ea raised from 115.8 to 118.1 kJ/mol to match endothermicity of reaction.\"\"\"), pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=13, label=\"CC1CC2=CC=C[CH]C21\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.34927,0.0343687,8.49496e-05,-1.26527e-07,4.82515e-11,35810,20.7826], Tmin=(100,'K'), Tmax=(985.052,'K')), NASAPolynomial(coeffs=[14.4917,0.0406701,-1.55072e-05,2.95419e-09,-2.16537e-13,30325.9,-57.1183], Tmin=(985.052,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(296.771,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(478.082,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + polycyclic(s2_4_6_diene_1_3) + radical(Allyl_T)\"\"\"), conformer=Conformer(E0=(296.771,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC1C[C]2C=CC=CC21\"), Molecule(SMILES=\"CC1CC2=C[CH]C=CC21\"), Molecule(SMILES=\"CC1CC2=CC=C[CH]C21\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = Intra_R_Add_Exocyclic\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: CC1CC2=CC=C[CH]C21\n", - "SMILES: CC1C[C]2C=CC=CC21\n", - "\n", - "! Template reaction: Intra_R_Add_Exocyclic\n", - "! Flux pairs: i1(1), C9H11(13); \n", - "! Exact match found for rate rule [R5_SS_D;doublebond_intra_HCd_pri;radadd_intra_csHNd]\n", - "! Ea raised from 115.8 to 118.1 kJ/mol to match endothermicity of reaction.\n", - "i1(1)=C9H11(13) 6.190e+11 0.210 28.232 \n", - "\n", - "\n", - "Heat of Reaction = 27.41 kcal/mol\n", - "Forward kinetics at 623.0 K: 2.98E+02\n", - "Reverse kinetics at 623.0 K: 3.56E+16\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=11, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=13, label=\"CC1CC2=CC=C[CH]C21\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.34927,0.0343687,8.49496e-05,-1.26527e-07,4.82515e-11,35810,20.7826], Tmin=(100,'K'), Tmax=(985.052,'K')), NASAPolynomial(coeffs=[14.4917,0.0406701,-1.55072e-05,2.95419e-09,-2.16537e-13,30325.9,-57.1183], Tmin=(985.052,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(296.771,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(478.082,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + polycyclic(s2_4_6_diene_1_3) + radical(Allyl_T)\"\"\"), conformer=Conformer(E0=(296.771,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC1C[C]2C=CC=CC21\"), Molecule(SMILES=\"CC1CC2=C[CH]C=CC21\"), Molecule(SMILES=\"CC1CC2=CC=C[CH]C21\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(1.28e+12,'s^-1'), n=0.19, Ea=(126.357,'kJ/mol'), T0=(1,'K'), Tmin=(300,'K'), Tmax=(1500,'K'), comment=\"\"\"Estimated using template [R4_S_D;doublebond_intra_secDe_HCd;radadd_intra_csHNd] for rate rule [R4_Cs_HH_D;doublebond_intra_secDe_HCd;radadd_intra_csHNd]\n", - "Multiplied by reaction path degeneracy 2\"\"\"), degeneracy=2, pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=13, label=\"CC1CC2=CC=C[CH]C21\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[1.34927,0.0343687,8.49496e-05,-1.26527e-07,4.82515e-11,35810,20.7826], Tmin=(100,'K'), Tmax=(985.052,'K')), NASAPolynomial(coeffs=[14.4917,0.0406701,-1.55072e-05,2.95419e-09,-2.16537e-13,30325.9,-57.1183], Tmin=(985.052,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(296.771,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(478.082,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + polycyclic(s2_4_6_diene_1_3) + radical(Allyl_T)\"\"\"), conformer=Conformer(E0=(296.771,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CC1C[C]2C=CC=CC21\"), Molecule(SMILES=\"CC1CC2=C[CH]C=CC21\"), Molecule(SMILES=\"CC1CC2=CC=C[CH]C21\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = Intra_R_Add_Endocyclic\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: CC1CC2=CC=C[CH]C21\n", - "SMILES: CC1C[C]2C=CC=CC21\n", - "\n", - "! Template reaction: Intra_R_Add_Endocyclic\n", - "! Flux pairs: i1(1), C9H11(13); \n", - "! Estimated using template [R4_S_D;doublebond_intra_secDe_HCd;radadd_intra_csHNd] for rate rule\n", - "! [R4_Cs_HH_D;doublebond_intra_secDe_HCd;radadd_intra_csHNd]\n", - "! Multiplied by reaction path degeneracy 2\n", - "i1(1)=C9H11(13) 1.280e+12 0.190 30.200 \n", - "\n", - "\n", - "Heat of Reaction = 27.41 kcal/mol\n", - "Forward kinetics at 623.0 K: 1.11E+02\n", - "Reverse kinetics at 623.0 K: 1.32E+16\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\nrx9RXldXZ2Njo62tnZSUBMPwKBIYDEZoaKiMjIy3t/fg4CBaDtbeUiiUSWn3dACG4aampiVLljQ3\nN3OXg9H81atXm5mZpaamjmJesJA5ICBARUXl2LFjQ0NDoLy3t9fLy8vBwYFKpU7uOXzpwDCMx+Ot\nra3b2tq4y2k02tOnTy0sLBwcHHJzc0e5RhwOp76+3tfXV1dX9+LFizQaDZQTiUR3d/ddu3ahV+0r\nBIbhmJiYnTt3dnV1cZdTKJQ7d+6Ym5tv3769pKRkFPOy2ezS0lJ3d3cjI6MbN24wGAxQTiAQtm7d\nevToUdTgI5jefplAIGhpaY0oTEtLk5WVvXLlCpvNHqMcMpm8e/duHR0dIpEISmAY3r17NxaL5XbW\nXxUMBuPJkydWVlbchXQ6PS4uTlNT8+bNm2M0L4fDqaur27Ztm4WFRWNjI/I/f+3m5rZ+/fqv+bGf\nOAMDA9HR0W5ubtyFZDL5ypUrRkZGCQkJY7xGw8PDhYWFP/7448aNG1taWhAEAVMLrq6ue/fufZ/v\n+OLp7u6+cOHC4cOHuQvb29tPnjy5du3aFy9ecDicschhMpkvXrxwcnLy9vbu7OxEEASG4ezsbGdn\n5xMnTqDOmpvp7ZePHz/u5+fHXXL79m15efns7OxxSAsPD//uu+8IBAI45HA4mzZtsrKyeqfhpgYY\nhul0+ps3b8b+juEVZDL56NGjZ8+eRUuoVOrly5f19fULCws/VtrAwMCZM2e0tbVLSkoQBIFhuKOj\nw8XFxdXV9ROalyfAMEyhUBobG6f+GjU0NBw5cuTq1atoSUdHR0BAwOrVq1+/fv2x0lpaWvz8/Fat\nWlVVVYUgCAzD5eXlGzZsOHDgAJPJ5GW7PwYOh9PX19fS0jJGJ8hDiouL/f39Y2Nj0RIikXjgwAFX\nV9fa2tqPlVZVVbV79+5NmzbV1dUhCALDcFpa2rp1686dO8disUZUnt5+2cDAICMjAz1MT0+XkZFB\n+7zj4N69e3Jycq2treCQxWLZ29s7OTkNDw9PtK3jYmBg4Pjx41JSUrdv355i1a2trVZWVnl5eeCQ\nTqfHx8fr6+uDPu84GBwcjIyMNDAw6OjoQBAEhuGWlhZ7e/tdu3Z9KvPyBBKJ9NNPP6mpqSUmJk6x\natDJBa86BEHIZHJ4eLi1tTXo846Drq6uc+fO2dvbd3d3IwjC4XBevXplb29/+PDhqX/rACorK11d\n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\n", - "text/plain": [ - "Reaction(index=12, reactants=[Species(index=14, label=\"CCCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.597211,0.054788,3.45123e-05,-7.79215e-08,3.1734e-11,-1759.89,28.1487], Tmin=(100,'K'), Tmax=(1004.37,'K')), NASAPolynomial(coeffs=[16.1145,0.040813,-1.60409e-05,3.0434e-09,-2.19994e-13,-7289.04,-58.7892], Tmin=(1004.37,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(-15.7978,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(494.711,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(-15.7978,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1ccccc1\"), Molecule(SMILES=\"CCCC1C=CC=CC=1\")], molecularWeight=(120.192,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=15, label=\"C[CH]Cc1[c]cccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.760343,0.0584439,-3.52048e-06,-3.03604e-08,1.39202e-11,52246.5,30.7604], Tmin=(100,'K'), Tmax=(1041.09,'K')), NASAPolynomial(coeffs=[13.0469,0.0389724,-1.54267e-05,2.85285e-09,-2.00129e-13,48185.1,-36.2287], Tmin=(1041.09,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(433.34,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(444.824,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(433.34,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1[c]cccc1\"), Molecule(SMILES=\"C[CH]CC1=[C]C=CC=C1\"), Molecule(SMILES=\"C[CH]CC1[C]=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1=C=CC=C[CH]1\"), Molecule(SMILES=\"C[CH]CC1=C=C[CH]C=C1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.022,'cm^3/(mol*s)'), n=4.34, Ea=(-5.4392,'kJ/mol'), T0=(1,'K'), Tmin=(300,'K'), Tmax=(1500,'K'), comment=\"\"\"Exact match found for rate rule [C/H2/NonDeC;Cb_rad]\n", - "Multiplied by reaction path degeneracy 2\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions matched explicit rate rules, but this direction is exergonic.\n", - "dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\"\"\"), degeneracy=2, pairs=[(Species(index=15, label=\"C[CH]Cc1[c]cccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.760343,0.0584439,-3.52048e-06,-3.03604e-08,1.39202e-11,52246.5,30.7604], Tmin=(100,'K'), Tmax=(1041.09,'K')), NASAPolynomial(coeffs=[13.0469,0.0389724,-1.54267e-05,2.85285e-09,-2.00129e-13,48185.1,-36.2287], Tmin=(1041.09,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(433.34,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(444.824,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(433.34,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1[c]cccc1\"), Molecule(SMILES=\"C[CH]CC1=[C]C=CC=C1\"), Molecule(SMILES=\"C[CH]CC1[C]=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1=C=CC=C[CH]1\"), Molecule(SMILES=\"C[CH]CC1=C=C[CH]C=C1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=14, label=\"CCCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.597211,0.054788,3.45123e-05,-7.79215e-08,3.1734e-11,-1759.89,28.1487], Tmin=(100,'K'), Tmax=(1004.37,'K')), NASAPolynomial(coeffs=[16.1145,0.040813,-1.60409e-05,3.0434e-09,-2.19994e-13,-7289.04,-58.7892], Tmin=(1004.37,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(-15.7978,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(494.711,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(-15.7978,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1ccccc1\"), Molecule(SMILES=\"CCCC1C=CC=CC=1\")], molecularWeight=(120.192,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = H_Abstraction\n", - "\n", - "Reactants\n", - "Label: CCCc1ccccc1\n", - "SMILES: CCCc1ccccc1\n", - "\n", - "Label: C[CH]Cc1[c]cccc1\n", - "SMILES: C[CH]Cc1[c]cccc1\n", - "\n", - "Products\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "! Template reaction: H_Abstraction\n", - "! Flux pairs: C9H10(15), i1(1); C9H12(14), i1(1); \n", - "! Exact match found for rate rule [C/H2/NonDeC;Cb_rad]\n", - "! Multiplied by reaction path degeneracy 2\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions matched explicit rate rules, but this direction is exergonic.\n", - "! dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\n", - "C9H12(14)+C9H10(15)=i1(1)+i1(1) 2.200e-02 4.340 -1.300 \n", - "\n", - "\n", - "Heat of Reaction = -15.01 kcal/mol\n", - "Forward kinetics at 623.0 K: 8.44E+04\n", - "Reverse kinetics at 623.0 K: 1.24E-01\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=13, reactants=[Species(index=14, label=\"CCCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.597211,0.054788,3.45123e-05,-7.79215e-08,3.1734e-11,-1759.89,28.1487], Tmin=(100,'K'), Tmax=(1004.37,'K')), NASAPolynomial(coeffs=[16.1145,0.040813,-1.60409e-05,3.0434e-09,-2.19994e-13,-7289.04,-58.7892], Tmin=(1004.37,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(-15.7978,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(494.711,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(-15.7978,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1ccccc1\"), Molecule(SMILES=\"CCCC1C=CC=CC=1\")], molecularWeight=(120.192,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=16, label=\"C[CH]Cc1cc[c]cc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.760343,0.0584439,-3.52048e-06,-3.03604e-08,1.39202e-11,52246.5,30.7604], Tmin=(100,'K'), Tmax=(1041.09,'K')), NASAPolynomial(coeffs=[13.0469,0.0389724,-1.54267e-05,2.85285e-09,-2.00129e-13,48185.1,-36.2287], Tmin=(1041.09,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(433.34,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(444.824,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(433.34,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1cc[c]cc1\"), Molecule(SMILES=\"C[CH]CC1C=C[C]=CC=1\"), Molecule(SMILES=\"C[CH]CC1[CH]C=C=CC=1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.022,'cm^3/(mol*s)'), n=4.34, Ea=(-5.4392,'kJ/mol'), T0=(1,'K'), Tmin=(300,'K'), Tmax=(1500,'K'), comment=\"\"\"Exact match found for rate rule [C/H2/NonDeC;Cb_rad]\n", - "Multiplied by reaction path degeneracy 2\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions matched explicit rate rules, but this direction is exergonic.\n", - "dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\"\"\"), pairs=[(Species(index=16, label=\"C[CH]Cc1cc[c]cc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.760343,0.0584439,-3.52048e-06,-3.03604e-08,1.39202e-11,52246.5,30.7604], Tmin=(100,'K'), Tmax=(1041.09,'K')), NASAPolynomial(coeffs=[13.0469,0.0389724,-1.54267e-05,2.85285e-09,-2.00129e-13,48185.1,-36.2287], Tmin=(1041.09,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(433.34,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(444.824,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC) + radical(CbJ)\"\"\"), conformer=Conformer(E0=(433.34,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1cc[c]cc1\"), Molecule(SMILES=\"C[CH]CC1C=C[C]=CC=1\"), Molecule(SMILES=\"C[CH]CC1[CH]C=C=CC=1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=14, label=\"CCCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.597211,0.054788,3.45123e-05,-7.79215e-08,3.1734e-11,-1759.89,28.1487], Tmin=(100,'K'), Tmax=(1004.37,'K')), NASAPolynomial(coeffs=[16.1145,0.040813,-1.60409e-05,3.0434e-09,-2.19994e-13,-7289.04,-58.7892], Tmin=(1004.37,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(-15.7978,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(494.711,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(-15.7978,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1ccccc1\"), Molecule(SMILES=\"CCCC1C=CC=CC=1\")], molecularWeight=(120.192,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = H_Abstraction\n", - "\n", - "Reactants\n", - "Label: CCCc1ccccc1\n", - "SMILES: CCCc1ccccc1\n", - "\n", - "Label: C[CH]Cc1cc[c]cc1\n", - "SMILES: C[CH]Cc1cc[c]cc1\n", - "\n", - "Products\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "! Template reaction: H_Abstraction\n", - "! Flux pairs: C9H10(16), i1(1); C9H12(14), i1(1); \n", - "! Exact match found for rate rule [C/H2/NonDeC;Cb_rad]\n", - "! Multiplied by reaction path degeneracy 2\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions matched explicit rate rules, but this direction is exergonic.\n", - "! dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\n", - "C9H12(14)+C9H10(16)=i1(1)+i1(1) 2.200e-02 4.340 -1.300 \n", - "\n", - "\n", - "Heat of Reaction = -15.01 kcal/mol\n", - "Forward kinetics at 623.0 K: 8.44E+04\n", - "Reverse kinetics at 623.0 K: 1.24E-01\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd0AAAAuCAIAAADiLlQ6AAAABmJLR0QA/wD/AP+gvaeTAAAgAElE\nQVR4nO2deSBU6/vAz9hFkptbliwhZEvpWgY1orKrG7fS/lVKLnV13a+00kb3FiWKurdU1xelVNIm\n29gGWbI31rFvwwyzmTnn98f7/Z7fXJXEUMrnL+f1zvO85znnPOc97/I8GARBoGmmmWaaab4Y+D53\nA6aZZppppvkH36hfplKpz549O3z4sLm5uaioKIFA+Nwt+nqAYbirqysxMfHgwYOGhobKysrFxcWf\nu1HT/AM2m93c3BwbG+vp6bl48WJjY+PKysrP3aivh6Ghodra2ujoaDc3t0WLFq1du7auru6TJGC+\nnXGMhoaGjIyMrKysly9fUqnUFStWWFpaYrHY9vZ2V1fXR48eLVu27HO3carCZrOJRGJGRgYej8/M\nzORwOCtWrFi5cqW+vn5FRcXp06dv3bqlp6f3uZv5TcNgMKqqqjIzMzMzM/Py8oSFhXE4HA6HU1dX\nx+PxiYmJYWFhGhoan7uZU5WBgYGysrLMzMyMjIySkhJJSUlgXnl5+UePHhGJxMDAwAULFoxS2tfs\nlxEEqaioAI4Yj8eLiIhYWVlhsVhTU9NhBnr+/PnWrVuTk5P19fU/V2unFgiCsFissrIyPB6fkpJS\nWFg4a9Ys8J4zNjZWUFBAa9Lp9ISEhKCgoJiYGC0trc/Y5m8NBEEGBwdLS0szMzNfvXpVXl4+d+5c\nCwsLU1PTZcuWycrKojV7e3tv3br1+PHj8PBwNTW1z9jmKQSCIH19fUVFRRkZGampqXV1dQoKChYW\nFlgsdsmSJd9//z1as6Wl5cqVK/X19adOnVJUVByN8K/NL8MwXFRUBBxxYWGhrKwscMRYLJb7RnyX\n+/fve3p6vnz5UlNTc9JaO7VAEITBYBQWFqakpGRlZVVWViooKADzGhoazp0790M/HBwcjImJCQ8P\nj4uLU1VVncw2f2sgCEKhUPLz81+9epWdnd3Q0LBgwQJw/y9dunTOnDkf+mFXV9dff/2VlpYWEREx\nSt/xDYIgSHd3d25ubmpqak5OTmdnp7q6OngEdHV1Z8+e/aEfNjY2hoeHd3Z2njp1amRHBPga/DKL\nxSIQCKBfXFBQoKKiAjpuP/zwwwjO4l2io6OPHDmSlpamrKw8ca2dWiAIMjAwkJeXh8fjX716VVlZ\nqa6uvnLlShMTkyVLlkhLS49SzsDAwPXr1//++++7d+/Onz9/Qtv8rQHDcG9vb15eXmZmZlpaWmNj\no7a2Ng6HMzEx0dXVlZKSGqWc9vb2q1evvn79+sqVKzIyMhPa5ikEh8Npb2/Pzc3NyMjIyMjo6enR\n09PD4XDGxsaLFi2aNWvWKOUQicSwsDA6nX7y5MmPPjhT3i8PDAxIS0urq6ubm5ubmZmZmZnNmzdv\nzNLCw8MvXLiQnp4+mnfaVw8Mw1VVVYaGhosWLQLmNTY2Hr0vHgaFQrl8+fKTJ0/u3r37Se/LaUaA\nw+G8fPly48aNOjo64BoZGBiM3hcPo6WlJSwsjEgkRkREjNC5/nYYGhq6cePG4cOHFy9eDNzL4sWL\nR++Lh1FVVXXp0iU+Pr6AgIAROtfQV+CX7927d/369SdPnnyoAolESkhIePr0KZFI7OnpgSAIg8HI\nyclpamo6Ojra2dlJSEhw1w8JCYmIiMjIyJj2HYODg/Hx8WlpaTdu3HhvBTDd9+DBg5cvX9bV1fX1\n9UEQJCAgMH/+fB0dHUdHR0tLy5kzZ6L1KRRKSEhISkrK3bt3x+zfp+Gmq6srNjaWRCIFBQW9twKD\nwaioqEhMTExPT29oaKBQKBAECQsLKyoqLlmyxNHR0dTUVExMDK3f3NwcGhra1NQUERExZv/+1dDQ\n0BATEyMsLPzLL7+8t8Lg4GBRUdHDhw+zsrKampoGBwchCBITE1NSUjI0NHRwcFi2bJmoqChav6Ki\n4uLFi8LCwgEBASP49ynvl3fu3Ll06dJ9+/a9+6+0tLSjR4/W1dXZ2tquXr160aJFwNVyOJympqbi\n4uKkpKT09PQ1a9YEBARwzwQePnz40aNHqamp3/h92d3dffjwYRMTk61btw77F4PBSE5ODg4O7u7u\ntrGxsbS0VFdXl5aWBvOBDQ0NBQUFycnJpaWljo6Ovr6+6EwgmUwODAwsKyuLi4uTlJSc9HP62qiq\nqgoPD8fhcGvXrh32r76+vvv374eHhzOZTBsbmxUrVqipqUlJSSEIQqPR6urq8vLynj59SiKRXFxc\nPDw80G/E+vr6oKAgGo0WFhY2rNfyrQFWqqxZs2blypXD/tXe3h4TExMdHS0sLGxtbW1qaqqiojJr\n1iwYhqlUKpFIzMrKev78+cDAwJYtW7Zu3YrOBL5+/To0NHTu3LlHjx4VFxd/v2JkKgPD8Lx58+rq\n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\n", - "text/plain": [ - "Reaction(index=14, reactants=[Species(index=14, label=\"CCCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.597211,0.054788,3.45123e-05,-7.79215e-08,3.1734e-11,-1759.89,28.1487], Tmin=(100,'K'), Tmax=(1004.37,'K')), NASAPolynomial(coeffs=[16.1145,0.040813,-1.60409e-05,3.0434e-09,-2.19994e-13,-7289.04,-58.7892], Tmin=(1004.37,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(-15.7978,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(494.711,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(-15.7978,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1ccccc1\"), Molecule(SMILES=\"CCCC1C=CC=CC=1\")], molecularWeight=(120.192,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=17, label=\"C[CH]Cc1c[c]ccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.760343,0.0584439,-3.52048e-06,-3.03604e-08,1.39202e-11,52246.5,30.7604], Tmin=(100,'K'), Tmax=(1041.09,'K')), NASAPolynomial(coeffs=[13.0469,0.0389724,-1.54267e-05,2.85285e-09,-2.00129e-13,48185.1,-36.2287], Tmin=(1041.09,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(433.34,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(444.824,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(433.34,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1c[c]ccc1\"), Molecule(SMILES=\"C[CH]CC1C=[C]C=CC=1\"), Molecule(SMILES=\"C[CH]CC1C=CC=[C]C=1\"), Molecule(SMILES=\"C[CH]CC1C=C=C[CH]C=1\"), Molecule(SMILES=\"C[CH]C[C]1C=C=CC=C1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.022,'cm^3/(mol*s)'), n=4.34, Ea=(-5.4392,'kJ/mol'), T0=(1,'K'), Tmin=(300,'K'), Tmax=(1500,'K'), comment=\"\"\"Exact match found for rate rule [C/H2/NonDeC;Cb_rad]\n", - "Multiplied by reaction path degeneracy 2\n", - "Kinetics were estimated in this direction instead of the reverse because:\n", - "Both directions matched explicit rate rules, but this direction is exergonic.\n", - "dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\"\"\"), degeneracy=2, pairs=[(Species(index=17, label=\"C[CH]Cc1c[c]ccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.760343,0.0584439,-3.52048e-06,-3.03604e-08,1.39202e-11,52246.5,30.7604], Tmin=(100,'K'), Tmax=(1041.09,'K')), NASAPolynomial(coeffs=[13.0469,0.0389724,-1.54267e-05,2.85285e-09,-2.00129e-13,48185.1,-36.2287], Tmin=(1041.09,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(433.34,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(444.824,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(CbJ) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(433.34,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1c[c]ccc1\"), Molecule(SMILES=\"C[CH]CC1C=[C]C=CC=1\"), Molecule(SMILES=\"C[CH]CC1C=CC=[C]C=1\"), Molecule(SMILES=\"C[CH]CC1C=C=C[CH]C=1\"), Molecule(SMILES=\"C[CH]C[C]1C=C=CC=C1\")], molecularWeight=(118.176,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=14, label=\"CCCc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.597211,0.054788,3.45123e-05,-7.79215e-08,3.1734e-11,-1759.89,28.1487], Tmin=(100,'K'), Tmax=(1004.37,'K')), NASAPolynomial(coeffs=[16.1145,0.040813,-1.60409e-05,3.0434e-09,-2.19994e-13,-7289.04,-58.7892], Tmin=(1004.37,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(-15.7978,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(494.711,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene)\"\"\"), conformer=Conformer(E0=(-15.7978,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"CCCc1ccccc1\"), Molecule(SMILES=\"CCCC1C=CC=CC=1\")], molecularWeight=(120.192,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = H_Abstraction\n", - "\n", - "Reactants\n", - "Label: CCCc1ccccc1\n", - "SMILES: CCCc1ccccc1\n", - "\n", - "Label: C[CH]Cc1c[c]ccc1\n", - "SMILES: C[CH]Cc1c[c]ccc1\n", - "\n", - "Products\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "! Template reaction: H_Abstraction\n", - "! Flux pairs: C9H10(17), i1(1); C9H12(14), i1(1); \n", - "! Exact match found for rate rule [C/H2/NonDeC;Cb_rad]\n", - "! Multiplied by reaction path degeneracy 2\n", - "! Kinetics were estimated in this direction instead of the reverse because:\n", - "! Both directions matched explicit rate rules, but this direction is exergonic.\n", - "! dHrxn(298 K) = -60.88 kJ/mol, dGrxn(298 K) = -65.43 kJ/mol\n", - "C9H12(14)+C9H10(17)=i1(1)+i1(1) 2.200e-02 4.340 -1.300 \n", - "\n", - "\n", - "Heat of Reaction = -15.01 kcal/mol\n", - "Forward kinetics at 623.0 K: 8.44E+04\n", - "Reverse kinetics at 623.0 K: 1.24E-01\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\nt7e3k5OTlZWVp6dnXFycv7//kiVLcnJyRsd49fT0XLp0adOmTQiC9Pb25uTkmJiY0Ol0YckHPsKy\nZcv4b4dKpcbGxi5dulRYrQyP6urqX3/9NS4uDkEQLpebmZnp5OQk4LwG0NzcfOLEiZ9//pnnuwF3\nxtraOjs7m/cxfmulqqpqYWHh7+/fr7XqA/DjbGxsXr16Jbi2/LS1tZ06dYoXmemXz12tPh/o7e0t\nKSnx9PTU1tY+dOgQCLyAQGdkZKSuru7y5ctfvHgxeMe2/90tCIIwGAxQNZRKpVZXV5PJ5KKiovLy\ncikpKVB66eeff9bQ0OBtJZ0yZYqPj8+obZp59OjR0qVLwd+pqamWlpbCLa1lamra3NxcV1enqanJ\nu5iVlSX4qU2g3xkMBqgV093dXV1dDbaLV1dXy8nJGRsb29raent7q6qqgu6lUqmJiYmHDh06evSo\ngYHBSOedMxiM7OxsGxsbCIKYTCawXEIsrSUuLq6np9fc3NzY2KimpgYuMpnMsrKyVatWCauV4dHe\n3k4ikZYtWwZBUFNTU0ZGhp6eno6OjuCSJ0+evHDhwlevXr1582bBggUQBMnIyCxfvhyG4QMHDnh6\nenZ1dWVkZOTm5hIIBBsbm61bt1pYWPCXYxoYKSmpJUuWsFisQ4cO/fbbbxYWFoLrDJgwYYKJiUlq\nampBQYG+vv7nH2Ayma9evQoPD1dTU7t9+/a0adM+/wwej9fR0YmNja2srExMTLS3t3d2dvby8lJT\nU/Pz8/Pw8Lh58+a+ffuUlJR2795tb2//9Yec32rSaLRPnz6RyeTCwsL79+9HRkZu3brVyspq6dKl\noaGhycnJA4eoY2JiLCwscnJyRjrvnMlkTp8+vbS0FLzctm0b+JEULqtXr+ZPvWEymTNmzOA1+hmP\nt0PbH3/hPeBbUanUpqamioqK9+/f37p16+jRo5s3b7a2tl65cmVERMSTJ08GCFF3d3cfPXp02bJl\nBQUFI5p3DsMwmUy2sLCoqKhAEKS1tdXT01PoKS/Nzc2bNm16+PAhf6MLFiwAjQpOenq6s7PzUGMo\nvHwIENHLzc396aef8vLyhKISgiBNTU1RUVGHDh3qczEgIEBBQQEEwmtqagRpgkqlXrp0ydbWVohq\nIwjS0NAQHh4eFBTU71sBAQGGhoZXr14d5MDncDgkEglEmXhLjTAMt7a2njp1ytDQ0Nra+uHDhwNL\n+8c5qqmpoVAovCJ8VVVVampqg6lsxc+ePXt6enr8/PxiY2PnzJkzcpU9Pn78KCYmNmvWLPCysrJy\nzZo1Qm9l5syZZDKZv1E8Hs9rdPBwOJy6urrOzk5QhK+ioqKpqUldXf2rla34GTdu3K5duxgMxuHD\nh48ePaqlpTVC3ctms8vLy6WlpYGzyeFwmpqaNDQ0hNsKgUBQVVWtqanhb1RCQoLfwxWEBQsWkEgk\nV1fXadOmhYWFDTILvLOzs6KiQl9fX0xMjMlk1tXVMZnMfr2M4TFp0qTZs2fHxsYymUxeAUsOhyMr\nK+vr6+vr6yt4EzIyMq6urmw229fXNzo62sDAQHCZEAQpKCiYm5tHRkbW19fz3EAWi/X69eujR48q\nKSndvXt38A8JDoebMWPGsWPHvL29z58/v2bNmoULF3p6euro6Hh5eW3cuDE5OTkiIuL48eO7d+92\ndXXtt6DbP09/TEzM7t27r1y5AkHQTz/9dOvWrevXrx84cMDBwWHwh6xhMJiDBw9aW1v7+fkRiUQY\nhgf5xaECpoq8LSNdXV0jUQJt4sSJnZ2dX2r0v/z7ZwwGg8E4/QH94YTBYDCYBbEV/O9TKJQTJ074\n+vrev39fRkbGw8MjKSnp4sWL3t7e1tbWg6wghsFg5OTkQEbM4cOHQWaswLfYDwwG4+3btzY2NuBO\nYRju6emRk5MTbitYLHbcuHEUCqXfRgVHTExs+/btZDJ506ZNGzdutLS0fPny5Ve/BaaKpqamEAR1\ndHSAv4U4N8fj8YqKilOmTCkoKOBdBA2ZmZkJqxVZWdk1a9asW7fuwIEDpaWlQpGJw+HU1dUNDQ3v\n3r0LroANFX5+flu2bLl06dIwftuwWKyKisqhQ4cePXqkoKCwZs2aDRs2vH//Xk5ObsOGDcnJyevW\nrQPzjObm5n6+D1yvgoKCtra2oXuR/buCBw4ccHR0HKFNMxwOx8LCgn852dDQULi+MSA6Otrb25u/\n0QGXV744W2SxWEVFRWAZVECAR+3t7e3m5jYSaf0wDNfX1zs5OfHWehoaGuzt7T9+/Cjchrq6uo4d\nOxYaGtpvo18iPT192GMPi8VevHhxAOG8fAgwZycSifv37793754Q7xpBEDKZHBQUxJt9czic58+f\nOzo6Cnd9CUGQjo6O33//3c7OrqysTCgCWSxWSkrKDz/80Nra+vr162XLlq1bt45MJgtFOC9Ur6en\nx7/U+O7du5UrV/Z7C//4XHPnzh18+dCBweFwYWFhM2fODAgIAJnfQhHLo7m5uaqqij8AOWHCBH7n\nSFh0dHTw+gQ0On/+/GHIERMT09XVFYpXiMFgJk6cGBgYKCsrGxYWBsKOgovlweVym5qaWlpajIyM\nwBXgHHV3dwuxFQiCYBimUqnjx4/vt9EvYWNjM6Tx0NnZ6e/vLy8vv3HjxqKiInd39wGE9/T0VFVV\nTZ48GRTRZ7FYVCpV6Kc6i4uLy8nJtbW1gZddXV0VFRXa2tpCP7pFXl5+/fr1zs7OPj4+VVVVggsU\nExObMWOGoqLili1bQBD9woULwprdYzAYBQUFPz+/f//73zo6Ojt37vTx8WEymaC7eL45PyMSKyEQ\nCNHR0YqKikFBQXV1dcIVDrZT8C91aWpqlpeXC7cVCIJAGTleo5aWlgOury05g5xZInQlPgODwUye\nPDk4OJhAIERERDQ1NQlROIPB+Pvvv83MzHhRGDwer6SkJJRHn5/e3t7a2lqwsAgaNTExEeLZJV1d\nXQEBARoaGo2Nja9fv758+fJX1wc7OjoqKip4szYul8tms4V+WBEejxcXFwclGD9vVLhMmDDBzc3N\n2tp6165d1dXVw5bDYrFKSkri4+ODgoJSUlLq6+vPnz+/Z88eoR/XgMFglJWVf/nll/T09PXr1xMI\nBAKBICUlRaVSP//wSAXRgfESFxcPCQkR4uiCYZg/HwJgamoK3EthtQJBENhgAQKcCII8fvy4T6Mi\nBIPBTJky5ZdffqHT6VFRUS0tLUIRiyAInU7n5UMAxMXFtbW1wWRcKK2Ahnp6eiorK2fPno0gCAhy\n2draCks+BEEfPnwoKSlJTU0djM0C8Ae5IAjCYrF4PL63t1eIWkEQBMMwh8PhhZzb29vLy8tHyHJB\nEDRp0iQPDw9ra+u9e/c2NDQM/os0Gu3NmzeRkZGOjo4zZ87cunVrbW2th4dHdHT0tGnThLhq8Tlg\nYmFsbIzD4fB4vKSk5Oj5XABJScm4uDgajXb06NH+Y2yDA8wsPn36VFFR8eHDh7S0NBMTE/4PODo6\nvnz5kvc7JhQKCwtBBgoEQWA829vbC1G+gGCx2KlTp4aEhDQ2NsbGxvJmH0MFQRAOh0OhUMBpiXl5\neXl5efzPpaSkpKmpaXZ2NoPBEJLuEJvNLisrk5CQmDFjBoIgXV1dpaWllpaWwpIPQZCNjU1ycvK8\nefMG+fne3t6mpqaOjg7eYhwopS/0KAQ4rhhMk+l0en19vaSkpLDmXP0yefJkd3d3IyOjXbt2DexD\nMBiMvLw8YK10dHR8fX07Ozv379+fn5//5s2biIgIJycnZWVlsPt65BTmB/wX+vW5RjZlVEZGJjEx\n0cPD48SJE35+foOPGvDOo+alwhKJxLKysqqqqqlTp2ZlZSkrK/NKvqmqqqqpqb148QIkEAoODMN3\n7txZvnw5WOrKzs5WVlYeahnfkQaLxaqqqoaGhh48eDAxMXHnzp2DjFQiCMJms8EJbyAVtqqqikgk\nEonEmpoaOTm5d+/eKSoqysjIQBCEx+NVVVUnTJiQnZ29ePFiwdUGDtfLly8dHBwwGAzwbZWVlRUV\nFQUXPmw6OztJJJKBgQHPG5KSkpo4cSIvb0NYgO0o/MuXfX6GRwJFRcXt27efOXNm79698fHx/EfM\nMBgM4Jymp6eXlZUpKytbWVnt379/3rx5nz9OWCxWTEwMi8XS6XRpaemRVhuCoAF8rhFPdpeXlz9/\n/vymTZtOnjzp6+s7wOgCMVEwnBobG0tLS8lkcnl5OZ1ONzExMTAwWLly5axZs8hk8ubNm2EYXr9+\nPRhdEARt37799OnTixYtGjdunOA619TUpKSk3LlzB7z8fH46RsDhcJqammFhYQEBAX/88ceOHTu+\ntA6AIAive6lUan19fVlZWUVFRWVlJQzDxsbGBgYGGzZsUFNTy8vLCw4ORhBkxYoV4OkcN27csmXL\nLl26ZG5uLvjzyuFwKioq3r59e/bsWeh/8/VFSHt7e0VFBb9pnjBhwvTp09PS0n7++WdhtYIgSGtr\na0VFhbGxMfQfy+Xh4SEs+QOgpKS0devWuLg4T0/P6Ojo5ubm58+fp6enFxcXKyoq2tnZfcla9QGY\nEiqVOjqWS2Q+F2DChAnnzp3bsGFDfHy8l5cXb3QhfHuMenp6GhsbQR4smUzu7e01NjZeuHDh7t27\n1dXV+XNqtLS0zpw5s23bNklJydWrV4NFGTc3t3Pnzj148MDNzU3ABBwGgxEVFeXq6qqrqwtBUG9v\nb1paGhhmYxCQ1HfkyJHAwEBJSUkPDw+QewUW13h7jKhUal1dXUlJSXl5eU1NDRaLNTEx+eGHH+bO\nnauiosLfY8bGxgcPHgwPD5eQkFi6dKmkpKS0tLSLi8ujR4+ePn26fPlyQboXZHVcu3bNyclp5syZ\nCIJQqdT379/3OQBl9GlrayssLPT29uZdkZGR0dTUTEpKqqurU1VVFUor3bTs174AAA/ESURBVN3d\nFRUVGhoakyZN4nK5LS0tjY2Ng5/SCoiKisrWrVsPHjw4c+ZMVVVVa2vrzZs3z58/v9/NOl8CmBIK\nhTI6PjIwlP1GckfpVC4FBYXz589v3LhRSkrK3d0dg8H09PT09PSAw6jBOa8yMjLGxsZ2dnZBQUED\nb9fS09NLTEzcsWOHpKTksmXLJCUlCQTCoUOHQkJC9PX19fT0hp3QyGaznz59+vfffz948ABcIZPJ\nXV1dX12wFyE4HE5bWxtMGyUlJVetWoUgCI1G6+zsLC0tLS8vr6ioqKmpkZeXNzY2dnV1nTdvHlj4\n7xcxMbEFCxYEBARERkZKSEjY2dlJSEhMnDjR3d39woULs2fPnjVr1vC6F9ipZ8+eVVZWBgUFQRAE\nalWzWKw5c+YM//6FgYyMDBaLjY+Pj4iIABNGsAyipaX1/PnzLVu2CKWVT58+vX//HpwDNnL5EAMg\nLS09b948dXX1Y8eODU/CANO3kQCciyqa2SIPVVXVixcvrl+/nkKhyMnJlZeXE4lECIKMjIzs7OwC\nAgJmzpw5+B0tBgYGJ0+e9Pb2FhcXd3BwkJCQcHBwKCws3L9//5kzZ9TV1YexOYbNZr99+zY4ODg+\nPn7q1Kng4uPHjx0cHMb4wYt4PF5PTy80NDQwMPDTp08SEhLl5eWVlZViYmJGRkaurq6Ghob82+MH\nBhivvXv3xsbGiomJLVq0SFJS0tHRkUgkhoSEHDt2TEVFZajdC8JbL168uHz58rFjxxQUFCAIotPp\nb9++XbhwocjPLjMwMIiLizt8+LC/v39kZCQwXmpqaosXL46Li1u2bJngiV1UKvXvv/9ubm52dXWF\nRjgf4kt0dHRUVVUBBYYHz+cSolYDgMfjpaSk+m9uSKl9gpOTk2NlZeXv75+UlFRRUSFgFnhaWtq8\nefMePXoEtsiy2ewtW7a4ubkVFRUNtd5OT09Penq6tbV1fHw87yKXy7WzsxvlGvDDhslkPnv2zN7e\n/pdffrl//351dbUg3QtKPi1evDgtLY3FYsEw3NTU5OHhsXPnTiKROKR6O1wut729/d69e0uXLr1y\n5Qq4COoXrlix4smTJ8NWUojAMFxYWLhy5cr9+/fzaiiSyeT9+/cfO3ZMcOH5+fnr16/n1cLMzs52\ndnYW+rkSA+uQkZHh6OgoyHYOIpG4b98+3l2MNCBx39XV9fO3vuFqzoCUlBRQggOYKhqNtnfvXnt7\n+4yMjObm5sGUVWCz2XV1ddeuXTMxMfnzzz/5R3tbW9vkyZO/Whrpe4VGo125csXBweHVq1dsNpvL\n5dbX1+/atWvNmjWvX79ua2sbzEESDAaDRCIlJCTY2treuHGD9xUOh1NQUGBgYABKZY4FuFxuXl6e\ns7PzwYMHgWnu7e3NyMhwcHD466+/BJFcVVW1Z88eLy8vIJZGo92+ffvHH38Ujt6Do6ur68KFCwOX\n2foqfXYvjTRcLjc1NXXx4sWfP2lCOG9RtGhpacnKyoaHh8+ePXvq1Klg8tjd3R0dHd3V1QXOT8fj\n8Z9P9xAEASX9CgsLz5w5k5KSEh4evmrVKv4gzuPHjxsaGrZv3z6qtzRmIBAI06dP53K5Z8+e1dbW\nVlRUlJOTW7BgQX19/Z9//snbif1594JnC2Th5eTknD17FixZLlmyhNe9DAYjLS2NRqOtW7dOBPfW\nH2APira29s2bN8vLy62srPB4vIKCgoyMTExMzJw5c3gxhCHR3Nx88eLF8vLymJgYENVqbm5OT09X\nU1Mb3n6y4dHY2JiamjpnzhxBgrY9PT0lJSVghUeIun0JDAbT0NCQlZW1cuXKPhUjvnnLBUHQnDlz\nJCUlIyIi9PT0lJSUcDicmZnZwoUL09PTr1y50t7ezmKxOBwOWBOgUCjd3d1tbW319fWvX7++e/fu\nhQsXTE1No6KiZs+e3Ufy8ePHrayszM3NRXJfYwFQTYjJZJ47d05XV3fKlClSUlLm5uZz5859/vz5\nnTt3Ojo6WCxWb28vf/e2trbW1NRkZmbeuXMnOTnZxsYmJCRk5syZ/JIpFMqlS5csLS0NDQ1FdXef\nAwLzM2bMuHbtWkNDw4IFC8TExJSVlWEYDg8PV1JS0tLSGrw0BEFqamrCw8MLCwtjYmJ4CyPgDE1n\nZ+chresJCJlM/uuvv9zc3ASJ2dHp9LKyMjqdLtzM4QFoamp6+/atvb19n4SnMR14Hjzr16/v7Oz0\n9fWNjY3V19fH4XCzZs06ffo0qI985swZFovFS14Fp8Y3NDSoqaktWrTIx8enz1ImKGDd3d2dnp5+\n4MABEd3TWEFGRgasqwQHBx89enT27NkEAsHY2Hju3LlgS8Pp06e5XK6ioiJ4tjgcTltbW3t7u6am\nprW1dVBQEP9SJvKfGpY1NTUfPnzw8/MT3Z31Dw6HMzExCQ4ODgkJweFwfn5+48ePd3d3nzRpUkhI\nyMePH3ft2jWYsj9MJjM7O/vEiROTJk26fPny5MmTwXWQD9HU1DRq+RAQBLFYrIaGBgaDIWB9VxCh\nb29vF5ZiX4UXpO+zIP6dWC4Igry8vNhsNqhrOHv2bLD4pa+vr6+vv2/fvoaGhvLy8o6ODvBhZWVl\nbW1tsAkDwOVy6XQ6r8JyeXl5Tk6OpKTkMEoJfn/Iysru2LGDw+EcPnwYFAIB6dRmZmZmZmYcDqe+\nvh6kj0AQhMfjVVRUZs6cydvkAAIWvMS9jo4OIpH49u3bcePGjejGl2EDjFdQUFBoaKiEhMSePXuk\npaVXrFihoaERHh5+69atffv2LV++nHeDfWCz2YWFhXFxcTk5OZ6enlu2bOHfTN7V1UUmk3V0dEYz\nHwIsZYLNgILIGeWsCOjLyajfj+WCIMjHx4dGowHPS0tLiz9i1e/2Hd4eIyqVSqFQyGQyiUQqKyur\nrKycNm2agYHBkSNHRq6y67eFrKzsrl27oqKiQkNDjxw5oqGhwetePB6vrq6urq7O/3kEQZhMJq97\nwXAFqTCNjY0aGhr6+vrOzs5jtnvxePz8+fMPHToUGhqKw+E8PT0JBIKJicnVq1czMzOjoqL8/f3N\nzMzs7e319fWVlJQQBAEzqaysLLAau2nTpsjISJD/wY/QSwkOBtCoIPkQgAGKN4wQX7KV35XlwmAw\nQUFBBw8e9Pf3j46O5h9dPHhZ+zQaraGhobS0FJxeQaPRDA0NzczMli9frq2tLfTyJt86GAxm/Pjx\nPj4+4eHhYWFhISEhqqqqfboXhmEmk8nbbQpOiiSRSEQikcPhgO5dt27djBkzhFjQZuQAxiswMPDo\n0aPS0tLg8BRpaeklS5Y4ODiADTQvXry4ePEimD2BPeSmpqbgjKh+cwBB3eqioiJPT89RuxEEQdra\n2mpqagSP2IrK5/q8RQwyWtu+R43e3l5fX9+WlpbffvsNRED59xiRyeSKigqQtc9msw0MDMCI0tLS\nGuPppmMBBEFaW1tDQ0NhGD548KCysjLCt8eIQqFU/IeqqioMBmNgYGBkZGRiYqKpqSnydNPhwWaz\nX7x48dtvv23btm39+vXDk1BTU/Py5csXL168ffu2q6tryZIlV65cEVbp6q/S3d19//797OzsM2fO\nCCgKhuH09PSIiIjnz5+Pjv5VVVUXLlyYOXPmxo0b+a9/h2OVQCCcOHFiz549gYGBwcHBvb29wLEC\nAJ/fzs7O19e3z45IlK8C6hoeOnQoODg4LCxs7969DAYDdG9FRUV1dbW0tLSJicny5cs/3xH5jSIm\nJmZtbc1msyMjI3E43Nq1awfzLSaTWVJSAnY1FxQUSEtL29nZOTs7h4WFTZs2bZTnyH1KjwkCFosV\nFxfHYDAMBmN04nR4PF5CQuI7j3PxIBAIx48fd3d337ZtGxaLxWAwhoaGdnZ2fn5+2tra38FwEiEg\nbyAwMNDb23v79u3gUTYyMnJxcTEwMJg+ffr3173i4uL29vYwDEdFRUlISHwpWsRkMktLS1NTU7Oy\nsvLz8/F4vJ2dnYeHh5mZ2ehbK35AkEtYeXO8CeOoWS4CgQAq0LW2tiYnJzOZzB07dnyflguCIBkZ\nmfj4+OvXr7u4uGhqao6aZ/7/AVAaLDo6+vnz5z/88IOamtp3370SEhL29vZsNvv48eN4PJ5XCQ4c\ncPv8+fOsrKwPHz4QCAQ7O7t169bFxMSoqamNBSMO8iGYTKZQzruF+IL0o1AuApRyu3r1qp2dHQRB\nDQ0Np0+flpCQWL169XdruSAIUlBQ8PHxEbUW3yegNJgQa1eNfaSkpJYuXQpSUtva2jAYTEZGxps3\nb7q7uy0sLGxtbUNCQnR1dfs9HFCECCsfgsfoBOlhGCaRSBEREXV1dWfOnAFrC7q6uo8fP2YymQoK\nCt+z5UJBES5SUlJLlizp7u4ODAw0MzOztrbevXv3nDlzxpq14gdYLsHzIXiAVZrc3FwjI6MR8rWp\nVGpKSkpsbKytre3Jkyd5eZcEAoHn6H2Ha4soKCgABEEyMzMjIiJu3LjBn3ctCA0NDadOnXrw4IGO\njo6Pj4+lpaUQQ3gIglRWVkZGRpaWlh45cmSAw8nHaB4gCgqK4HR3d1dWVqqpqQnLbEEQpKysHBER\nkZ2d7eTk5O3tvWjRotu3b7PZbMEl0+n0hw8fenh4jB8//uHDhwOYLQj1uVBQvmMqKyvPnj07ffr0\nf/3rXyMhv7u7OyUlJSEhAYPB7NmzZ/ny5cM7hBFsTY+KiiosLDx8+PDANguA+lwoKN8tI1F5taOj\n49y5c9u2bcvPz5eTk9uwYcPjx4937dp1+vTpBQsWXL16lclkDkkgnU7/66+/Nm7cCMPwrVu3BmO2\nIGjUa6KioKCMDjAMv3371t3dncPhCFEsl8utrq4ODAycNWuWm5vbu3fvwPWurq4bN25YWVkZGBj8\n+eef4FjGr2pYW1vr4+NjamqanJw8pBK+6GwRBQVlyCAI0tbWdvPmzfPnzyspKe3Zs8fe3h6Hw4Gq\n6KdOnWppafHy8lq7du2XDhJkMpmvXr2KjIycPn16SEjIAKe69AtquVBQUIYJgiDt7e3AfsnKyu7b\nt2/p0qU4HI5Go718+TIuLq66utrT03Pjxo19KgI1NjbGxcVlZGQEBgYuW7ZsGNkVqOVCQUERlO7u\n7uTk5Pj4eBwOt2fPHldXVzExMQaD8e7du9jY2NLS0m3btm3evHnixIksFuvNmzegwGxoaGif4kiD\nB7VcKCgowqG7u/vRo0dnzpyh0Wje3t6rV6+WkJCg0WiZmZmxsbH19fXr1q2DYfjhw4fbtm3z8PAQ\nJIMXtVwoKCjCpLu7+/Hjx4mJiRQKxdPTc+3atTIyMnQ6PSsrKyoqisPhnDp16vMzH4YKarlQUFCE\nz+BD9cMDtVwoKCgjBYVCefr06Y0bN0xNTQMCAoQoGbVcKCgo3x7/B0J+poesXwpHAAAAAElFTkSu\nQmCC\n", - "text/plain": [ - "Reaction(index=15, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=18, label=\"C[CH]CC1([CH]C=CC=C1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-3.85044,0.134637,1.72512e-05,-1.11229e-07,4.94282e-11,39246.8,60.6098], Tmin=(100,'K'), Tmax=(1013.44,'K')), NASAPolynomial(coeffs=[31.8565,0.08084,-3.20942e-05,6.072e-09,-4.36576e-13,27534.7,-134.209], Tmin=(1013.44,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(323.69,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + other(R) + group(Cs-CsCsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(RCCJC) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(323.69,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1(C=C[CH]C=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1([CH]C=CC=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1(C=C[CH]C=C1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1([CH]C=CC=C1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.000374986,'m^3/(mol*s)'), n=2.68691, Ea=(41.9207,'kJ/mol'), T0=(1,'K'), comment=\"\"\"Average of [Average of [Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17] + Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]] + Average of [Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]]]\n", - "Estimated using template [Cb_Cb;CsJ] for rate rule [Cb-R!H_Cb-H;CsJ-CsCsH]\"\"\"), pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=18, label=\"C[CH]CC1([CH]C=CC=C1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-3.85044,0.134637,1.72512e-05,-1.11229e-07,4.94282e-11,39246.8,60.6098], Tmin=(100,'K'), Tmax=(1013.44,'K')), NASAPolynomial(coeffs=[31.8565,0.08084,-3.20942e-05,6.072e-09,-4.36576e-13,27534.7,-134.209], Tmin=(1013.44,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(323.69,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + other(R) + group(Cs-CsCsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(RCCJC) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(323.69,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1(C=C[CH]C=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1([CH]C=CC=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1(C=C[CH]C=C1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1([CH]C=CC=C1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=18, label=\"C[CH]CC1([CH]C=CC=C1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-3.85044,0.134637,1.72512e-05,-1.11229e-07,4.94282e-11,39246.8,60.6098], Tmin=(100,'K'), Tmax=(1013.44,'K')), NASAPolynomial(coeffs=[31.8565,0.08084,-3.20942e-05,6.072e-09,-4.36576e-13,27534.7,-134.209], Tmin=(1013.44,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(323.69,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-(Cds-Cds)(Cds-Cds)CsCs) + other(R) + group(Cs-CsCsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(RCCJC) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(323.69,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1(C=C[CH]C=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1([CH]C=CC=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1(C=C[CH]C=C1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1([CH]C=CC=C1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = R_Addition_MultipleBond\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: C[CH]CC1([CH]C=CC=C1)C(C)Cc1ccccc1\n", - "SMILES: C[CH]CC1(C=C[CH]C=C1)C(C)Cc1ccccc1\n", - "\n", - "! Template reaction: R_Addition_MultipleBond\n", - "! Flux pairs: i1(1), C18H22(18); i1(1), C18H22(18); \n", - "! Average of [Average of [Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17] + Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]] + Average\n", - "! of [Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]]]\n", - "! Estimated using template [Cb_Cb;CsJ] for rate rule [Cb-R!H_Cb-H;CsJ-CsCsH]\n", - "i1(1)+i1(1)=C18H22(18) 3.750e+02 2.687 10.019 \n", - "\n", - "\n", - "Heat of Reaction = -7.80 kcal/mol\n", - "Forward kinetics at 623.0 K: 3.70E+00\n", - "Reverse kinetics at 623.0 K: 8.06E+08\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=16, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=19, label=\"C[CH]C[C]1C=CC=CC1C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.01239,0.143967,-1.88024e-05,-6.9341e-08,3.3996e-11,38690.8,60.7184], Tmin=(100,'K'), Tmax=(1029.08,'K')), NASAPolynomial(coeffs=[29.5395,0.0836812,-3.31502e-05,6.17495e-09,-4.3685e-13,28071.8,-120.154], Tmin=(1029.08,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(319.062,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsCs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(RCCJC) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(319.062,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1=C[CH]C=CC1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC=CC1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1=CC=C[CH]C1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1=C[CH]C=CC1C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC=CC1C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1=CC=C[CH]C1C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.000749971,'m^3/(mol*s)'), n=2.68691, Ea=(41.9207,'kJ/mol'), T0=(1,'K'), comment=\"\"\"Average of [Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17] + Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]]\n", - "Estimated using template [Cb-H_Cb;CsJ] for rate rule [Cb-H_Cb-R!H;CsJ-CsCsH]\n", - "Multiplied by reaction path degeneracy 2\"\"\"), degeneracy=2, pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=19, label=\"C[CH]C[C]1C=CC=CC1C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.01239,0.143967,-1.88024e-05,-6.9341e-08,3.3996e-11,38690.8,60.7184], Tmin=(100,'K'), Tmax=(1029.08,'K')), NASAPolynomial(coeffs=[29.5395,0.0836812,-3.31502e-05,6.17495e-09,-4.3685e-13,28071.8,-120.154], Tmin=(1029.08,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(319.062,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsCs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(RCCJC) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(319.062,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1=C[CH]C=CC1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC=CC1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1=CC=C[CH]C1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1=C[CH]C=CC1C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC=CC1C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1=CC=C[CH]C1C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=19, label=\"C[CH]C[C]1C=CC=CC1C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.01239,0.143967,-1.88024e-05,-6.9341e-08,3.3996e-11,38690.8,60.7184], Tmin=(100,'K'), Tmax=(1029.08,'K')), NASAPolynomial(coeffs=[29.5395,0.0836812,-3.31502e-05,6.17495e-09,-4.3685e-13,28071.8,-120.154], Tmin=(1029.08,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(319.062,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsCs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(RCCJC) + radical(C=CCJC=C)\"\"\"), conformer=Conformer(E0=(319.062,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1=C[CH]C=CC1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC=CC1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1=CC=C[CH]C1C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1=C[CH]C=CC1C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC=CC1C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1=CC=C[CH]C1C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = R_Addition_MultipleBond\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: C[CH]C[C]1C=CC=CC1C(C)Cc1ccccc1\n", - "SMILES: C[CH]CC1=C[CH]C=CC1C(C)Cc1ccccc1\n", - "\n", - "! Template reaction: R_Addition_MultipleBond\n", - "! Flux pairs: i1(1), C18H22(19); i1(1), C18H22(19); \n", - "! Average of [Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17] + Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]]\n", - "! Estimated using template [Cb-H_Cb;CsJ] for rate rule [Cb-H_Cb-R!H;CsJ-CsCsH]\n", - "! Multiplied by reaction path degeneracy 2\n", - "i1(1)+i1(1)=C18H22(19) 7.500e+02 2.687 10.019 \n", - "\n", - "\n", - "Heat of Reaction = -8.72 kcal/mol\n", - "Forward kinetics at 623.0 K: 7.39E+00\n", - "Reverse kinetics at 623.0 K: 3.92E+08\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=17, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=20, label=\"C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-3.89719,0.139159,-3.82481e-06,-8.58915e-08,3.98977e-11,43165.8,59.0959], Tmin=(100,'K'), Tmax=(1024.48,'K')), NASAPolynomial(coeffs=[30.4388,0.0819842,-3.26864e-05,6.14625e-09,-4.38351e-13,32095.6,-127.078], Tmin=(1024.48,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(356.287,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-Cds(Cds-Cds)Cs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,3-Cyclohexadiene) + radical(RCCJC) + radical(Allyl_S)\"\"\"), conformer=Conformer(E0=(356.287,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC(C=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC([CH]C=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC(C=C1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.000374986,'m^3/(mol*s)'), n=2.68691, Ea=(41.9207,'kJ/mol'), T0=(1,'K'), Tmin=(303.03,'K'), Tmax=(2000,'K'), comment=\"\"\"Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]\n", - "Estimated using template [Cb-H_Cb-H;CsJ] for rate rule [Cb-H_Cb-H;CsJ-CsCsH]\"\"\"), pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=20, label=\"C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-3.89719,0.139159,-3.82481e-06,-8.58915e-08,3.98977e-11,43165.8,59.0959], Tmin=(100,'K'), Tmax=(1024.48,'K')), NASAPolynomial(coeffs=[30.4388,0.0819842,-3.26864e-05,6.14625e-09,-4.38351e-13,32095.6,-127.078], Tmin=(1024.48,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(356.287,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-Cds(Cds-Cds)Cs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,3-Cyclohexadiene) + radical(RCCJC) + radical(Allyl_S)\"\"\"), conformer=Conformer(E0=(356.287,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC(C=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC([CH]C=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC(C=C1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=20, label=\"C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-3.89719,0.139159,-3.82481e-06,-8.58915e-08,3.98977e-11,43165.8,59.0959], Tmin=(100,'K'), Tmax=(1024.48,'K')), NASAPolynomial(coeffs=[30.4388,0.0819842,-3.26864e-05,6.14625e-09,-4.38351e-13,32095.6,-127.078], Tmin=(1024.48,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(356.287,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)CsCsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-Cds(Cds-Cds)Cs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-Cds(Cds-Cds)H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,3-Cyclohexadiene) + radical(RCCJC) + radical(Allyl_S)\"\"\"), conformer=Conformer(E0=(356.287,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC(C=C1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC([CH]C=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]C[C]1C=CC(C=C1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = R_Addition_MultipleBond\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\n", - "SMILES: C[CH]CC1C=CC([CH]C=1)C(C)Cc1ccccc1\n", - "\n", - "! Template reaction: R_Addition_MultipleBond\n", - "! Flux pairs: i1(1), C18H22(20); i1(1), C18H22(20); \n", - "! Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]\n", - "! Estimated using template [Cb-H_Cb-H;CsJ] for rate rule [Cb-H_Cb-H;CsJ-CsCsH]\n", - "i1(1)+i1(1)=C18H22(20) 3.750e+02 2.687 10.019 \n", - "\n", - "\n", - "Heat of Reaction = -0.16 kcal/mol\n", - "Forward kinetics at 623.0 K: 3.70E+00\n", - "Reverse kinetics at 623.0 K: 1.57E+12\n", - "=========================\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "Reaction(index=18, reactants=[Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], products=[Species(index=21, label=\"C[CH]CC1C=C[CH]C(C=1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.01239,0.143967,-1.88024e-05,-6.9341e-08,3.3996e-11,38690.8,60.7184], Tmin=(100,'K'), Tmax=(1029.08,'K')), NASAPolynomial(coeffs=[29.5395,0.0836812,-3.31502e-05,6.17495e-09,-4.3685e-13,28071.8,-120.154], Tmin=(1029.08,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(319.062,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsCs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(C=CCJC=C) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(319.062,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1[CH]C=CC(C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1[CH]C(C=CC=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=C[CH]C(C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1[CH]C=CC(C=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1[CH]C(C=CC=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1C=C[CH]C(C=1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))], kinetics=Arrhenius(A=(0.000749971,'m^3/(mol*s)'), n=2.68691, Ea=(41.9207,'kJ/mol'), T0=(1,'K'), Tmin=(303.03,'K'), Tmax=(2000,'K'), comment=\"\"\"Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]\n", - "Estimated using template [Cb-H_Cb-H;CsJ] for rate rule [Cb-H_Cb-H;CsJ-CsCsH]\n", - "Multiplied by reaction path degeneracy 2\"\"\"), degeneracy=2, pairs=[(Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=21, label=\"C[CH]CC1C=C[CH]C(C=1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.01239,0.143967,-1.88024e-05,-6.9341e-08,3.3996e-11,38690.8,60.7184], Tmin=(100,'K'), Tmax=(1029.08,'K')), NASAPolynomial(coeffs=[29.5395,0.0836812,-3.31502e-05,6.17495e-09,-4.3685e-13,28071.8,-120.154], Tmin=(1029.08,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(319.062,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsCs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(C=CCJC=C) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(319.062,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1[CH]C=CC(C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1[CH]C(C=CC=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=C[CH]C(C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1[CH]C=CC(C=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1[CH]C(C=CC=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1C=C[CH]C(C=1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85))), (Species(index=1, label=\"i1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[0.816209,0.0547308,1.611e-05,-5.08721e-08,2.06997e-11,21614.3,30.0998], Tmin=(100,'K'), Tmax=(1036.47,'K')), NASAPolynomial(coeffs=[13.0308,0.0426804,-1.7231e-05,3.23548e-09,-2.29425e-13,17197.5,-38.3581], Tmin=(1036.47,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(178.648,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(469.768,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cb-Cs) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(178.648,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=CC=CC=1\")], molecularWeight=(119.184,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)), Species(index=21, label=\"C[CH]CC1C=C[CH]C(C=1)C(C)Cc1ccccc1\", thermo=NASA(polynomials=[NASAPolynomial(coeffs=[-4.01239,0.143967,-1.88024e-05,-6.9341e-08,3.3996e-11,38690.8,60.7184], Tmin=(100,'K'), Tmax=(1029.08,'K')), NASAPolynomial(coeffs=[29.5395,0.0836812,-3.31502e-05,6.17495e-09,-4.3685e-13,28071.8,-120.154], Tmin=(1029.08,'K'), Tmax=(5000,'K'))], Tmin=(100,'K'), Tmax=(5000,'K'), E0=(319.062,'kJ/mol'), Cp0=(33.2579,'J/(mol*K)'), CpInf=(952.007,'J/(mol*K)'), comment=\"\"\"Thermo group additivity estimation: group(Cs-CsCsCsH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)CsH) + other(R) + group(Cs-CsCsHH) + other(R) + group(Cs-CbCsHH) + other(R) + group(Cs-(Cds-Cds)CsHH) + other(R) + group(Cs-(Cds-Cds)(Cds-Cds)HH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cs-CsHHH) + other(R) + group(Cds-CdsCsCs) + other(R) + group(Cb-Cs) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cds-CdsCsH) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + group(Cb-H) + other(R) + ring(Benzene) + ring(1,4-Cyclohexadiene) + radical(C=CCJC=C) + radical(RCCJC)\"\"\"), conformer=Conformer(E0=(319.062,'kJ/mol'), modes=[]), molecule=[Molecule(SMILES=\"C[CH]CC1[CH]C=CC(C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1[CH]C(C=CC=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1C=C[CH]C(C=1)C(C)Cc1ccccc1\"), Molecule(SMILES=\"C[CH]CC1[CH]C=CC(C=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1[CH]C(C=CC=1)C(C)CC1C=CC=CC=1\"), Molecule(SMILES=\"C[CH]CC1C=C[CH]C(C=1)C(C)CC1C=CC=CC=1\")], molecularWeight=(238.367,'amu'), energyTransferModel=SingleExponentialDown(alpha0=(3.5886,'kJ/mol'), T0=(300,'K'), n=0.85)))])" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reaction Family = R_Addition_MultipleBond\n", - "\n", - "Reactants\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Label: i1\n", - "SMILES: C[CH]Cc1ccccc1\n", - "\n", - "Products\n", - "Label: C[CH]CC1C=C[CH]C(C=1)C(C)Cc1ccccc1\n", - "SMILES: C[CH]CC1[CH]C=CC(C=1)C(C)Cc1ccccc1\n", - "\n", - "! Template reaction: R_Addition_MultipleBond\n", - "! Flux pairs: i1(1), C18H22(21); i1(1), C18H22(21); \n", - "! Average of [Cb-H_Cb-H;CsJ-HHH from training reaction 17]\n", - "! Estimated using template [Cb-H_Cb-H;CsJ] for rate rule [Cb-H_Cb-H;CsJ-CsCsH]\n", - "! Multiplied by reaction path degeneracy 2\n", - "i1(1)+i1(1)=C18H22(21) 7.500e+02 2.687 10.019 \n", - "\n", - "\n", - "Heat of Reaction = -8.72 kcal/mol\n", - "Forward kinetics at 623.0 K: 7.39E+00\n", - "Reverse kinetics at 623.0 K: 3.92E+08\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "for rxn in rmg.reactionModel.outputReactionList:\n", - " print '========================='\n", + "for rxn in rmg.reaction_model.output_reaction_list:\n", + " print('=========================')\n", " display(rxn)\n", - " print 'Reaction Family = {0}'.format(rxn.family)\n", - " print ''\n", - " print 'Reactants'\n", + " print('Reaction Family = {0}'.format(rxn.family))\n", + " print('')\n", + " print('Reactants')\n", " for reactant in rxn.reactants:\n", - " print 'Label: {0}'.format(reactant.label)\n", - " print 'SMILES: {0}'.format(reactant.molecule[0].toSMILES())\n", - " print ''\n", - " print 'Products'\n", + " print('Label: {0}'.format(reactant.label))\n", + " print('SMILES: {0}'.format(reactant.molecule[0].to_smiles()))\n", + " print('')\n", + " print('Products')\n", " for product in rxn.products:\n", - " print 'Label: {0}'.format(product.label)\n", - " print 'SMILES: {0}'.format(product.molecule[0].toSMILES())\n", - " print ''\n", - " print rxn.toChemkin()\n", - " print ''\n", - " print 'Heat of Reaction = {0:.2F} kcal/mol'.format(rxn.getEnthalpyOfReaction(623.0)/4184)\n", - " print 'Forward kinetics at {0} K: {1:.2E}'.format(T, rxn.getRateCoefficient(T))\n", + " print('Label: {0}'.format(product.label))\n", + " print('SMILES: {0}'.format(product.molecule[0].to_smiles()))\n", + " print('')\n", + " print(rxn.to_chemkin())\n", + " print('')\n", + " print('Heat of Reaction = {0:.2F} kcal/mol'.format(rxn.get_enthalpy_of_reaction(623.0)/4184))\n", + " print('Forward kinetics at {0} K: {1:.2E}'.format(T, rxn.get_rate_coefficient(T)))\n", "\n", - " reverseRate = rxn.generateReverseRateCoefficient()\n", - " print 'Reverse kinetics at {0} K: {1:.2E}'.format(T, reverseRate.getRateCoefficient(T))" + " reverseRate = rxn.generate_reverse_rate_coefficient()\n", + " print('Reverse kinetics at {0} K: {1:.2E}'.format(T, reverseRate.get_rate_coefficient(T)))" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -1006,23 +185,23 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [default]", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/ipython/kinetics_library_to_training.ipynb b/ipython/kinetics_library_to_training.ipynb index 7c6fc2f3a4..ec66a23a29 100644 --- a/ipython/kinetics_library_to_training.ipynb +++ b/ipython/kinetics_library_to_training.ipynb @@ -24,17 +24,17 @@ "families = ['Intra_R_Add_Endocyclic']\n", "\n", "# Specify whether to plot kinetics comparisons\n", - "compareKinetics = True\n", + "compare_kinetics = True\n", "\n", "# Specify whether to print library reactions which don't fit in the specified families\n", "# This can result in a lot of unnecessary output if only using a few families\n", - "showAll = False\n", + "show_all = False\n", "\n", "# Specify whether to prioritize aromatic resonance structures to reduce cases of multiple matches\n", - "filterAromatic = True\n", + "filter_aromatic = True\n", "\n", "# Specify whether to use verbose comments when averaging tree\n", - "verboseComments = False" + "verbose_comments = False" ] }, { @@ -65,16 +65,16 @@ "database = RMGDatabase()\n", "database.load(\n", " path = settings['database.directory'],\n", - " thermoLibraries = ['primaryThermoLibrary'], # Can add others if necessary\n", - " kineticsFamilies = families,\n", - " reactionLibraries = libraries,\n", - " kineticsDepositories = ['training'],\n", + " thermo_libraries = ['primaryThermoLibrary'], # Can add others if necessary\n", + " kinetics_families = families,\n", + " reaction_libraries = libraries,\n", + " kinetics_depositories = ['training'],\n", ")\n", "# If we want accurate kinetics comparison, add existing training reactions and fill tree by averaging\n", - "if compareKinetics:\n", + "if compare_kinetics:\n", " for family in database.kinetics.families.values():\n", - " family.addKineticsRulesFromTrainingSet(thermoDatabase=database.thermo)\n", - " family.fillKineticsRulesByAveragingUp(verbose=verboseComments)" + " family.add_rules_from_training(thermo_database=database.thermo)\n", + " family.fill_rules_by_averaging_up(verbose=verbose_comments)" ] }, { @@ -95,9 +95,9 @@ "master_dict, multiple_dict = process_reactions(database,\n", " libraries,\n", " families,\n", - " compareKinetics=compareKinetics,\n", - " showAll=showAll,\n", - " filterAromatic=filterAromatic)" + " compare_kinetics=compare_kinetics,\n", + " show_all=show_all,\n", + " filter_aromatic=filter_aromatic)" ] }, { @@ -161,15 +161,15 @@ "metadata": {}, "outputs": [], "source": [ - "for library_name, reaction_dict in master_dict.iteritems():\n", + "for library_name, reaction_dict in master_dict.items():\n", " library = database.kinetics.libraries[library_name]\n", " \n", - " for family_name, reaction_list in reaction_dict.iteritems():\n", + " for family_name, reaction_list in reaction_dict.items():\n", " print('Adding training reactions from {0} to {1}...'.format(library_name, family_name))\n", "\n", " family = database.kinetics.families[family_name]\n", " try:\n", - " depository = family.getTrainingDepository()\n", + " depository = family.get_training_depository()\n", " except:\n", " raise Exception('Unable to find training depository in {0}. Check that one exists.'.format(family_name))\n", "\n", @@ -183,22 +183,22 @@ " for reaction in reaction_list:\n", " # Get the original entry to retrieve metadata\n", " orig_entry = library.entries[reaction.index]\n", - " shortDesc = orig_entry.shortDesc\n", - " longDesc = 'Training reaction from kinetics library: {0}\\nOriginal entry: {1}'.format(library_name, orig_entry.label)\n", - " if orig_entry.longDesc:\n", - " longDesc += '\\n' + orig_entry.longDesc\n", + " short_desc = orig_entry.short_desc\n", + " long_desc = 'Training reaction from kinetics library: {0}\\nOriginal entry: {1}'.format(library_name, orig_entry.label)\n", + " if orig_entry.long_desc:\n", + " long_desc += '\\n' + orig_entry.long_desc\n", " \n", " ref_list.append(orig_entry.reference)\n", - " type_list.append(orig_entry.referenceType)\n", - " short_list.append(shortDesc)\n", - " long_list.append(longDesc)\n", + " type_list.append(orig_entry.reference_type)\n", + " short_list.append(short_desc)\n", + " long_list.append(long_desc)\n", " \n", - " family.saveTrainingReactions(\n", + " family.save_training_reactions(\n", " reaction_list,\n", " reference=ref_list,\n", - " referenceType=type_list,\n", - " shortDesc=short_list,\n", - " longDesc=long_list,\n", + " reference_type=type_list,\n", + " short_desc=short_list,\n", + " long_desc=long_list,\n", " )" ] }, @@ -213,21 +213,21 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/ipython/kinetics_library_to_training_tools.py b/ipython/kinetics_library_to_training_tools.py index 918cfa54ce..7c998cc4c8 100644 --- a/ipython/kinetics_library_to_training_tools.py +++ b/ipython/kinetics_library_to_training_tools.py @@ -50,27 +50,29 @@ def generate_header_html(n, fam_rxn, lib_rxn, library_name, families): html += ['One RMG match for this reaction'.format(full)] elif n == 0: if families == 'all': - html += [ - 'Sad :( There are no matches. This is a magic reaction or has chemistry that should be made into a new reaction family'.format( - full)] + html += ['' + 'Sad :( There are no matches. This is a magic reaction or has ' + 'chemistry that should be made into a new reaction family.' + ''.format(full)] else: - html += [ - 'There are no matches within the selected families: {1}'.format( - full, families)] + html += ['' + 'There are no matches within the selected families: {1}' + ''.format(full, families)] else: - html += [ - 'There are multiple RMG matches for this reaction. You have to manually create this training reaction.'.format( - full)] + html += ['' + 'There are multiple RMG matches for this reaction. ' + 'You have to manually create this training reaction.' + ''.format(full)] html += [''] html += ['Source Library: {1}'.format(full, library_name)] html += [''] if fam_rxn is not None: - html += [''.format(full, - b64encode(fam_rxn._repr_png_()))] + html += ['' + ''.format(full, b64encode(fam_rxn._repr_png_()).decode())] else: - html += [''.format(full, - b64encode(lib_rxn._repr_png_()))] + html += ['' + ''.format(full, b64encode(lib_rxn._repr_png_()).decode())] html += [''] html += ['Reactant SMILES'.format(half)] html += ['{1}'.format(half, ' + '.join( @@ -88,9 +90,9 @@ def generate_template_html(rxn, template): """ Generates HTML for displaying reaction template. """ - templateSize = len(template) + template_size = len(template) # HTML table uses a 12 column setup, so templates with 5 groups will break the table, which should not happen - assert templateSize < 5 + assert template_size < 5 html = [''] html += ['Matched Family'.format(half)] @@ -100,22 +102,24 @@ def generate_template_html(rxn, template): html += ['{1}'.format(half, [entry.label for entry in template])] html += [''] for entry in template: - html += ['{1}'.format(full / templateSize, entry.label)] + html += ['{1}'.format(full / template_size, entry.label)] html += [''] for entry in template: - html += [''.format(full / templateSize, b64encode(entry.item._repr_png_()))] + html += ['' + ''.format(full / template_size, b64encode(entry.item._repr_png_()).decode())] html += [''] - if templateSize == 3: + if template_size == 3: merged_group = template[0].item.merge_groups(template[1].item) merged_group = merged_group.merge_groups(template[2].item) html += ['{1}'.format(full, 'Merged Template')] html += [''] - html += [''.format(full, b64encode(merged_group._repr_png_()))] + html += ['' + ''.format(full, b64encode(merged_group._repr_png_()).decode())] return html -def process_reactions(database, libraries, families, compareKinetics=True, showAll=False, filterAromatic=True): +def process_reactions(database, libraries, families, compare_kinetics=True, show_all=False, filter_aromatic=True): """ Main function to recreate library reactions from families and display the results. """ @@ -125,7 +129,7 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA for library_name in libraries: library = database.kinetics.libraries[library_name] reaction_dict = {} - for index, entry in library.entries.iteritems(): + for index, entry in library.entries.items(): lib_rxn = entry.item lib_rxn.kinetics = entry.data lib_rxn.index = index @@ -139,7 +143,7 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA ) # Filter by aromatic resonance structures if requested - if filterAromatic and len(fam_rxn_list) > 1: + if filter_aromatic and len(fam_rxn_list) > 1: selected_rxns = [] max_num_aromatic_reactants = 0 for fam_rxn in fam_rxn_list: @@ -181,15 +185,15 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA template = database.kinetics.families[fam_rxn.family].retrieve_template(fam_rxn.template) - if compareKinetics: + if compare_kinetics: # Check what the current kinetics for this template are - newKinetics = lib_rxn.kinetics - oldKinetics = database.kinetics.families[fam_rxn.family].get_kinetics_for_template(template, degeneracy=fam_rxn.degeneracy)[0] + new_kinetics = lib_rxn.kinetics + old_kinetics = database.kinetics.families[fam_rxn.family].get_kinetics_for_template(template, degeneracy=fam_rxn.degeneracy)[0] # Evaluate kinetics tlistinv = np.linspace(1000 / 1500, 1000 / 300, num=10) tlist = 1000 * np.reciprocal(tlistinv) - newklist = np.log10(np.array([newKinetics.get_rate_coefficient(t) for t in tlist])) - oldklist = np.log10(np.array([oldKinetics.get_rate_coefficient(t) for t in tlist])) + newklist = np.log10(np.array([new_kinetics.get_rate_coefficient(t) for t in tlist])) + oldklist = np.log10(np.array([old_kinetics.get_rate_coefficient(t) for t in tlist])) # Create plot plt.cla() plt.plot(tlistinv, newklist, label='New') @@ -200,27 +204,27 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA fig = BytesIO() plt.savefig(fig, file_format='png') fig.seek(0) - figdata = b64encode(fig.getvalue()) + figdata = b64encode(fig.getvalue()).decode() fig.close() # Format output using html html = generate_header_html(1, fam_rxn, lib_rxn, library_name, families) html += generate_template_html(fam_rxn, template) - if compareKinetics: + if compare_kinetics: if not forward: html += ['' 'Note: Training reaction written in opposite direction from reaction family.' ''.format(full)] html += [''] html += ['New Kinetics:
{1}

' - 'Current Kinetics
{2}'.format(half, newKinetics, oldKinetics)] + 'Current Kinetics
{2}'.format(half, new_kinetics, old_kinetics)] html += [''.format(half, figdata)] html += [''] html += [''] display(HTML(''.join(html))) elif len(fam_rxn_list) == 0: - if showAll: + if show_all: html = generate_header_html(0, None, lib_rxn, library_name, families) html += [''] @@ -234,15 +238,16 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA else: multiple_dict[library_name] = [(lib_rxn, fam_rxn_list)] - if compareKinetics: oldKinetics = [] + if compare_kinetics: + old_kinetics = [] for i, rxn in enumerate(fam_rxn_list): forward = rxn.is_forward template = database.kinetics.families[rxn.family].retrieve_template(rxn.template) - if compareKinetics: - oldKinetics.append(database.kinetics.families[rxn.family].get_kinetics_for_template(template, degeneracy=rxn.degeneracy)[0]) + if compare_kinetics: + old_kinetics.append(database.kinetics.families[rxn.family].get_kinetics_for_template(template, degeneracy=rxn.degeneracy)[0]) if i == 0: html = generate_header_html(2, rxn, lib_rxn, library_name, families) @@ -250,18 +255,18 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA html += [''] html += ['Match #{1} - For the following resonance form of the reaction:'.format(full, i + 1)] html += [''] - html += [''.format(full, b64encode(rxn._repr_png_()))] + html += [''.format(full, b64encode(rxn._repr_png_()).decode())] html += [''] html += generate_template_html(rxn, template) - if compareKinetics: - newKinetics = lib_rxn.kinetics + if compare_kinetics: + new_kinetics = lib_rxn.kinetics # Evaluate kinetics tlistinv = np.linspace(1000 / 1500, 1000 / 300, num=10) tlist = 1000 * np.reciprocal(tlistinv) - newklist = np.log10(np.array([newKinetics.get_rate_coefficient(t) for t in tlist])) + newklist = np.log10(np.array([new_kinetics.get_rate_coefficient(t) for t in tlist])) oldklist = [] - for kinetics in oldKinetics: + for kinetics in old_kinetics: oldklist.append(np.log10(np.array([kinetics.get_rate_coefficient(t) for t in tlist]))) # Create plot plt.cla() @@ -274,7 +279,7 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA fig = BytesIO() plt.savefig(fig, file_format='png') fig.seek(0) - figdata = b64encode(fig.getvalue()) + figdata = b64encode(fig.getvalue()).decode() fig.close() if not forward: @@ -282,8 +287,8 @@ def process_reactions(database, libraries, families, compareKinetics=True, showA 'Note: Training reaction written in opposite direction from reaction family.' ''.format(full)] html += [''.format(half)] - html += ['New Kinetics:
{0}'.format(newKinetics)] - for i, kinetics in enumerate(oldKinetics): + html += ['New Kinetics:
{0}'.format(new_kinetics)] + for i, kinetics in enumerate(old_kinetics): html += ['

Match #{0} Kinetics:
{1}'.format(i + 1, kinetics)] html += [''.format(half, figdata)] html += [''] @@ -309,10 +314,10 @@ def review_reactions(master_dict, prompt=False): print('================================================================================') print('The following reactions will be added to the indicated families.') - for library_name, reaction_dict in master_dict.iteritems(): + for library_name, reaction_dict in master_dict.items(): print('================================================================================') print('Source Library: {0}'.format(library_name)) - for family_name, reaction_list in reaction_dict.iteritems(): + for family_name, reaction_list in reaction_dict.items(): print('--------------------------------------------------------------------------------') print('Destination Family: {0}'.format(family_name)) @@ -326,7 +331,7 @@ def review_reactions(master_dict, prompt=False): if prompt: success = False while not success: - choice = raw_input('Would you like to add this reaction? (y/n) ') + choice = input('Would you like to add this reaction? (y/n) ') if choice in ['y', 'n']: success = True else: @@ -353,7 +358,7 @@ def manual_selection(master_dict, multiple_dict, database): print('================================================================================') print('The following reactions had multiple matches. You may choose one match to add.') - for library_name, reaction_list in multiple_dict.iteritems(): + for library_name, reaction_list in multiple_dict.items(): print('================================================================================') print('Source Library: {0}'.format(library_name)) @@ -371,7 +376,7 @@ def manual_selection(master_dict, multiple_dict, database): success = False while not success: - choice = raw_input('Select a match to add (or use "s" to skip): ') + choice = input('Select a match to add (or use "s" to skip): ') try: choice = int(choice) except ValueError: diff --git a/ipython/localUncertainty.ipynb b/ipython/localUncertainty.ipynb index 4556eb76b4..3a54ea4d86 100644 --- a/ipython/localUncertainty.ipynb +++ b/ipython/localUncertainty.ipynb @@ -11,7 +11,7 @@ "from IPython.display import display, Image\n", "\n", "from rmgpy.tools.uncertainty import Uncertainty, process_local_results\n", - "from rmgpy.tools.canteraModel import getRMGSpeciesFromUserSpecies\n", + "from rmgpy.tools.canteraModel import get_rmg_species_from_user_species\n", "from rmgpy.species import Species" ] }, @@ -29,39 +29,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Step 1: Define mechanism files and simulation settings\n", - "\n", - "Two examples are provided below. You should only run one of the two blocks." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# This is a small phenyldodecane pyrolysis model\n", - "\n", - "# Must use annotated chemkin file\n", - "chemkinFile = './data/pdd_model/chem_annotated.inp'\n", - "dictFile = './data/pdd_model/species_dictionary.txt'\n", - "\n", - "# Initialize the Uncertainty class instance and load the model\n", - "uncertainty = Uncertainty(outputDirectory='./temp/uncertainty')\n", - "uncertainty.loadModel(chemkinFile, dictFile)\n", - "\n", - "# Map the species to the objects within the Uncertainty class\n", - "PDD = Species().fromSMILES(\"CCCCCCCCCCCCc1ccccc1\")\n", - "C11ene=Species().fromSMILES(\"CCCCCCCCCC=C\")\n", - "ETHBENZ=Species().fromSMILES(\"CCc1ccccc1\")\n", - "mapping = getRMGSpeciesFromUserSpecies([PDD,C11ene,ETHBENZ], uncertainty.speciesList)\n", - "\n", - "# Define the reaction conditions\n", - "initialMoleFractions = {mapping[PDD]: 1.0}\n", - "T = (623, 'K')\n", - "P = (350, 'bar')\n", - "terminationTime = (72, 'h')\n", - "sensitiveSpecies=[mapping[PDD], mapping[C11ene]]" + "## Step 1: Define mechanism files and simulation settings" ] }, { @@ -70,27 +38,27 @@ "metadata": {}, "outputs": [], "source": [ - "# This is an even smaller ethane pyrolysis model\n", + "# This is a small ethane pyrolysis model\n", "\n", "# Must use annotated chemkin file\n", - "chemkinFile = 'data/ethane_model/chem_annotated.inp'\n", - "dictFile = 'data/ethane_model/species_dictionary.txt'\n", + "chemkin_file = 'data/parse_source/chem_annotated.inp'\n", + "dict_file = 'data/parse_source/species_dictionary.txt'\n", "\n", "# Initialize the Uncertainty class instance and load the model\n", - "uncertainty = Uncertainty(outputDirectory='./temp/uncertainty')\n", - "uncertainty.loadModel(chemkinFile, dictFile)\n", + "uncertainty = Uncertainty(output_directory='./temp/uncertainty')\n", + "uncertainty.load_model(chemkin_file, dict_file)\n", "\n", "# Map the species to the objects within the Uncertainty class\n", - "ethane = Species().fromSMILES('CC')\n", - "C2H4 = Species().fromSMILES('C=C')\n", - "mapping = getRMGSpeciesFromUserSpecies([ethane, C2H4], uncertainty.speciesList)\n", + "ethane = Species().from_smiles('CC')\n", + "C2H4 = Species().from_smiles('C=C')\n", + "mapping = get_rmg_species_from_user_species([ethane, C2H4], uncertainty.species_list)\n", "\n", "# Define the reaction conditions\n", - "initialMoleFractions = {mapping[ethane]: 1.0}\n", + "initial_mole_fractions = {mapping[ethane]: 1.0}\n", "T = (1300, 'K')\n", "P = (1, 'bar')\n", - "terminationTime = (0.5, 'ms')\n", - "sensitiveSpecies=[mapping[ethane], mapping[C2H4]]" + "termination_time = (0.5, 'ms')\n", + "sensitive_species=[mapping[ethane], mapping[C2H4]]" ] }, { @@ -109,7 +77,7 @@ "outputs": [], "source": [ "# Perform the sensitivity analysis\n", - "uncertainty.sensitivityAnalysis(initialMoleFractions, sensitiveSpecies, T, P, terminationTime, number=5, fileformat='.png')" + "uncertainty.sensitivity_analysis(initial_mole_fractions, sensitive_species, T, P, termination_time, number=5, fileformat='.png')" ] }, { @@ -121,13 +89,13 @@ "outputs": [], "source": [ "# Show the sensitivity plots\n", - "for species in sensitiveSpecies:\n", - " print '{}: Reaction Sensitivities'.format(species)\n", + "for species in sensitive_species:\n", + " print('{}: Reaction Sensitivities'.format(species))\n", " index = species.index\n", - " display(Image(filename=os.path.join(uncertainty.outputDirectory,'solver','sensitivity_1_SPC_{}_reactions.png'.format(index))))\n", + " display(Image(filename=os.path.join(uncertainty.output_directory,'solver','sensitivity_1_SPC_{}_reactions.png'.format(index))))\n", " \n", - " print '{}: Thermo Sensitivities'.format(species)\n", - " display(Image(filename=os.path.join(uncertainty.outputDirectory,'solver','sensitivity_1_SPC_{}_thermo.png'.format(index))))" + " print('{}: Thermo Sensitivities'.format(species))\n", + " display(Image(filename=os.path.join(uncertainty.output_directory,'solver','sensitivity_1_SPC_{}_thermo.png'.format(index))))" ] }, { @@ -181,10 +149,10 @@ "source": [ "# NOTE: You must load the database with the same settings which were used to generate the model.\n", "# This includes any thermo or kinetics libraries which were used.\n", - "uncertainty.loadDatabase(\n", - " thermoLibraries=['DFT_QCI_thermo', 'primaryThermoLibrary'],\n", - " kineticsFamilies='default',\n", - " reactionLibraries=[],\n", + "uncertainty.load_database(\n", + " thermo_libraries=['DFT_QCI_thermo', 'primaryThermoLibrary'],\n", + " kinetics_families='default',\n", + " reaction_libraries=[],\n", ")" ] }, @@ -194,8 +162,8 @@ "metadata": {}, "outputs": [], "source": [ - "uncertainty.extractSourcesFromModel()\n", - "uncertainty.assignParameterUncertainties()" + "uncertainty.extract_sources_from_model()\n", + "uncertainty.assign_parameter_uncertainties()" ] }, { @@ -217,8 +185,8 @@ }, "outputs": [], "source": [ - "result = uncertainty.localAnalysis(sensitiveSpecies, correlated=False, number=5, fileformat='.png')\n", - "print process_local_results(result, sensitiveSpecies, number=5)[1]" + "result = uncertainty.local_analysis(sensitive_species, correlated=False, number=5, fileformat='.png')\n", + "print(process_local_results(result, sensitive_species, number=5)[1])" ] }, { @@ -230,12 +198,12 @@ "outputs": [], "source": [ "# Show the uncertainty plots\n", - "for species in sensitiveSpecies:\n", - " print '{}: Thermo Uncertainty Contributions'.format(species)\n", - " display(Image(filename=os.path.join(uncertainty.outputDirectory, 'uncorrelated', 'thermoLocalUncertainty_{}.png'.format(species.toChemkin()))))\n", + "for species in sensitive_species:\n", + " print('{}: Thermo Uncertainty Contributions'.format(species))\n", + " display(Image(filename=os.path.join(uncertainty.output_directory, 'uncorrelated', 'thermoLocalUncertainty_{}.png'.format(species.to_chemkin()))))\n", " \n", - " print '{}: Reaction Uncertainty Contributions'.format(species)\n", - " display(Image(filename=os.path.join(uncertainty.outputDirectory, 'uncorrelated', 'kineticsLocalUncertainty_{}.png'.format(species.toChemkin()))))" + " print('{}: Reaction Uncertainty Contributions'.format(species))\n", + " display(Image(filename=os.path.join(uncertainty.output_directory, 'uncorrelated', 'kineticsLocalUncertainty_{}.png'.format(species.to_chemkin()))))" ] }, { @@ -269,9 +237,9 @@ }, "outputs": [], "source": [ - "uncertainty.assignParameterUncertainties(correlated=True)\n", - "result = uncertainty.localAnalysis(sensitiveSpecies, correlated=True, number=10, fileformat='.png')\n", - "print process_local_results(result, sensitiveSpecies, number=5)[1]" + "uncertainty.assign_parameter_uncertainties(correlated=True)\n", + "result = uncertainty.local_analysis(sensitive_species, correlated=True, number=10, fileformat='.png')\n", + "print(process_local_results(result, sensitive_species, number=5)[1])" ] }, { @@ -283,12 +251,12 @@ "outputs": [], "source": [ "# Show the uncertainty plots\n", - "for species in sensitiveSpecies:\n", - " print '{}: Thermo Uncertainty Contributions'.format(species)\n", - " display(Image(filename=os.path.join(uncertainty.outputDirectory, 'correlated', 'thermoLocalUncertainty_{}.png'.format(species.toChemkin()))))\n", + "for species in sensitive_species:\n", + " print('{}: Thermo Uncertainty Contributions'.format(species))\n", + " display(Image(filename=os.path.join(uncertainty.output_directory, 'correlated', 'thermoLocalUncertainty_{}.png'.format(species.to_chemkin()))))\n", " \n", - " print '{}: Reaction Uncertainty Contributions'.format(species)\n", - " display(Image(filename=os.path.join(uncertainty.outputDirectory, 'correlated', 'kineticsLocalUncertainty_{}.png'.format(species.toChemkin()))))" + " print('{}: Reaction Uncertainty Contributions'.format(species))\n", + " display(Image(filename=os.path.join(uncertainty.output_directory, 'correlated', 'kineticsLocalUncertainty_{}.png'.format(species.to_chemkin()))))" ] }, { @@ -301,21 +269,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, diff --git a/ipython/mechanism_analyzer.ipynb b/ipython/mechanism_analyzer.ipynb index c4403c6d7d..2c719c1b29 100644 --- a/ipython/mechanism_analyzer.ipynb +++ b/ipython/mechanism_analyzer.ipynb @@ -18,13 +18,11 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from rmgpy.rmg.model import CoreEdgeReactionModel\n", - "from rmgpy.chemkin import loadChemkinFile\n", + "from rmgpy.chemkin import load_chemkin_file\n", "import os" ] }, @@ -46,9 +44,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "mech = 'minimal'" @@ -57,31 +53,28 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ - "mechPath = os.path.join('./', 'data', 'pathway_analysis', mech)\n", - "chemkinPath= os.path.join(mechPath, 'chem.inp')\n", - "dictionaryPath = os.path.join(mechPath, 'species_dictionary.txt')\n", - "ckcsvPath= mechPath + '/CKSoln.ckcsv'\n", + "mech_path = os.path.join('./', 'data', 'pathway_analysis', mech)\n", + "chemkin_path= os.path.join(mech_path, 'chem.inp')\n", + "dictionary_path = os.path.join(mech_path, 'species_dictionary.txt')\n", + "ckcsv_path= os.path.join(mech_path, 'CKSoln.ckcsv')\n", "\n", "model = CoreEdgeReactionModel()\n", - "model.core.species, model.core.reactions = loadChemkinFile(chemkinPath,dictionaryPath)" + "model.core.species, model.core.reactions = load_chemkin_file(chemkin_path, dictionary_path)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ - "# generate paris for reactions that don't have flux pairs\n", + "# generate pairs for reactions that don't have flux pairs\n", "for rxn in model.core.reactions:\n", - " if not rxn.pairs: rxn.generatePairs()" + " if not rxn.pairs:\n", + " rxn.generate_pairs()" ] }, { @@ -94,15 +87,13 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "import networkx as nx\n", "import matplotlib.pyplot as plt\n", - "from rmgpy.tools.extractInfoFromckcsv import getConcentrationDictFromCKCSV, getROPFromCKCSV, getFluxGraphEdgesDict\n", - "from rmgpy.chemkin import getSpeciesIdentifier\n", + "from rmgpy.tools.extractInfoFromckcsv import get_concentration_dict_from_ckcsv, get_rop_from_ckcsv, get_flux_graph_edges_dict\n", + "from rmgpy.chemkin import get_species_identifier\n", "from IPython.display import display\n", "import numpy as np\n", "from rmgpy.rmg.pdep import PDepReaction\n", @@ -119,20 +110,18 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ - "firstColDict, spc_mf_dict = getConcentrationDictFromCKCSV(ckcsvPath)\n", - "first_col_dict, spc_total_rop_dict, spc_rop_dict = getROPFromCKCSV(ckcsvPath)\n", + "first_col_dict, spc_mf_dict = get_concentration_dict_from_ckcsv(ckcsv_path)\n", + "first_col_dict_rop, spc_total_rop_dict, spc_rop_dict = get_rop_from_ckcsv(ckcsv_path)\n", "\n", - "graph_edges_dict = getFluxGraphEdgesDict(spc_rop_dict, model.core.reactions)\n", + "graph_edges_dict = get_flux_graph_edges_dict(spc_rop_dict, model.core.reactions)\n", "\n", "graph_edges_dict_simple = {}\n", "for pair in graph_edges_dict:\n", - " node1 = getSpeciesIdentifier(pair[0])\n", - " node2 = getSpeciesIdentifier(pair[1])\n", + " node1 = get_species_identifier(pair[0])\n", + " node2 = get_species_identifier(pair[1])\n", " graph_edges_dict_simple[(node1, node2)] = graph_edges_dict[pair]" ] }, @@ -152,15 +141,13 @@ "\n", "- the reaction pressure in Pa if the mechanism includes pressure-dependent reactions\n", "\n", - "- showIntegratedFlux: True if users want to use time-integrated fluxes (integrated up to the investigated time point) in mole for analysis. Flase if users want to use instantaneous fluxes in mole/cm3/s at the investigated time point for analysis" + "- show_integrated_flux: True if users want to use time-integrated fluxes (integrated up to the investigated time point) in mole for analysis. Flase if users want to use instantaneous fluxes in mole/cm3/s at the investigated time point for analysis" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "########## User Input ####################\n", @@ -168,61 +155,61 @@ "reactant_name = 'ethane(1)'\n", "T = 1350 # K\n", "P = 100000 # Pa\n", - "showIntegratedFlux = True \n", + "show_integrated_flux = True \n", "##########################################\n", "\n", "\n", - "timepoint_index = (np.abs(firstColDict['Time_(sec)']-time_investigated*3600)).argmin()\n", - "timeList = firstColDict['Time_(sec)']\n", - "Plist = firstColDict['Pressure_(bar)']\n", - "Tlist = firstColDict['Temperature_(k)']\n", - "Vlist = firstColDict['Volume_(cm3)']\n", + "timepoint_index = (np.abs(first_col_dict['Time_(sec)']-time_investigated*3600)).argmin()\n", + "time_list = first_col_dict['Time_(sec)']\n", + "Plist = first_col_dict['Pressure_(bar)']\n", + "Tlist = first_col_dict['Temperature_(k)']\n", + "Vlist = first_col_dict['Volume_(cm3)']\n", "\n", - "print \"Investigated time point is {0} secs\".format(timeList[timepoint_index])\n", - "print \"At this moment, the reactant's mole fraction is {}.\".format(spc_mf_dict[reactant_name][timepoint_index])\n", + "print(\"Investigated time point is {0} secs\".format(time_list[timepoint_index]))\n", + "print(\"At this moment, the reactant's mole fraction is {}.\".format(spc_mf_dict[reactant_name][timepoint_index]))\n", "\n", - "# Create moleFraction_dict at the investigated time point\n", - "moleFraction_dict = {}\n", + "# Create mole_fraction_dict at the investigated time point\n", + "mole_fraction_dict = {}\n", "for i, v in spc_mf_dict.items():\n", - " moleFraction_dict.update({i:v[timepoint_index]})\n", + " mole_fraction_dict.update({i: v[timepoint_index]})\n", "\n", "# Create species_identifier_didct for the core species \n", "species_identifier_dict = {}\n", "for i, s in enumerate(model.core.species):\n", - " species_identifier_dict.update({getSpeciesIdentifier(model.core.species[i]): s})\n", + " species_identifier_dict.update({get_species_identifier(model.core.species[i]): s})\n", "\n", "# find the total consumption of the reactant in mol (positive value means consumption)\n", - "reactantConsumption = 0 # \n", + "reactant_consumption = 0 # \n", "for t in range(timepoint_index):\n", " reactantROP0 = spc_total_rop_dict[reactant_name][1][t] # in mole/cm3*s\n", " reactantROP1 = spc_total_rop_dict[reactant_name][1][t+1] # in mole/cm3*s\n", " #integrate the flux using a trapezoidal rule\n", - " reactantConsumption += 0.5 * (reactantROP1 * Vlist[t+1] + reactantROP0 * Vlist[t]) * (timeList[t+1] - timeList[t])\n", - "reactantConsumption = reactantConsumption * -1.0 # in mole\n", + " reactant_consumption += 0.5 * (reactantROP1 * Vlist[t+1] + reactantROP0 * Vlist[t]) * (time_list[t+1] - time_list[t])\n", + "reactant_consumption = reactant_consumption * -1.0 # in mole\n", "\n", - "if showIntegratedFlux:\n", - " print \"At this moment, the reactant's total molar consumption is {0:.3E} mole.\".format(reactantConsumption)\n", + "if show_integrated_flux:\n", + " print(\"At this moment, the reactant's total molar consumption is {0:.3E} mole.\".format(reactant_consumption))\n", "\n", "# create DiGraph for this moment\n", "G = nx.DiGraph()\n", "for pair in graph_edges_dict:\n", - " node1 = getSpeciesIdentifier(pair[0])\n", - " node2 = getSpeciesIdentifier(pair[1])\n", + " node1 = get_species_identifier(pair[0])\n", + " node2 = get_species_identifier(pair[1])\n", " e_rawdata = graph_edges_dict[pair]\n", " total_flux = 0\n", " for rxn in e_rawdata:\n", - " if showIntegratedFlux:\n", + " if show_integrated_flux:\n", " for t in range(timepoint_index):\n", " rxnROP0 = e_rawdata[rxn][t] # in mole/cm3\n", " rxnROP1 = e_rawdata[rxn][t+1] # in mole/cm3\n", " #integrate the flux using a trapezoidal rule\n", - " total_flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (timeList[t+1] - timeList[t]) # in mole\n", + " total_flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (time_list[t+1] - time_list[t]) # in mole\n", " else:\n", " total_flux += e_rawdata[rxn][timepoint_index] # in mole/cm3*s\n", " if total_flux >= 0:\n", - " G.add_edge(node2, node1, {\"total_flux\":total_flux}) # in G, positive means production of node1\n", - " else: \n", - " G.add_edge(node1, node2, {\"total_flux\":-total_flux}) # in G, negative means consumption of node1 " + " G.add_edge(node2, node1, **{\"total_flux\": total_flux}) # in G, positive means production of node1\n", + " else:\n", + " G.add_edge(node1, node2, **{\"total_flux\": -total_flux}) # in G, negative means consumption of node1 " ] }, { @@ -239,9 +226,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "########## User Input ####################\n", @@ -249,26 +234,26 @@ "##########################################\n", "\n", "\n", - "# sort out the moleFraction_dict in the descending order\n", - "v = list(moleFraction_dict.values())\n", - "k = list(moleFraction_dict.keys())\n", + "# sort out the mole_fraction_dict in the descending order\n", + "v = list(mole_fraction_dict.values())\n", + "k = list(mole_fraction_dict.keys())\n", "index_list = [i[0] for i in sorted(enumerate(v), key=lambda x:x[1], reverse=True)]\n", - "print '=============================================================='\n", - "print 'Order \\t Species \\t Mole Frac. \\t MW (g/mol)'\n", - "print '=============================================================='\n", + "print('==============================================================')\n", + "print('Order \\t Species \\t Mole Frac. \\t MW (g/mol)')\n", + "print('==============================================================')\n", "\n", "for order in range(dominant_list[0], dominant_list[-1]+1):\n", " index_number = index_list[order]\n", " species_dominant = k[index_number]\n", " molecule_dominant = species_identifier_dict.get(species_dominant)\n", " mole_fraction = v[index_number]\n", - " molecular_weight = molecule_dominant.molecule[0].getMolecularWeight()*1000\n", + " molecular_weight = molecule_dominant.molecule[0].get_molecular_weight()*1000\n", " if len(species_dominant) < 6: # if the species label is too short, put more space to allign it\n", - " print '{0} \\t {1} \\t\\t {2} \\t {3:.0f}'.format(order, species_dominant, mole_fraction, molecular_weight)\n", + " print('{0} \\t {1} \\t\\t {2} \\t {3:.0f}'.format(order, species_dominant, mole_fraction, molecular_weight))\n", " else:\n", - " print '{0} \\t {1} \\t {2} \\t {3:.0f}'.format(order, species_dominant, mole_fraction, molecular_weight)\n", + " print('{0} \\t {1} \\t {2} \\t {3:.0f}'.format(order, species_dominant, mole_fraction, molecular_weight))\n", " display(molecule_dominant)\n", - " print '--------------------------------------------------------------'" + " print('--------------------------------------------------------------')" ] }, { @@ -287,9 +272,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "########## User Input ####################\n", @@ -308,9 +291,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "paths = list(nx.all_simple_paths(G, source=src_species, target=tgt_species, cutoff=5))" @@ -319,41 +300,39 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "path_fluxes = []\n", - "if showIntegratedFlux:\n", - " print '========================================================================================================'\n", - " print 'Path index \\t Integrated Flux (mole) Path steps'\n", + "if show_integrated_flux:\n", + " print('========================================================================================================')\n", + " print('Path index \\t Integrated Flux (mole) Path steps')\n", "else:\n", - " print '================================================'\n", - " print 'Path index \\t Flux (mole/cm3/s) Path steps'\n", - "print ''\n", + " print('================================================')\n", + " print('Path index \\t Flux (mole/cm3/s) Path steps')\n", + "print('')\n", "\n", "for i, path in enumerate(paths):\n", " \n", " path_steps = len(path) - 1\n", " fluxes = [G[path[step]][path[step+1]]['total_flux'] for step in range(path_steps) ]\n", " path_fluxes.append(min(fluxes))\n", - " if showIntegratedFlux:\n", - " print 'Path #{0}: \\t {1:.3E} \\t\\t {2}'.format(i, min(fluxes), path)\n", + " if show_integrated_flux:\n", + " print('Path #{0}: \\t {1:.3E} \\t\\t {2}'.format(i, min(fluxes), path))\n", " else:\n", - " print 'Path #{0}: \\t {1:.3E} \\t {2}'.format(i, min(fluxes), path)\n", + " print('Path #{0}: \\t {1:.3E} \\t {2}'.format(i, min(fluxes), path))\n", "sorted_path_fluxes = sorted(path_fluxes)\n", "\n", - "print ''\n", - "print '======================================================='\n", - "print '\\t Most Significant Path '\n", - "print '======================================================='\n", - "if showIntegratedFlux:\n", - " print 'Path index \\t Integrated Flux (mole)'\n", - " print 'Path #{0}: \\t {1:.3E}'.format(path_fluxes.index(sorted_path_fluxes[-1]), sorted_path_fluxes[-1])\n", + "print('')\n", + "print('=======================================================')\n", + "print('\\t Most Significant Path ')\n", + "print('=======================================================')\n", + "if show_integrated_flux:\n", + " print('Path index \\t Integrated Flux (mole)')\n", + " print('Path #{0}: \\t {1:.3E}'.format(path_fluxes.index(sorted_path_fluxes[-1]), sorted_path_fluxes[-1]))\n", "else:\n", - " print 'Path index \\t Flux (mole/cm3/s)'\n", - " print 'Path #{0}: \\t {1:.3E} '.format(path_fluxes.index(sorted_path_fluxes[-1]), sorted_path_fluxes[-1])" + " print('Path index \\t Flux (mole/cm3/s)')\n", + " print('Path #{0}: \\t {1:.3E} '.format(path_fluxes.index(sorted_path_fluxes[-1]), sorted_path_fluxes[-1]))" ] }, { @@ -370,9 +349,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "########## User Input ####################\n", @@ -381,34 +358,34 @@ "\n", "path = paths[path_index_investigate]\n", "path_steps = len(path) - 1\n", - "print ''\n", - "print '\\t Pathway Report '\n", - "print '======================================'\n", - "print 'The pathway you are intested in has {0} steps.'.format(len(path))\n", + "print('')\n", + "print('\\t Pathway Report ')\n", + "print('======================================')\n", + "print('The pathway you are intested in has {0} steps.'.format(len(path)))\n", "for step in range(path_steps):\n", " step_pair = (path[step], path[step+1])\n", " h_abs_rxns = []\n", " disp_rxns = []\n", " Pdep_rxns = []\n", " \n", - " print \"\"\n", - " if showIntegratedFlux:\n", - " print \"Step{0} \\t\\t\\t\\t Integrated Flux (mole)\".format(step+1)\n", - " print '***********************************************************************'\n", - " print \"{1} --> {2} \\t\\t {3:.3E}\".\\\n", - " format(step+1, step_pair[0], step_pair[1], G[step_pair[0]][step_pair[1]]['total_flux'])\n", - " print '***********************************************************************'\n", + " print(\"\")\n", + " if show_integrated_flux:\n", + " print(\"Step{0} \\t\\t\\t\\t Integrated Flux (mole)\".format(step+1))\n", + " print('***********************************************************************')\n", + " print(\"{1} --> {2} \\t\\t {3:.3E}\"\n", + " .format(step+1, step_pair[0], step_pair[1], G[step_pair[0]][step_pair[1]]['total_flux']))\n", + " print('***********************************************************************')\n", " else:\n", - " print \"Step{0} \\t\\t\\t\\t Flux (mole/cm3/s)\".format(step+1)\n", - " print '*****************************************************'\n", - " print \"{1} --> {2} \\t\\t {3:.3E}\".\\\n", - " format(step+1, step_pair[0], step_pair[1], G[step_pair[0]][step_pair[1]]['total_flux'])\n", - " print '*****************************************************'\n", + " print(\"Step{0} \\t\\t\\t\\t Flux (mole/cm3/s)\".format(step+1))\n", + " print('*****************************************************')\n", + " print(\"{1} --> {2} \\t\\t {3:.3E}\"\n", + " .format(step+1, step_pair[0], step_pair[1], G[step_pair[0]][step_pair[1]]['total_flux']))\n", + " print('*****************************************************')\n", " \n", " if step_pair not in graph_edges_dict_simple:\n", " step_pair = (step_pair[1], step_pair[0])\n", " \n", - " print ''\n", + " print('')\n", " for rxn in graph_edges_dict_simple[step_pair]:\n", " if isinstance(rxn, PDepReaction):\n", " Pdep_rxns.append(rxn)\n", @@ -417,44 +394,44 @@ " elif rxn.family == \"Disproportionation\":\n", " disp_rxns.append(rxn)\n", " else:\n", - " print \"Example reaction: rxn#{0}\".format(rxn.index)\n", - " print ''\n", - " print str(rxn)\n", + " print(\"Example reaction: rxn#{0}\".format(rxn.index))\n", + " print('')\n", + " print(str(rxn))\n", " display(rxn)\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, rxn.getRateCoefficient(T))\n", - " reverseRate = rxn.generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, rxn.get_rate_coefficient(T)))\n", + " reverse_rate = rxn.generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(h_abs_rxns) > 0: \n", " \n", - " print \"Example H_Abstraction: rxn#{0} (1/{1} H_Abs): \".format(h_abs_rxns[0].index, len(h_abs_rxns)) \n", - " print ''\n", - " print str(h_abs_rxns[0])\n", + " print(\"Example H_Abstraction: rxn#{0} (1/{1} H_Abs): \".format(h_abs_rxns[0].index, len(h_abs_rxns)) )\n", + " print('')\n", + " print(str(h_abs_rxns[0]))\n", " display(h_abs_rxns[0])\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, h_abs_rxns[0].getRateCoefficient(T))\n", - " reverseRate = h_abs_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, h_abs_rxns[0].get_rate_coefficient(T)))\n", + " reverse_rate = h_abs_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(disp_rxns) > 0: \n", " \n", - " print \"Example Disproportionation: rxn#{0} (1/{1} Disp): \".format(disp_rxns[0].index, len(disp_rxns)) \n", - " print ''\n", - " print str(disp_rxns[0])\n", + " print(\"Example Disproportionation: rxn#{0} (1/{1} Disp): \".format(disp_rxns[0].index, len(disp_rxns)) )\n", + " print('')\n", + " print(str(disp_rxns[0]))\n", " display(disp_rxns[0])\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, disp_rxns[0].getRateCoefficient(T))\n", - " reverseRate = disp_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, disp_rxns[0].get_rate_coefficient(T)))\n", + " reverse_rate = disp_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(Pdep_rxns) > 0: \n", " \n", - " print \"Example Pressure-dependent Rxn: rxn#{0} (1/{1} Pdep_rxns): \".format(Pdep_rxns[0].index, len(Pdep_rxns)) \n", - " print ''\n", - " print str(Pdep_rxns[0])\n", + " print(\"Example Pressure-dependent Rxn: rxn#{0} (1/{1} Pdep_rxns): \".format(Pdep_rxns[0].index, len(Pdep_rxns)) )\n", + " print('')\n", + " print(str(Pdep_rxns[0]))\n", " display(Pdep_rxns[0])\n", - " print 'Forward rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, Pdep_rxns[0].getRateCoefficient(T, P))\n", - " reverseRate = Pdep_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, reverseRate.getRateCoefficient(T, P))\n", - " print ''" + " print('Forward rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, Pdep_rxns[0].get_rate_coefficient(T, P)))\n", + " reverse_rate = Pdep_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, reverse_rate.get_rate_coefficient(T, P)))\n", + " print('')" ] }, { @@ -475,9 +452,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "########## User Input ####################\n", @@ -489,33 +464,33 @@ "\n", "current_node = source\n", "\n", - "print ''\n", - "print '\\t Pathway Report '\n", - "print '======================================'\n", - "print 'The pathway you are intested in has {0} steps.'.format(depth)\n", + "print('')\n", + "print('\\t Pathway Report ')\n", + "print('======================================')\n", + "print('The pathway you are intested in has {0} steps.'.format(depth))\n", "for step in range(depth):\n", - " print \"\\n\" \n", - " nextNode_flux_list = [(next_node, G[current_node][next_node]['total_flux']) for next_node in G[current_node]]\n", - " sorted_nextNode_flux_list = sorted(nextNode_flux_list, key=lambda tup: -tup[1])\n", + " print(\"\\n\")\n", + " next_node_flux_list = [(next_node, G[current_node][next_node]['total_flux']) for next_node in G[current_node]]\n", + " sorted_next_node_flux_list = sorted(next_node_flux_list, key=lambda tup: -tup[1])\n", " \n", " # choose the top one as next node\n", - " tup = sorted_nextNode_flux_list[path_top_list[step]]\n", + " tup = sorted_next_node_flux_list[path_top_list[step]]\n", " next_node = tup[0]\n", " step_flux = tup[1]\n", " \n", - " print \"\"\n", - " if showIntegratedFlux:\n", - " print \"Step{0} \\t\\t\\t\\t Integrated Flux (mole)\".format(step+1)\n", - " print '************************************************************************'\n", - " print \"{0} --> {1} \\t\\t {2:.3E}\".\\\n", - " format(current_node, next_node, step_flux)\n", - " print '************************************************************************'\n", + " print(\"\")\n", + " if show_integrated_flux:\n", + " print(\"Step{0} \\t\\t\\t\\t Integrated Flux (mole)\".format(step+1))\n", + " print('************************************************************************')\n", + " print(\"{0} --> {1} \\t\\t {2:.3E}\"\n", + " .format(current_node, next_node, step_flux))\n", + " print('************************************************************************')\n", " else:\n", - " print \"Step{0} \\t\\t\\t\\t Flux (mole/cm3/s)\".format(step+1)\n", - " print '****************************************************'\n", - " print \"{0} --> {1} \\t\\t {2:.3E}\".\\\n", - " format(current_node, next_node, step_flux)\n", - " print '****************************************************'\n", + " print(\"Step{0} \\t\\t\\t\\t Flux (mole/cm3/s)\".format(step+1))\n", + " print('****************************************************')\n", + " print(\"{0} --> {1} \\t\\t {2:.3E}\"\n", + " .format(current_node, next_node, step_flux))\n", + " print('****************************************************')\n", "\n", " \n", " step_pair = (current_node, next_node)\n", @@ -533,54 +508,54 @@ " elif rxn.family == \"Disproportionation\":\n", " disp_rxns.append(rxn)\n", " else:\n", - " print ''\n", - " print \"Example reaction: rxn#{0}\".format(rxn.index)\n", - " print ''\n", - " if showIntegratedFlux:\n", + " print('')\n", + " print(\"Example reaction: rxn#{0}\".format(rxn.index))\n", + " print('')\n", + " if show_integrated_flux:\n", " #integrate the flux using a trapezoidal rule\n", " integrated_flux = 0\n", " for t in range(timepoint_index):\n", " rxnROP0 = graph_edges_dict_simple[step_pair][rxn][t]\n", " rxnROP1 = graph_edges_dict_simple[step_pair][rxn][t+1]\n", - " integrated_flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (timeList[t+1] - timeList[t]) # in mole\n", - " print \"{0}: Integrated Flux = {1:.3E} mole\".format(str(rxn), integrated_flux)\n", + " integrated_flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (time_list[t+1] - time_list[t]) # in mole\n", + " print(\"{0}: Integrated Flux = {1:.3E} mole\".format(str(rxn), integrated_flux))\n", " else:\n", - " print \"{0}: Flux = {1:.3E} mole/cm3/s\".format(str(rxn), graph_edges_dict_simple[step_pair][rxn][timepoint_index])\n", + " print(\"{0}: Flux = {1:.3E} mole/cm3/s\".format(str(rxn), graph_edges_dict_simple[step_pair][rxn][timepoint_index]))\n", " display(rxn)\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, rxn.getRateCoefficient(T))\n", - " reverseRate = rxn.generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, rxn.get_rate_coefficient(T)))\n", + " reverse_rate = rxn.generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(h_abs_rxns) > 0:\n", - " print ''\n", - " print \"Example H_Abstraction: rxn#{0}(1/{1} H_Abs)\".format(h_abs_rxns[0].index, len(h_abs_rxns))\n", - " print ''\n", - " print str(h_abs_rxns[0])\n", + " print('')\n", + " print(\"Example H_Abstraction: rxn#{0}(1/{1} H_Abs)\".format(h_abs_rxns[0].index, len(h_abs_rxns)))\n", + " print('')\n", + " print(str(h_abs_rxns[0]))\n", " display(h_abs_rxns[0])\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, h_abs_rxns[0].getRateCoefficient(T))\n", - " reverseRate = h_abs_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, h_abs_rxns[0].get_rate_coefficient(T)))\n", + " reverse_rate = h_abs_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(disp_rxns) > 0: \n", - " print ''\n", - " print \"Example Disproportionation: rxn#{0}(1/{1} Disp)\".format(disp_rxns[0].index, len(disp_rxns))\n", - " print ''\n", - " print str(disp_rxns[0])\n", + " print('')\n", + " print(\"Example Disproportionation: rxn#{0}(1/{1} Disp)\".format(disp_rxns[0].index, len(disp_rxns)))\n", + " print('')\n", + " print(str(disp_rxns[0]))\n", " display(disp_rxns[0])\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, disp_rxns[0].getRateCoefficient(T))\n", - " reverseRate = disp_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, disp_rxns[0].get_rate_coefficient(T)))\n", + " reverse_rate = disp_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(Pdep_rxns) > 0: \n", - " print ''\n", - " print \"Example Pressure-dependent Rxn: rxn#{0} (1/{1} Pdep_rxns): \".format(Pdep_rxns[0].index, len(Pdep_rxns)) \n", - " print ''\n", - " print str(Pdep_rxns[0])\n", + " print('')\n", + " print(\"Example Pressure-dependent Rxn: rxn#{0} (1/{1} Pdep_rxns): \".format(Pdep_rxns[0].index, len(Pdep_rxns)) )\n", + " print('')\n", + " print(str(Pdep_rxns[0]))\n", " display(Pdep_rxns[0])\n", - " print 'Forward rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, Pdep_rxns[0].getRateCoefficient(T, P))\n", - " reverseRate = Pdep_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, reverseRate.getRateCoefficient(T, P))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, Pdep_rxns[0].get_rate_coefficient(T, P)))\n", + " reverse_rate = Pdep_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, reverse_rate.get_rate_coefficient(T, P)))\n", + " print('')\n", " \n", " current_node = next_node" ] @@ -589,39 +564,37 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### More detail for the H_Abstration and Disproportionation in last step of the pathway" + "### More detail for the H_Abstraction and Disproportionation in last step of the pathway" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ - "print ''\n", - "print 'The step you see currently is between the two species {0}'.format(step_pair)\n", - "print ''\n", - "print 'Positive flux in below means positive production of 1st node of the pair.'\n", - "print ''\n", - "print 'This step have {0} H_Abstration and Disproportionation in total.'.format(len(h_abs_rxns + disp_rxns))\n", + "print('')\n", + "print('The step you see currently is between the two species {0}'.format(step_pair))\n", + "print('')\n", + "print('Positive flux in below means positive production of 1st node of the pair.')\n", + "print('')\n", + "print('This step have {0} H_Abstration and Disproportionation in total.'.format(len(h_abs_rxns + disp_rxns)))\n", "\n", "flux_threshold = 1e-9\n", "\n", - "print ''\n", - "print 'TO avoid too much printout, the reactions shown below have fluxes above {0}.'.format(flux_threshold)\n", + "print('')\n", + "print('TO avoid too much printout, the reactions shown below have fluxes above {0}.'.format(flux_threshold))\n", "\n", "total_flux = 0\n", "rxn_flux_tups = []\n", "for rxn in h_abs_rxns + disp_rxns:\n", - " if showIntegratedFlux:\n", + " if show_integrated_flux:\n", " #integrate the flux using a trapezoidal rule\n", " flux = 0\n", " for t in range(timepoint_index):\n", " rxnROP0 = graph_edges_dict_simple[step_pair][rxn][t]\n", " rxnROP1 = graph_edges_dict_simple[step_pair][rxn][t+1]\n", - " flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (timeList[t+1] - timeList[t]) # in mole\n", + " flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (time_list[t+1] - time_list[t]) # in mole\n", " else:\n", " flux = graph_edges_dict_simple[step_pair][rxn][timepoint_index]\n", " rxn_flux_tups.append((rxn, flux))\n", @@ -633,19 +606,19 @@ " flux = tup[1]\n", " if flux > flux_threshold:\n", " total_flux += flux\n", - " print ''\n", - " print \"**********************************************************************************\"\n", - " if showIntegratedFlux:\n", - " print \"rxn#{0}: {1}: Integrated Flux = {2:.3E} mole \".format(rxn.index, str(rxn), flux) \n", + " print('')\n", + " print(\"**********************************************************************************\")\n", + " if show_integrated_flux:\n", + " print(\"rxn#{0}: {1}: Integrated Flux = {2:.3E} mole \".format(rxn.index, str(rxn), flux) )\n", " else:\n", - " print \"rxn#{0}: {1}: Flux = {2:.3E} mole/cm3/s\".format(rxn.index, str(rxn), flux)\n", + " print(\"rxn#{0}: {1}: Flux = {2:.3E} mole/cm3/s\".format(rxn.index, str(rxn), flux))\n", " display(rxn) \n", - "print \"***************************************\"\n", - "print ''\n", - "if showIntegratedFlux:\n", - " print \"TOTAL integrated flux from h_abs and disp is {0:.3E} mole.\".format(total_flux)\n", + "print(\"***************************************\")\n", + "print('')\n", + "if show_integrated_flux:\n", + " print(\"TOTAL integrated flux from h_abs and disp is {0:.3E} mole.\".format(total_flux))\n", "else:\n", - " print \"TOTAL flux from h_abs and disp is {0:.3E} mole/cm3/s.\".format(total_flux)" + " print(\"TOTAL flux from h_abs and disp is {0:.3E} mole/cm3/s.\".format(total_flux))" ] }, { @@ -668,9 +641,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "########## User Input ####################\n", @@ -681,22 +652,22 @@ "\n", "\n", "current_node = target\n", - "print ''\n", - "print '\\t Pathway Report '\n", - "print '======================================'\n", - "print 'The pathway you are intested in has {0} steps.'.format(depth)\n", - "print ''\n", - "if showIntegratedFlux:\n", + "print('')\n", + "print('\\t Pathway Report ')\n", + "print('======================================')\n", + "print('The pathway you are intested in has {0} steps.'.format(depth))\n", + "print('')\n", + "if show_integrated_flux:\n", " product_flux = 0\n", " for t in range(timepoint_index):\n", " productROP0 = spc_total_rop_dict[target][1][t]\n", " productROP1 = spc_total_rop_dict[target][1][t+1]\n", - " product_flux += 0.5 * (productROP1 * Vlist[t+1] + productROP0 * Vlist[t]) * (timeList[t+1] - timeList[t]) # in mole\n", - " print \"total integrated product flux for {0} is {1:.3E} mole.\".format(target, product_flux)\n", + " product_flux += 0.5 * (productROP1 * Vlist[t+1] + productROP0 * Vlist[t]) * (time_list[t+1] - time_list[t]) # in mole\n", + " print(\"total integrated product flux for {0} is {1:.3E} mole.\".format(target, product_flux))\n", "else:\n", - " print \"total product flux for {0} is {1:.3E} mole/cm3/s.\".format(target, spc_total_rop_dict[target][1][timepoint_index])\n", + " print(\"total product flux for {0} is {1:.3E} mole/cm3/s.\".format(target, spc_total_rop_dict[target][1][timepoint_index]))\n", "for step in range(depth):\n", - " print \"\\n\"\n", + " print(\"\\n\")\n", " prev_nodes = []\n", " for node1 in G:\n", " if current_node in G[node1]:\n", @@ -709,19 +680,19 @@ " prev_node = tup[0]\n", " step_flux = tup[1]\n", " \n", - " print \"\"\n", - " if showIntegratedFlux:\n", - " print \"Step{0} \\t\\t\\t\\t Integrated Flux (mole)\".format(step+1)\n", - " print '************************************************************************'\n", - " print \"{0} <-- {1} \\t\\t {2:.3E}\".\\\n", - " format(current_node, next_node, step_flux)\n", - " print '************************************************************************'\n", + " print(\"\")\n", + " if show_integrated_flux:\n", + " print(\"Step{0} \\t\\t\\t\\t Integrated Flux (mole)\".format(step+1))\n", + " print('************************************************************************')\n", + " print(\"{0} <-- {1} \\t\\t {2:.3E}\"\n", + " .format(current_node, next_node, step_flux))\n", + " print('************************************************************************')\n", " else:\n", - " print \"Step{0} \\t\\t\\t\\t Flux (mole/cm3/s)\".format(step+1)\n", - " print '****************************************************'\n", - " print \"{0} <-- {1} \\t\\t {2:.3E}\".\\\n", - " format(current_node, next_node, step_flux)\n", - " print '****************************************************'\n", + " print(\"Step{0} \\t\\t\\t\\t Flux (mole/cm3/s)\".format(step+1))\n", + " print('****************************************************')\n", + " print(\"{0} <-- {1} \\t\\t {2:.3E}\"\n", + " .format(current_node, next_node, step_flux))\n", + " print('****************************************************')\n", " \n", " step_pair = (prev_node, current_node)\n", " if step_pair not in graph_edges_dict_simple:\n", @@ -738,54 +709,54 @@ " elif rxn.family == \"Disproportionation\":\n", " disp_rxns.append(rxn)\n", " else:\n", - " print ''\n", - " print \"Example reaction: rxn#{0}\".format(rxn.index)\n", - " print ''\n", - " if showIntegratedFlux:\n", + " print('')\n", + " print(\"Example reaction: rxn#{0}\".format(rxn.index))\n", + " print('')\n", + " if show_integrated_flux:\n", " #integrate the flux using a trapezoidal rule\n", " integrated_flux = 0\n", " for t in range(timepoint_index):\n", " rxnROP0 = graph_edges_dict_simple[step_pair][rxn][t]\n", " rxnROP1 = graph_edges_dict_simple[step_pair][rxn][t+1]\n", - " integrated_flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (timeList[t+1] - timeList[t]) # in mole\n", - " print \"{0}: Integrated Flux = {1:.3E} mole\".format(str(rxn), integrated_flux)\n", + " integrated_flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (time_list[t+1] - time_list[t]) # in mole\n", + " print(\"{0}: Integrated Flux = {1:.3E} mole\".format(str(rxn), integrated_flux))\n", " else:\n", - " print \"{0}: Flux = {1:.3E} mole/cm3/s\".format(str(rxn), graph_edges_dict_simple[step_pair][rxn][timepoint_index])\n", + " print(\"{0}: Flux = {1:.3E} mole/cm3/s\".format(str(rxn), graph_edges_dict_simple[step_pair][rxn][timepoint_index]))\n", " display(rxn)\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, rxn.getRateCoefficient(T))\n", - " reverseRate = rxn.generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, rxn.get_rate_coefficient(T)))\n", + " reverse_rate = rxn.generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", " \n", " if len(h_abs_rxns) > 0:\n", - " print ''\n", - " print \"Example H_Abstraction: rxn#{0}(1/{1} H_Abs)\".format(h_abs_rxns[0].index, len(h_abs_rxns))\n", - " print ''\n", - " print str(h_abs_rxns[0])\n", + " print('')\n", + " print(\"Example H_Abstraction: rxn#{0}(1/{1} H_Abs)\".format(h_abs_rxns[0].index, len(h_abs_rxns)))\n", + " print('')\n", + " print(str(h_abs_rxns[0]))\n", " display(h_abs_rxns[0])\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, h_abs_rxns[0].getRateCoefficient(T))\n", - " reverseRate = h_abs_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, h_abs_rxns[0].get_rate_coefficient(T)))\n", + " reverse_rate = h_abs_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(disp_rxns) > 0: \n", - " print ''\n", - " print \"Example Disproportionation: rxn#{0}(1/{1} Disp)\".format(disp_rxns[0].index, len(disp_rxns))\n", - " print ''\n", - " print str(disp_rxns[0])\n", + " print('')\n", + " print(\"Example Disproportionation: rxn#{0}(1/{1} Disp)\".format(disp_rxns[0].index, len(disp_rxns)))\n", + " print('')\n", + " print(str(disp_rxns[0]))\n", " display(disp_rxns[0])\n", - " print 'Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, disp_rxns[0].getRateCoefficient(T))\n", - " reverseRate = disp_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverseRate.getRateCoefficient(T))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, disp_rxns[0].get_rate_coefficient(T)))\n", + " reverse_rate = disp_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K: {1:.2E} [cm3, mole, s]'.format(T, reverse_rate.get_rate_coefficient(T)))\n", + " print('')\n", " if len(Pdep_rxns) > 0: \n", - " print ''\n", - " print \"Example Pressure-dependent Rxn: rxn#{0} (1/{1} Pdep_rxns): \".format(Pdep_rxns[0].index, len(Pdep_rxns)) \n", - " print ''\n", - " print str(Pdep_rxns[0])\n", + " print('')\n", + " print(\"Example Pressure-dependent Rxn: rxn#{0} (1/{1} Pdep_rxns): \".format(Pdep_rxns[0].index, len(Pdep_rxns)) )\n", + " print('')\n", + " print(str(Pdep_rxns[0]))\n", " display(Pdep_rxns[0])\n", - " print 'Forward rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, Pdep_rxns[0].getRateCoefficient(T, P))\n", - " reverseRate = Pdep_rxns[0].generateReverseRateCoefficient()\n", - " print 'Reverse rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, reverseRate.getRateCoefficient(T, P))\n", - " print ''\n", + " print('Forward rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, Pdep_rxns[0].get_rate_coefficient(T, P)))\n", + " reverse_rate = Pdep_rxns[0].generate_reverse_rate_coefficient()\n", + " print('Reverse rate coefficient at {0} K and {1} Pa: {2:.2E} [cm3, mole, s]'.format(T, P, reverse_rate.get_rate_coefficient(T, P)))\n", + " print('')\n", " \n", " current_node = prev_node" ] @@ -800,33 +771,31 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ - "print ''\n", - "print 'The step you see currently is between the two species {0}'.format(step_pair)\n", - "print ''\n", - "print 'Positive flux in below means positive production of 1st node of the pair.'\n", - "print ''\n", - "print 'This step have {0} H_Abstration and Disproportionation in total.'.format(len(h_abs_rxns + disp_rxns))\n", + "print('')\n", + "print('The step you see currently is between the two species {0}'.format(step_pair))\n", + "print('')\n", + "print('Positive flux in below means positive production of 1st node of the pair.')\n", + "print('')\n", + "print('This step have {0} H_Abstration and Disproportionation in total.'.format(len(h_abs_rxns + disp_rxns)))\n", "\n", "flux_threshold = 1e-9\n", "\n", - "print ''\n", - "print 'TO avoid too much printout, the reactions shown below have fluxes above {0}.'.format(flux_threshold)\n", + "print('')\n", + "print('TO avoid too much printout, the reactions shown below have fluxes above {0}.'.format(flux_threshold))\n", "\n", "total_flux = 0\n", "rxn_flux_tups = []\n", "for rxn in h_abs_rxns + disp_rxns:\n", - " if showIntegratedFlux:\n", + " if show_integrated_flux:\n", " #integrate the flux using a trapezoidal rule\n", " flux = 0\n", " for t in range(timepoint_index):\n", " rxnROP0 = graph_edges_dict_simple[step_pair][rxn][t]\n", " rxnROP1 = graph_edges_dict_simple[step_pair][rxn][t+1]\n", - " flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (timeList[t+1] - timeList[t]) # in mole\n", + " flux += 0.5 * (rxnROP1 * Vlist[t+1] + rxnROP0 * Vlist[t]) * (time_list[t+1] - time_list[t]) # in mole\n", " else:\n", " flux = graph_edges_dict_simple[step_pair][rxn][timepoint_index]\n", " rxn_flux_tups.append((rxn, flux))\n", @@ -837,50 +806,48 @@ " flux = tup[1]\n", " if flux > flux_threshold:\n", " total_flux += flux\n", - " print ''\n", - " print \"**********************************************************************************\"\n", - " if showIntegratedFlux:\n", - " print \"rxn#{0}: {1}: Integrated Flux = {2:.3E} mole \".format(rxn.index, str(rxn), flux) \n", + " print('')\n", + " print(\"**********************************************************************************\")\n", + " if show_integrated_flux:\n", + " print(\"rxn#{0}: {1}: Integrated Flux = {2:.3E} mole \".format(rxn.index, str(rxn), flux) )\n", " else:\n", - " print \"rxn#{0}: {1}: Flux = {2:.3E} mole/cm3/s\".format(rxn.index, str(rxn), flux)\n", + " print(\"rxn#{0}: {1}: Flux = {2:.3E} mole/cm3/s\".format(rxn.index, str(rxn), flux))\n", " display(rxn) \n", - "print \"***************************************\"\n", - "print ''\n", - "if showIntegratedFlux:\n", - " print \"TOTAL integrated flux from h_abs and disp is {0:.3E} mole.\".format(total_flux)\n", + "print(\"***************************************\")\n", + "print('')\n", + "if show_integrated_flux:\n", + " print(\"TOTAL integrated flux from h_abs and disp is {0:.3E} mole.\".format(total_flux))\n", "else:\n", - " print \"TOTAL flux from h_abs and disp is {0:.3E} mole/cm3/s.\".format(total_flux)\n" + " print(\"TOTAL flux from h_abs and disp is {0:.3E} mole/cm3/s.\".format(total_flux))\n" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/ipython/regressionTest.ipynb b/ipython/regressionTest.ipynb index 01cd847f6d..b04c798c07 100644 --- a/ipython/regressionTest.ipynb +++ b/ipython/regressionTest.ipynb @@ -17,9 +17,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from rmgpy.tools.observablesRegression import ObservablesTestCase\n", @@ -30,100 +28,99 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Set up reactor conditions \n", - "ethane=Species().fromSMILES('CC')\n", - "argon=Species().fromSMILES('[Ar]')\n", - "methyl=Species().fromSMILES('[CH3]')\n", + "ethane = Species().from_smiles('CC')\n", + "argon = Species().from_smiles('[Ar]')\n", + "methyl = Species().from_smiles('[CH3]')\n", "\n", - "reactorTypeList = ['IdealGasReactor']\n", - "molFracList=[{ethane: 0.05, argon: 0.95}]\n", - "Plist=([3],'atm')\n", - "Tlist=([1500,1750,2000],'K')\n", - "terminationTime = ([5e-5],'s')" + "reactor_type_list = ['IdealGasReactor']\n", + "mol_frac_list = [{ethane: 0.05, argon: 0.95}]\n", + "Plist = ([3],'atm')\n", + "Tlist = ([1500,1750,2000],'K')\n", + "termination_time = ([5e-5],'s')" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Set the observables that we care about\n", - "observables = {'species':[ethane, methyl]}" + "observables = {'species': [ethane, methyl]}" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Create observables test case and compare the old and new models\n", "\n", "minimal = ObservablesTestCase(title = 'Ethane Pyrolysis',\n", - " oldDir = 'data/regression/old',\n", - " newDir = 'data/regression/new',\n", + " old_dir = 'data/regression/old',\n", + " new_dir = 'data/regression/new',\n", " observables = observables,\n", " #ck2cti = False, # Set to false means we use RMG's internal conversion to Cantera objects\n", " # rather than using cantera's ck2cti parser on the chemkin file.\n", - " )\n", + " )\n", "\n", - "minimal.generateConditions(reactorTypeList = reactorTypeList,\n", - " reactionTimeList = terminationTime,\n", - " molFracList = molFracList,\n", - " Tlist = Tlist,\n", - " Plist = Plist)\n", + "minimal.generate_conditions(reactor_type_list = reactor_type_list,\n", + " reaction_time_list = termination_time,\n", + " mol_frac_list = mol_frac_list,\n", + " Tlist = Tlist,\n", + " Plist = Plist)\n", "\n", - "variablesFailed = minimal.compare(tol=0.05, plot = True)" + "variables_failed = minimal.compare(tol=0.05, plot=True)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Display the plots for the conditions\n", - "observableSpecies = observables['species']\n", + "observable_species = observables['species']\n", "for i in range(len(minimal.conditions)):\n", " for j in range(len(observables['species'])):\n", - " conditionIndex = i+1\n", - " speciesLabel = observableSpecies[j].molecule[0].toSMILES()\n", - " print 'Plotting condition {0} comparison for species {1}'.format(conditionIndex, speciesLabel)\n", - " display(Image(filename=\"condition_{0}_species_{1}.png\".format(conditionIndex, speciesLabel)))" + " condition_index = i+1\n", + " species_label = observable_species[j].smiles\n", + " print('Plotting condition {0} comparison for species {1}'.format(condition_index, species_label))\n", + " display(Image(filename=\"condition_{0}_species_{1}.png\".format(condition_index, species_label)))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python [conda env:rmg_env]", "language": "python", - "name": "python2" + "name": "conda-env-rmg_env-py" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } From 355ada2937556c46c0f69472b00b2d703b51113f Mon Sep 17 00:00:00 2001 From: Max Liu Date: Mon, 30 Sep 2019 12:48:49 -0400 Subject: [PATCH 7/9] Standardize ipython notebook filenames --- ...ivityComparison.ipynb => cantera_sensitivity_comparison.ipynb} | 0 ipython/{canteraSimulation.ipynb => cantera_simulation.ipynb} | 0 ...pynb => find_parameter_sources_and_assign_uncertainties.ipynb} | 0 ipython/{generateReactions.ipynb => generate_reactions.ipynb} | 0 ipython/{localUncertainty.ipynb => local_uncertainty.ipynb} | 0 ipython/{regressionTest.ipynb => regression_test.ipynb} | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename ipython/{canteraSensitivityComparison.ipynb => cantera_sensitivity_comparison.ipynb} (100%) rename ipython/{canteraSimulation.ipynb => cantera_simulation.ipynb} (100%) rename ipython/{findParameterSourcesAndAssignUncertainies.ipynb => find_parameter_sources_and_assign_uncertainties.ipynb} (100%) rename ipython/{generateReactions.ipynb => generate_reactions.ipynb} (100%) rename ipython/{localUncertainty.ipynb => local_uncertainty.ipynb} (100%) rename ipython/{regressionTest.ipynb => regression_test.ipynb} (100%) diff --git a/ipython/canteraSensitivityComparison.ipynb b/ipython/cantera_sensitivity_comparison.ipynb similarity index 100% rename from ipython/canteraSensitivityComparison.ipynb rename to ipython/cantera_sensitivity_comparison.ipynb diff --git a/ipython/canteraSimulation.ipynb b/ipython/cantera_simulation.ipynb similarity index 100% rename from ipython/canteraSimulation.ipynb rename to ipython/cantera_simulation.ipynb diff --git a/ipython/findParameterSourcesAndAssignUncertainies.ipynb b/ipython/find_parameter_sources_and_assign_uncertainties.ipynb similarity index 100% rename from ipython/findParameterSourcesAndAssignUncertainies.ipynb rename to ipython/find_parameter_sources_and_assign_uncertainties.ipynb diff --git a/ipython/generateReactions.ipynb b/ipython/generate_reactions.ipynb similarity index 100% rename from ipython/generateReactions.ipynb rename to ipython/generate_reactions.ipynb diff --git a/ipython/localUncertainty.ipynb b/ipython/local_uncertainty.ipynb similarity index 100% rename from ipython/localUncertainty.ipynb rename to ipython/local_uncertainty.ipynb diff --git a/ipython/regressionTest.ipynb b/ipython/regression_test.ipynb similarity index 100% rename from ipython/regressionTest.ipynb rename to ipython/regression_test.ipynb From 216340f3eb5b9e40091dd8e4cd9a51675038de9f Mon Sep 17 00:00:00 2001 From: Max Liu Date: Thu, 10 Oct 2019 15:51:50 -0400 Subject: [PATCH 8/9] Fix incorrect argument in call to RDKit Was accidentally renamed --- rmgpy/molecule/translator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rmgpy/molecule/translator.py b/rmgpy/molecule/translator.py index c11a1c62b2..66eed92ebe 100644 --- a/rmgpy/molecule/translator.py +++ b/rmgpy/molecule/translator.py @@ -332,7 +332,7 @@ def _rdkit_translator(input_object, identifier_type, mol=None): if isinstance(input_object, str): # We are converting from a string identifier to a molecule if identifier_type == 'inchi': - rdkitmol = Chem.inchi.MolFromInchi(input_object, remove_h=False) + rdkitmol = Chem.inchi.MolFromInchi(input_object, removeHs=False) elif identifier_type == 'sma': rdkitmol = Chem.MolFromSmarts(input_object) elif identifier_type == 'smi': From 8a057a4ef218ae89827d302375fc86709b2521b8 Mon Sep 17 00:00:00 2001 From: Max Liu Date: Fri, 11 Oct 2019 17:50:25 -0400 Subject: [PATCH 9/9] Fix get_labeled_reactants_and_products for new families The R_Recombination family was changed for auto tree generation There is only a single template now, and duplicate * labels This copies template handling from __generate_reactions A unit test is also added --- rmgpy/data/kinetics/family.py | 31 +++++++++++---- rmgpy/data/kinetics/familyTest.py | 66 +++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 8 deletions(-) diff --git a/rmgpy/data/kinetics/family.py b/rmgpy/data/kinetics/family.py index eb2439bdc0..87f197251e 100644 --- a/rmgpy/data/kinetics/family.py +++ b/rmgpy/data/kinetics/family.py @@ -2619,9 +2619,24 @@ def get_labeled_reactants_and_products(self, reactants, products): template = self.forward_template reactants0 = [reactant.copy(deep=True) for reactant in reactants] + if self.auto_generated and self.reactant_num != len(reactants): + return None, None + + if len(reactants) > len(template.reactants): + # if the family has one template and is bimolecular split template into multiple reactants + try: + grps = template.reactants[0].item.split() + template_reactants = [] + for grp in grps: + template_reactants.append(grp) + except AttributeError: + template_reactants = [x.item for x in template.reactants] + else: + template_reactants = [x.item for x in template.reactants] + if len(reactants0) == 1: molecule = reactants0[0] - mappings = self._match_reactant_to_template(molecule, template.reactants[0].item) + mappings = self._match_reactant_to_template(molecule, template_reactants[0]) mappings = [[map0] for map0 in mappings] num_mappings = len(mappings) reactant_structures = [molecule] @@ -2629,12 +2644,12 @@ def get_labeled_reactants_and_products(self, reactants, products): molecule_a = reactants0[0] molecule_b = reactants0[1] # get mappings in forward direction - mappings_a = self._match_reactant_to_template(molecule_a, template.reactants[0].item) - mappings_b = self._match_reactant_to_template(molecule_b, template.reactants[1].item) + mappings_a = self._match_reactant_to_template(molecule_a, template_reactants[0]) + mappings_b = self._match_reactant_to_template(molecule_b, template_reactants[1]) mappings = list(itertools.product(mappings_a, mappings_b)) # get mappings in the reverse direction - mappings_a = self._match_reactant_to_template(molecule_a, template.reactants[1].item) - mappings_b = self._match_reactant_to_template(molecule_b, template.reactants[0].item) + mappings_a = self._match_reactant_to_template(molecule_a, template_reactants[1]) + mappings_b = self._match_reactant_to_template(molecule_b, template_reactants[0]) mappings.extend(list(itertools.product(mappings_a, mappings_b))) reactant_structures = [molecule_a, molecule_b] @@ -2646,9 +2661,9 @@ def get_labeled_reactants_and_products(self, reactants, products): # Get mappings for all permutations of reactants mappings = [] for order in itertools.permutations(range(3), 3): - mappings_a = self._match_reactant_to_template(molecule_a, template.reactants[order[0]].item) - mappings_b = self._match_reactant_to_template(molecule_b, template.reactants[order[1]].item) - mappings_c = self._match_reactant_to_template(molecule_c, template.reactants[order[2]].item) + mappings_a = self._match_reactant_to_template(molecule_a, template_reactants[order[0]]) + mappings_b = self._match_reactant_to_template(molecule_b, template_reactants[order[1]]) + mappings_c = self._match_reactant_to_template(molecule_c, template_reactants[order[2]]) mappings.extend(list(itertools.product(mappings_a, mappings_b, mappings_c))) reactant_structures = [molecule_a, molecule_b, molecule_c] diff --git a/rmgpy/data/kinetics/familyTest.py b/rmgpy/data/kinetics/familyTest.py index eab3ae7964..9f39fdeaa2 100644 --- a/rmgpy/data/kinetics/familyTest.py +++ b/rmgpy/data/kinetics/familyTest.py @@ -916,6 +916,72 @@ def test_add_atom_labels_for_reaction(self): self.assertTrue(expected_products[i].is_isomorphic(product.molecule[0], mapping)) + def test_add_atom_labels_for_reaction_r_recombination(self): + """Test that we can add atom labels to an existing R_Recombination reaction""" + reactants = [Species().from_smiles('C[CH2]'), Species().from_smiles('[CH3]')] + products = [Species().from_smiles('CCC')] + + reaction = TemplateReaction(reactants=reactants, products=products) + + self.database.kinetics.families['R_Recombination'].add_atom_labels_for_reaction(reaction) + + expected_reactants = [ + Molecule().from_adjacency_list(""" +multiplicity 2 +1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} +2 * C u1 p0 c0 {1,S} {6,S} {7,S} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} +5 H u0 p0 c0 {1,S} +6 H u0 p0 c0 {2,S} +7 H u0 p0 c0 {2,S} +"""), + Molecule().from_adjacency_list(""" +multiplicity 2 +1 * C u1 p0 c0 {2,S} {3,S} {4,S} +2 H u0 p0 c0 {1,S} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} +""")] + + expected_products = [ + Molecule().from_adjacency_list(""" +1 * C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} +2 * C u0 p0 c0 {1,S} {6,S} {7,S} {8,S} +3 C u0 p0 c0 {1,S} {9,S} {10,S} {11,S} +4 H u0 p0 c0 {1,S} +5 H u0 p0 c0 {1,S} +6 H u0 p0 c0 {2,S} +7 H u0 p0 c0 {2,S} +8 H u0 p0 c0 {2,S} +9 H u0 p0 c0 {3,S} +10 H u0 p0 c0 {3,S} +11 H u0 p0 c0 {3,S} +""")] + + for i, reactant in enumerate(reaction.reactants): + mapping = {} + for label, atom in expected_reactants[i].get_all_labeled_atoms().items(): + mapping[atom] = reactant.molecule[0].get_labeled_atoms(label)[0] + + self.assertTrue(expected_reactants[i].is_isomorphic(reactant.molecule[0], mapping)) + + for i, product in enumerate(reaction.products): + # There are two identical labels in the product, so we need to check both mappings + # Only one of the mappings will result in isomorphic structures though + atoms_a = expected_products[i].get_labeled_atoms('*') + atoms_b = product.molecule[0].get_labeled_atoms('*') + mapping1 = {atoms_a[0]: atoms_b[0], atoms_a[1]: atoms_b[1]} + mapping2 = {atoms_a[0]: atoms_b[1], atoms_a[1]: atoms_b[0]} + + results = [ + expected_products[i].is_isomorphic(product.molecule[0], mapping1), + expected_products[i].is_isomorphic(product.molecule[0], mapping2) + ] + + self.assertTrue(any(results)) + self.assertFalse(all(results)) + def test_irreversible_reaction(self): """Test that the Singlet_Val6_to_triplet and 1,2-Birad_to_alkene families generate irreversible reactions."""