From 8dcc356a99b6deaaa29461418e115d05962b6eaf Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Wed, 20 May 2026 21:55:53 -0400 Subject: [PATCH 01/25] create new family Surface_Monodentate_to_vdW_Bidentate --- .../groups.py | 60 ++ .../rules.py | 35 + .../template.cdx | Bin 0 -> 4062 bytes .../template.eps | 763 ++++++++++++++++++ .../template.pdf | Bin 0 -> 36821 bytes .../training/dictionary.txt | 0 .../training/reactions.py | 9 + 7 files changed, 867 insertions(+) create mode 100644 input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/groups.py create mode 100644 input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/rules.py create mode 100644 input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.cdx create mode 100644 input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.eps create mode 100644 input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.pdf create mode 100644 input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/dictionary.txt create mode 100644 input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/reactions.py diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/groups.py b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/groups.py new file mode 100644 index 0000000000..5168540a9b --- /dev/null +++ b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/groups.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Monodentate_to_vdW_Bidentate" +shortDesc = u"" +longDesc = u""" +If a monodentate adsorbate has an internal double or triple bond, then it can fall over onto a vacant site, creating a bidentate. + + *1-*2=*3 *1=*2-*3 + | ----> : | +~*4~ + ~*5~~ ~*4~~~~*5~~ + +The rate, which should be in mol/m2/s, +will be given by k * (mol/m2) * (mol/m2) +so k should be in (m2/mol/s) +""" + +template(reactants=["Monodentate", "VacantSite"], products=["Bidentate"], ownReverse=False) + +reverse = "Surface_vdW_Bidentate_to_Monodentate" + +recipe(actions=[ + ['FORM_BOND', '*3', 1, '*5'], + ['CHANGE_BOND', '*2', -1, '*3'], + ['CHANGE_BOND', '*1', 1, '*2'], + ['CHANGE_BOND', '*1', -1, '*4'], +]) + +entry( + index = 1, + label = "Monodentate", + group = +""" +1 *1 O u0 p2 {2,S} {4,S} +2 *2 C u0 p0 {1,S} {3,D} +3 *3 O u0 p2 {2,D} +4 *4 Xo u0 {1,S} +""", + kinetics = None, +) + +entry( + index = 2, + label="VacantSite", + group = +""" +1 *5 Xv u0 +""", + kinetics = None, +) + + +tree( +""" +L1: Monodentate + +L1: VacantSite +""" +) + diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/rules.py b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/rules.py new file mode 100644 index 0000000000..85bb72f2f5 --- /dev/null +++ b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/rules.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Monodentate_to_Bidentate/rules" +shortDesc = u"" +longDesc = u""" +""" +entry( + index = 1, + label = "Monodentate;VacantSite", + kinetics = SurfaceArrheniusBEP( + A = (7.15e20, 'cm^2/(mol*s)'), + n = 0.0, + alpha = 0, + E0 = (3, 'kJ/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + rank = 0, + shortDesc = u"""Default""", + longDesc = u""" +Pre-exponential value and E0 are from R6b in Table 2 of "Automatic mechanism generation involving +kinetics of surface reactions with bidentate adsorbates" +Authors: B. Kreitz, K. Blöndal, K. Badger, R. H. West and C. F. Goldsmith +doi:10.1039/d3dd00184a + +The reaction R6b is + *CHCH2 + * -> *CH*CH2 + +Other monodentate to bidentate reactions in this publication were without reaction barriers. +""" +) + + + diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.cdx b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.cdx new file mode 100644 index 0000000000000000000000000000000000000000..f9f5b9b74fba22886e06fcefdbf635dc8672d16a GIT binary patch literal 4062 zcmcInYiv|i5T0}QZujoq?L$EXALJ^;7AU0;N@Xz(^dZGig%%KjKyTYiyJa6`cl)G} z8zG8`h<}if@W&7X{=!5NsiGnfDSwI-F*bytF{S}3CTK!@q|VIV-R-RiKUQwDbIzHW zGiSatbLO0`X{)R%EGjIN9g=|5XHwSzlaW@o8o{cF-lY|n6ciQ|6%-XIkcIr15o{0W zF{7ZVxm%WUVBv7R7-~BRzjyYDp<^9FxD_(OpTzy`PJrohrXoNnE+jq~$s#0BO}*!+ z_W}`b1`e}{WFmnI;#Cr>0H8yr09h8gIT(~AW1$h}!aW)mqU-W()(`A9sHl7m)f+J3@;OM`?IRUPHv zfieD&iQm{*oF-cPh`97KO=^jPn2B~I#Fmrmge4Kb9snsPHyc*@gGN+)(dg3Z!a+R* zN;gFapa%c&lWt3uW20lY98Rg;(c;W={6#x5UP|skGyV{kpuRw>*vDS#lVF;7n}>^& zOuGiMKT^r`F*T7M{w6)3Js*w)I|8~-`&gy)sP5LAVp^>pjrz3XtXUfl7)_`V(Ox$E zEv+%1_KE63&EULVpLRl>LX!eU&IOb=}tc>_$?9eJqP@i_v&Rh{O(B|hVg)ynQCLHi-UodZ}zp*i@Rfmj7OOH?c zQgx%=@-VLJ(@v=wIH;}jXX{UL1jiJZ1@Mhi%pLRy26A)Wb zzr?2v@Rprts(L9^JYL*aHxaKF4+iATm?g~XxOH@xQr`tUmrqDjI8SH7RI8namUA$J z1!Oao%n{_!%suOyMC>IHk>-Gi4bBxFOoJkDnJ3ZmB#_}oVufohsFyE*+Cjm3g@753 zHYKDAXh=se!=5q|bM9ul5XyMYJf@{c9k76De10MJw>XNB{sARO^My$Z0 zyf{vtm;ZxJUIMZ?gmRD+Sp9dGP&SV6y!k+9+YLGJ3<{Hlut^W)#x%@BBhnr*Vp^=# zAJqbSqY)^;5TIs_3{ZxpO4Q0SpRWuPxon=?>b`P~Lq)ERcZC*HxfFrqB0Em1lHi)k zC)o#!vDm4|h?hMTO4qvYA>$Px!@OkytMc{=xnh7FfzZ4O7qAt#418m>&n>q9$KjOVx~GRP~3dD9BU zo!ZsOJ7d55D*LejWOHy_FdUZ-F~69D;YlwTw5zFL&{Y+!JIGtI@5I)mD?6thwjxjW z!hZ+DoeYK>=1&NQT}H5F^M(a$b2tvGlvk3|gGKj13f5Y+L9|sKW>~bt*N+|q z;$43_4ol`78xxpaW2r=Q*b|KsH=bxR6xG=i%`S^$8?|9O#UU$WY)X3A@GMQhHhlF& z65C^s_FLG_T8rH~WJ(g20>u+x*=2E919X>RStxyXgE+otm|?Y~2Z)M&Dp>D5sf*Xo zUSvSk4QoX1lp!D<9S151p8FI8PZE#^N+tlZ%LtIu^dKOriIpH{;BA0Wb7D&e&O;9_ zg@~I7DW9{HH`|mc)OS%nZz;F3GAWT|-oOkAS4>SIPaNhD>L(tKg%?W10>?IfIFfhU zK{hX;oVNa*H#$Yb!bN;T_3)mgS&`|{kqQ7Ud*OJAAXhF|w~K@;*LIYPc=^9~M%fR# z{h-)oxGc!#Hx{hkO`W2?J;JcIF)TH`yrS1h3ReGMuQ>fn8^c=naJz_>ZxO`fr}_VW z(a7ev7OYv1uM;iac(nQ$R+_bq-cTu62lj6iUmq!FSo9yq(nsbC;w{}BkJbaJZI^A> zUg41KU~FmDHhNv!v6WS=Ok(TmTWMk2z?rDrrxe)hmpv2hGF%p9^E(Sx=iK#T^6jk* zYbV1>^Op74VEz35Ch^nkcqYDfbCuY&txXW`w-El5_y8*0_Xvw>$g5n3C@-lFaSSKa zp=6yKwx;ajDWpnMXn)2REvI?K(t8b0>U0FTEYzt7{LLCZh4f&fzojGG5!GtuR)j;% z1yo+Cgpnn3Lg3=~v_?89ZWTr5kCwqVd0{FI|6bVg5+BCqO;pG-N6DI30eVHzvsUuT Nz{M0>dgiCTe*mjzq)-3= literal 0 HcmV?d00001 diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.eps b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.eps new file mode 100644 index 0000000000..496a95c73c --- /dev/null +++ b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.eps @@ -0,0 +1,763 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: ChemDraw +%%CreationDate: 11/13/24 +%%BoundingBox: 0 0 222 46 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%EndComments +%%BeginProlog +/ellipse {7 dict begin + /endangle exch def + /startangle exch def + /yradius exch def + /xradius exch def + /yC exch def + /xC exch def + /savematrix matrix currentmatrix def % save current transformation matrix + xC yC translate % translate to center of ellipse + xradius yradius scale % scale by radius values + 0 0 1 startangle endangle arc % add arc to path + savematrix setmatrix % restore the transformation matrix +end +} def + +/Encoding1252 +[ + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /space + /exclam + /quotedbl + /numbersign + /dollar + /percent + /ampersand + /quotesingle + /parenleft + /parenright + /asterisk + /plus + /comma + /hyphen + /period + /slash + /zero + /one + /two + /three + /four + /five + /six + /seven + /eight + /nine + /colon + /semicolon + /less + /equal + /greater + /question + /at + /A + /B + /C + /D + /E + /F + /G + /H + /I + /J + /K + /L + /M + /N + /O + /P + /Q + /R + /S + /T + /U + /V + /W + /X + /Y + /Z + /bracketleft + /backslash + /bracketright + /asciicircum + /underscore + /grave + /a + /b + /c + /d + /e + /f + /g + /h + /i + /j + /k + /l + /m + /n + /o + /p + /q + /r + /s + /t + /u + /v + /w + /x + /y + /z + /braceleft + /bar + /braceright + /asciitilde + /.notdef + /.notdef + /.notdef + /quotesinglbase + /florin + /quotedblbase + /ellipsis + /dagger + /daggerdbl + /circumflex + /perthousand + /Scaron + /guilsinglleft + /OE + /.notdef + /.notdef + /.notdef + /.notdef + /quoteleft + /quoteright + /quotedblleft + /quotedblright + /bullet + /endash + /emdash + /tilde + /trademark + /scaron + /guilsinglright + /oe + /dotlessi + /.notdef + /Ydieresis + /.notdef + /exclamdown + /cent + /sterling + /currency + /yen + /brokenbar + /section + /dieresis + /copyright + /ordfeminine + /guillemotleft + /logicalnot + /guilsinglright + /registered + /macron + /ring + /plusminus + /twosuperior + /threesuperior + /acute + /mu + /paragraph + /periodcentered + /cedilla + /onesuperior + /ordmasculine + /guillemotright + /onequarter + /onehalf + /threequarters + /questiondown + /Agrave + /Aacute + /Acircumflex + /Atilde + /Adieresis + /Aring + /AE + /Ccedilla + /Egrave + /Eacute + /Ecircumflex + /Edieresis + /Igrave + /Iacute + /Icircumflex + /Idieresis + /Eth + /Ntilde + /Ograve + /Oacute + /Ocircumflex + /Otilde + /Odieresis + /multiply + /Oslash + /Ugrave + /Uacute + /Ucircumflex + /Udieresis + /Yacute + /Thorn + /germandbls + /agrave + /aacute + /acircumflex + /atilde + /adieresis + /aring + /ae + /ccedilla + /egrave + /eacute + /ecircumflex + /edieresis + /igrave + /iacute + /icircumflex + /idieresis + /eth + /ntilde + /ograve + /oacute + /ocircumflex + /otilde + /odieresis + /divide + /oslash + /ugrave + /uacute + /ucircumflex + /udieresis + /yacute + /thorn + /ydieresis +] +def + + /reencode1252 + { + findfont dup + length dict copy + dup /Encoding Encoding1252 put + definefont + } bind def +%%EndProlog +[1 0 0 -1 0 46] concat +[1 0 0 1 -154 -337] concat +[0.05 0 0 0.05 0 0] concat +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +5862.21 7177.5 moveto +5156.21 7177.5 lineto +5156.21 7157.5 lineto +5862.21 7157.5 lineto +closepath +fill +grestore +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +5300.21 7217.5 moveto +6006.21 7217.5 lineto +6006.21 7237.5 lineto +5300.21 7237.5 lineto +closepath +fill +grestore +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +0 0 0 setrgbcolor +1 setlinewidth +[] 0 setdash +newpath +6036.21 7177.5 moveto +6036.21 7177.5 5861.21 7177.5 5861.21 7177.5 curveto +5861.21 7144.75 5836.21 7115.5 5836.21 7115.5 curveto +5836.21 7115.5 6036.21 7177.5 6036.21 7177.5 curveto +6036.21 7177.5 6036.21 7177.5 6036.21 7177.5 curveto +fill +stroke +grestore +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +0 0 0 setrgbcolor +1 setlinewidth +[] 0 setdash +newpath +5126.21 7217.5 moveto +5126.21 7217.5 5326.21 7279.5 5326.21 7279.5 curveto +5326.21 7279.5 5301.21 7230.25 5301.21 7217.5 curveto +5301.21 7217.5 5126.21 7217.5 5126.21 7217.5 curveto +5126.21 7217.5 5126.21 7217.5 5126.21 7217.5 curveto +fill +stroke +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 /Helvetica reencode1252 +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 3126.44 7519.79] concat +1 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(4) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 3209.86 7591.42] concat +1 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(X) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 4497.22 7519.79] concat +1 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(5) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 4580.65 7591.42] concat +1 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(X) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 3117.41 6951.16] concat +1 0 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(1) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 3200.83 7022.8] concat +1 0 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(R) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 3717.41 6951.16] concat +0 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(2) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 3800.83 7022.8] concat +0 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(R) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +240 scalefont +setfont +newpath +[1 0 -0 1 4025.16 7560.96] concat +0 0 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(+) show +grestore +grestore +gsave +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +3269 7080.03 moveto +3289 7080.15 lineto +3287.22 7390.56 lineto +3267.22 7390.45 lineto +3269 7080.03 lineto +closepath +fill +grestore +grestore +gsave +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +3382.74 6979.3 moveto +3382.74 6959.3 lineto +3681.8 6959.3 lineto +3681.8 6979.3 lineto +3382.74 6979.3 lineto +closepath +fill +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 4215.43 6972.59] concat +0 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(3) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 4298.85 7044.23] concat +0 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(R) show +grestore +grestore +gsave +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +3982.93 6950.51 moveto +3983.07 6930.51 lineto +4182 6931.84 lineto +4181.87 6951.84 lineto +3982.93 6950.51 lineto +closepath +fill +grestore +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +3982.54 7009.48 moveto +3982.67 6989.48 lineto +4181.61 6990.81 lineto +4181.47 7010.81 lineto +3982.54 7009.48 lineto +closepath +fill +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 6154.36 7490.75] concat +1 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(4) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 6237.78 7562.38] concat +1 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(X) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 7258.65 7487.46] concat +1 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(5) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 7342.08 7559.09] concat +1 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(X) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 6145.33 6922.12] concat +1 0 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(1) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 6228.75 6993.75] concat +1 0 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(R) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 6745.33 6922.12] concat +0 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(2) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 6828.75 6993.75] concat +0 0 1 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(R) show +grestore +grestore +gsave +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +6410.66 6914.26 moveto +6410.66 6894.26 lineto +6709.72 6894.26 lineto +6709.72 6914.26 lineto +6410.66 6914.26 lineto +closepath +fill +grestore +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +6410.66 6986.26 moveto +6410.66 6966.26 lineto +6709.72 6966.26 lineto +6709.72 6986.26 lineto +6410.66 6986.26 lineto +closepath +fill +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +150 scalefont +setfont +newpath +[1 0 -0 1 7243.35 6943.55] concat +0 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(3) show +grestore +grestore +gsave +[1 0 0 1 0 0] concat +/Helvetica-1252 findfont +200 scalefont +setfont +newpath +[1 0 -0 1 7326.77 7015.18] concat +0 0.501961 0 setrgbcolor +gsave +[1 0 0 -1 0 0] concat +0 0 moveto +(R) show +grestore +grestore +gsave +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +7010.65 6950.95 moveto +7010.79 6930.95 lineto +7209.72 6932.28 lineto +7209.59 6952.28 lineto +7010.65 6950.95 lineto +closepath +fill +grestore +grestore +gsave +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +24 setlinewidth +[27] 0 setdash +newpath +6303.68 7361.46 moveto +6301.77 7051.04 lineto +stroke +grestore +grestore +gsave +gsave +[1 0 0 1 0 0] concat +0 0 0 setrgbcolor +newpath +7417.77 7358.38 moveto +7397.77 7358.49 lineto +7396.19 7072.53 lineto +7416.19 7072.42 lineto +7417.77 7358.38 lineto +closepath +fill +grestore +grestore +%%Trailer +showpage diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.pdf b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.pdf new file mode 100644 index 0000000000000000000000000000000000000000..481302dd0ff2195877f9b6a8467e5d7747867ec5 GIT binary patch literal 36821 zcmb@u2UJttw!du!0Rcsdf)r7tgY-_MOHo*WjTU)UR@N2LLiHZvf@N2RN2=Xhj2nmWk5aWMx(g8f_ z5D^sOf5c+MA}lPyA|NbmA}dR7?Pzs649oxgBNq_;=NyXGmQGgITIS9UE+;c8IK6ap zaCBi2=GStzwz9Q!b#gwLPF9v*+4iNYwKKo+OLJH2zb@fdRWy=T6crbLpdcckEH5D_ zCm<>(Bq6MzEGD5KAtoXqCMYK-D=jLfASxy*ASfdEKwMZ(SWZGtKtfqTSyWCyL`?pH zkbtZSzpA5^wWra^#svgV8!wz#Bu>_+!>?iO2y(Sy5fMCHjQj6h3iInYIk~b32>cGv zJxL9Vpddfc>yEP^ZoC;NACb+$HlASbn%w6L(c_WZfUbLUG`SN$Kp zEn`x=O-$9j8qkU$zN!&^RY>mZ)$m8H;C5c{`3qOil_7}7PjmO@`afB8aW!{#^>ns= zLH>Z8jZH~Y`5$>D7d&0dpBwg{vcw`Tc5?5;PHx~|+YuGu*JTkB|8FaN{`|T5^XD_5 zb8ii4h=9#M&c)2zJfyV@upoNxO_af>fBDKwGLMMQohLdsdx4nY ze=hZRZvL$2v9+tYmAR|=Nls1^s$~wc)-boQe(Az;dIJ7(xUh)-wtpv4;UxH_6X>7E zN8t3zKcgu)Il5Xqy1Ja4u-{iGI6J+Pck(nkJ+XpIII7flO0T~~*H&2wsuy?x6A>h}aVu13I^Z~y)WE&ky$FLPcO7XKeB&lvKGDmpR= z{*SqzR5{(f6eb<-{UMK^2$QQ`A6d2K2#@%_`n>rq zYp!7!tL=DE6<3(J;#ldh`19-OHc~f-(&tHK_4LgfKLtL|1ap3u*izwp<|;ddP%0F! zIDS!L*7oT}4Ik*P+o#MYIu~qT_qLB#N$TuB{g|Kiw)kb~`|mRq%eybnGjb=7%sBPv+dv38Bt?sU7DNFEUU! zFZfh5OOWxr3!kP=%YrDn2xq5izG&?;|OlQ zqKhW_!fJXX`WPf`LEv#Ro!jf7o73pPtExbzGPyeEVfIaqBGD?)c^Jhncf1B3F|FpM zD-mf#h;%wRlhO^<{{P`jo*tP0{Tcbklkwl4itzZyPQM;peZPsPk$iEpJBE7Cjqw5X z&C>6N%tTkED%HzAOB7zzUqfxir&9iUJ;wHs_21^+1F3`ECU>i4w$we@!~% z@Yn15>h&g#XN7YC0}`Y@2X)K&_E}6>bNg7pjlST_dU~SEHlyw#^1n<8a(Znaf&v-N zz0_1-8YTDGTg?77T0dPTo6l)Z*BKfN9Mti6*);M?_k{&q`-K)M4_oA|$#)X`mo3bM zyplNLZd4nmEXyriiOm)l{ie3|A;PWP3MX`v*dD$|e`xc*p*ShF_IO#*9$i zwaWB%2G(p~;Dc@3LSn?~G##fEm;UOvIA@C7n(Ms+&AP@!G6{x~gRMzdxND&e4>RO4 zFteBJuN!NWXDo;~ysbq?l^Wzk!sSi6+g2EF<=rIjb}-mcboO)tzKWFgvq^YuNOr`5G{LNiJb^(MvC1Y?V= zH(cJIWOGFp84Wx`SGj3}^7G?984A4^COpU`eZoU&(86N3ogne;7R|Rbn|_0FiE7={ zpSG7!#+F+ofhwsgE2hv?#74@su`Q{3pLbCP@>R5A;br!8b_`!)y9J+D->~H>lOR9t zE*)E5e$L$=i`&*E67td|rbwB=x<0|t1<+utxIQcyO^X3s?5f?sb z{_D$T?Uz@aNvB^Q+5j^dlGb|P@wQwhrzdK^F+;6sp_z^wUV`j91H>HcRX+u{W+g!1(*zeC?9GJu*8_?iO*w?#1Kc zchRtKupZ;4qWlJYdnu|A=npl@ju9&AhCg7JT3FOwZd|#{Om4iAO%68v5qxc8=^P8*X$zW`>nE#pwS3Lj59mn#z zOxun;{ylM3UziT=W%V9IB2v#TtSny3Ph-3w(@|xX-40MiM-cFDdYR`0{Wa*lHX9F@ zax&n8(2tkC-idVb!>6E%fcULFwRs^G(IJr`jQ!(_+~&KA8wB+ThH7CwXRDjX+nB_N zlvM`UcIV?~<)UZG~W24TU8`Hk?m1^^q3?+N-+5kAh(K;Mn zxIIaj%(p_N8U8Gr0(V46i8HA})ep2e;v9GPSR2<)%@o`U2#w9xWB9Tql?P^#< zR3hMTgk@|bDh#t!E>xS~EaJ>KC5hPEZp7Y3Cf3?4f>6^3L{7-A>Tvg}>G-iNjE!!W zNIV&e=zlfEi{KYT?$B5(f4ko~y$iUqO#FnvCtp|_dF__47{&8J)8^`j3B=oy zfuG8Wj>YLp1oG(Ub~;%WV&$;^lW*9wxr05MOzhbh`tml>nuV3LA!qE-mDqo4nq$vq z8hbX^v1b#FJsWN8+4N)2MgV&@W!STMjXfJQ_H0P7XA^=w8&&MtbYjnj6MHuK*t4<4 zp3O4$Y;IxCCJB2s&#-6n6MHri*t4m{o{bmwY;f4Kxr{xVAne&FVb7)wdp2y?v&qJu zjifJQ6NOoD$#>-R>XsY!-uJjRH*mjiQbb%hj^IqYZC= z4;ff}I?5!fqyss-ir&L|`^q#inMIj}{0%{7XA@y|Hi2em6J~Zc!DeTJptm~Kd{yTD zG|J?^gE+7}c6wcgcY40w-+TZI*aKgzIxSWSLw^H-T})H759&vwQ`Q87Ek=2)G1^^hh5;RcRrbBxbRG46ER<*!#XWnn+OZoLc^^>D2Z&e0MsV4yQBOZ2kusgpI!>-t3mXDvMmKY3kk+MM@d( z64L%n*tGwE3HEFzuxFEKy(5D?i$?6(_+iiH7<(q3O(qg=0RKue`bb+{swgQf94jQqY&Tt3*(v|``=~FtKiqu6eTXFrDYFedx=yyiN{UQ#sl{W zbLpDzH%~fNDJ;J+nl4gUjxe@=lWJ%;X)mY`5AZ<$?_jph=E!AU7XLp0crt_kKsfg| zTqB~dVyAl2J931@MMa5mJ0|BX0*>|ffQx9_8b^#2xG67dO=E&!1Eq6wI-JT)x+ zy_I49?W?Co`_XQAJ787>@|VAT2OWNR;yen+)dqpGf_&`F{T)vk!;6EesvZEUPqZ~&IWVceuz0HUM*XpI_|b3eAl2%Pk|3w@ zA~Le|;ofmM6~df*-6{LHr~($hUp;`=A0wph19FcMwgi{|s|m|E=C>h`jS=4N{~t}K zM(Mi>hp5lTPW|}mIzP+=!8AP`2QUi;NOM{&~_(7-aW<)Obg91CjFX7)p+I5zTX zVrP0o?WsMqk8);;L+d#=ife*r(nEbXH;QVaW|~3|IX6l?-^>Jr5_2*YdVZM647I1B z)Ri_yUunBb6Qv_x=oixQ&-vqeYH)92B9NugudP8 zLW9tiHbY-%BctKhX?TjJYE!2{a+>CN*3Qs`uF{kM8`RKtZT8e9dJRv|-fiTeVjPos zHQMO=Z7DQP+T&TC1v3tz)!dVrp1Ct7p&s0mUpz}@{6b-$v2@e~nKoD+mYEyR9tu`R z!*q@!XTU{R4{8EK8$llpGdQXbh2>xY9QdeELhMWlH(sWV@C*&sK6=~+E5TAy6Aao= zI!7oPf>;|$`$(mvJ$vyG!Reoejh+E{%PbOu_0TZjk#4AwSww+ANPkp6)B65q?vR4F{5deY;dJ&ZlC!b_Q0A>A(%abdMa`z`E#*ZBBk$ zjqk!xUmgRpkY1Tsr#uL@X_FiObq4kYi*$2JP7GX_-$roZU$+4=vHYC)iWykOA?~}u zY!%oHh4IOM-2|KjHf2BcdY&)6B_;Pd2jam*z^Tm>iZ5dEphv8THBEiv zNj3mlM|y3rLM$^EUL_Q)iZ0>8R~pPZ9o8Puv=NNaPF#4CNMcrjjy_ z!BtQb1cJnXjmkE}1{)aTI*8}da$aUylXP(^mlm&U(!h$a454m>ctR%Dj00~OAqE-3 z5b|eElFZMI=MFu&8DycbtVOw<=Y2a=F%~iaIWJEwCMMzZ_fZ`9Pcu>6_;)j*77=uE zvr0c`=t9kOkF?tWg;*78Lf#DE%TpJtK9rP=G$lRaJ4E-0vkh!o){ea4mr2D3`te3w0n6^ zsDSJw(AZ1Es&5y*XW$;>@lgTkNT6YthLzr~u*$hbXVj_m9WeqiSD-$ZhGpKaFv+<^ zWz;EancU4Qz79lQf!bdh7J0iuE9VxLQKzIe!J6lI9awz@YIJFs_rKfO_J2VS5Q=~#wIc|X&$cH; zq8AE`cl3&JTu9$|`zE*uWFcA8rN^xHk6R4snPT72BQm)F-Fc6Ml~m3Wx{yqPvRjMJ z!yL|w-hg~qcE^iq2bjO9rBY5A>)_Kk+ckK+(HvaKc~N%k#+4I6If;kkT=s@%+}aNO zf}G>!Yt=H1v$cwKI1D)B3aGtDNM-DU(kojqC4YGndE>fh;nt+{ft!CzUuGWSw2Zl55klMS6 zRK_gGIa9t?E7Lenix0>_#}!9L0}mpdmk%0AIF)m@e63EValTeDki&p0j++J^Pbz~5 zN?(+(1!fvUwfOWn61jxwXyDnTJxW1#+CdAS-xsZ`o`+SOR#U-eIih` z?VHB4ZpCP64?hF@9b*i{Uba&NzerDTiGbC%BaLV6i_s!T&m?>4ZV{#hdPV(hz_7i}PFh@S5=G)x`E{|bQQ!j zhSc_&oO!ei6^k?#l++b;*MYw%#!{|8BNoSIyY?`Ad%khrOlmTk+3Aa4d+I9>k*J8l zdUP%-BAyUW@1)ifm7QL#gRsnBtOok)a53}6!{X`9)FX1U+sk!kALk#H40-Bv5x7sI zH`O9MvfJx*?E7_gz{`!aJ%sFqO`RQ3zHi2muPGNZhX^Vm*-X7hEPEkEXGb^xC<7>~ zWryb!0mQ?Z)gxfp?W;OC{e0g-D9m8EQgNN}(mEs2y6ply*f~O_c0{3ed)c@$=Ttj# z#fG|ngqAia;`~=3kK(u?y?aLshMV(-lnaLZ3x-jrqTdu+@39&i?A7an>vefsE(f>% z3~q&BKi2G=RJf0xYnaFadS<9M9!d{`+L`J3xabWl7p#=%?IEED_Ik&aP`sfYxCjc< zA2$1UHy)_xPyrpY(W~r-9_Z>F=l`+yR|?>p&}2jbG+sY`Q?D}7P|vRj>iw+mR#AqK zp_~umn-6Tvo>KBVO@#+@g#mK~lIgVktx5etAxk+Qw44v_MBhLF*99IMesP-;8BcyQ zpLIE(<=;Jna-ifEsZh5C-lcG(zND%QA!#|#*xTOH%W1F4BnN3-b9k4o8ui_(-Xd?4 z{7xH(AQ}z}JnfYumHa~M`kr^G+psUGGNb&09O&ZPm7hu5)fzaX9Ne8jY$_+XD-LE2 zM+we5ow{fJa(uaU{S!H1U2!OD_@>~zN7DAO#*Rsjue5ICU0uJsx=rbv%-wPPFW}6A z^K?lojY%V9ry)519Gu{wZyF~G5w{6~V}y#t1c${0A;;SO$+pLF%i%VedsaX~_zFb( zSO^MM-b3W!Zw&*!9Dx20PCR`)OnKfzdv!T)PXXwEdzkR$01TAjw*#=9%I~(`W*C%G zQN~OgVKB5qv*)XHh6$8mh5A$J!9EynDz4`$77;%0>;BQmckNYFp11XozuJj_$AWf# zjCzRhG0l(@84{F=H2(yyC~2=^^7i~rqx?jk=oRjH4IK#lUd}x`z#Tg<8?$&t&L;&(4povMJ0ErS$)YyX|5qC6{d0 z(>=VWB3io*TB5Q}sd%Dc)GTLPE{#3l4%C!cuOw=b+8)4X2jDXW`l^=gvw!}r8Id+5 z4NA*by=)~yd#^nY(XE(96Dhe$y(bZqS3abD$nZyyTOkKL%0nQs&%HZ}e)rk!VE6vg zN}=1(v(-GrRx3oe5OK8)!9DT}o9Ar-lo41dXV(VRf9dsCN!yD&=+7awQj9YgYt zGxNNk0A<*r={NKcA<#v|VVBP<654yI|7Z7*zdX>79olq54;2F4R2=sBydtFyu?;`C zY6(1MhvIMO5kjB@#bNO06@d00B=10T$XjGZ=wz>%c?ViRKMtrYwH|Y*em< zzS3~)Ou=4OgCG~e_5OpBAs7PIcvKtJh(O>PLPr*ZMyi9hk@7gROmt=+R%^+NYgd}a zJDpTUGblY#9&z#sXqpG3TiFac@X5p*=K<(e5J3knf6S<$1Iy`ykORw1{L?%D?aFEU zkLeV&a`Kr~J~NEwDbRqMMKDlng1sbhGUx?^nU6zYXNZB0e;hXe9?v`vk8++@sonl! zjMFYY;(+Bp#p(DPp&8pG`D0MJg}&SveDQX{IH)t;Y#v_XJa16DU0{sUD?Z{f@Q>$a zhR0LRpS*(SPu{mH~dz9mQPggd^77rITvra|`_LL+oAT@UEb8sTMes>0sVr}uA z!Z2&YO{-J!TP5=g4d)8ZTPAInY2cpb`10t2d*Z;>aG2oyjil`_8aVBoBMx2vI8Fe( zqN%F_-&MiX2{h}hNbfok5b-09(h3T;f&&DLI{roME;6XveIMs_%-k5DrxKiO4-i7) zpBAIpkO#5`O|kYcex(1?;^SGJS?zpu&5)<59U*rJubF>bsdEU*ZvU>cX_kLnqjMOT zJ!WPHC>}!P0`bNx$GnvgpdBE8$Y1C5s+00KOXn~2&Dg}_>vRD?%~_X)eMYeo_kz= zRcyX~?DDgoAp=1fvZVbOp}k6t$`lPB>!bt!1w^F%OAYu=?DkPsxvnZGH>URqTUwf$ zq*VMaM*XC8b>~`M0}lMm&oXq;agg|9<75Bn|8to#TUvx#@~@cQ--aYZ{O%E(3|Q60 zW8i0QR@t59HQiHVOzE^N*Ho>Q|6_n4F}<>EX?|)G)T@8Rob=BA4n8qXdPg!(OXsvK zG=F|VY#iBXtl{GQ2&c|U!H9KLOP`a0=Elqg>7&Ul& zjB|FDF%M_rW4KbRb8S|+nkpzZ#_qi8j-C!*vUC#{MguMr+snk3CZlF(&t6m+yAYOD zuA;i5sZ;zZj{E+6sA{dnsmXAEI6h`YN44@pma!mbq6VBT*10naC-e{VFE353b6b`# zD<|YpGAwq1kYy}TTUBfeKlF%iz^O9p~8ph|4>W~w*?9bPV5e%=%1>&F8N)W+1+p(bp@#W8jUs-XCo zUM{xbkr+FB)yj-4LoFR%j(plUAekCe@BZ-H7&|#tpVz;|rs~6{TKPH4P+O;n!*-MB zMEO;Tz+dXnb++OC7(1V3hc?OjkH9W<==|@&ja1z*S#>@->yr8IX(!V{9oU9jV(iRS zEAz6-$yGrNC#k=;PIju{kyyJ`)ym$iv1dB#Jj*-^1J9DP%7y>L_=$2amp@a5^uYHT z7Q9VeWJ+q&k;cc|2J7MmMdHY#So@|<5!76=lXDM$?Lw^aj%qRP9uliVanx-1y4GF*=5OPZt^h7eDcJ6w^pP|l6$Ox<%Imjm zNsDYr=Y4~mo8%?zGH+M*B|}d|U;A5Cee_jY6b3dCCxehzWhE0O(UfJ!EvY_?RuQznmt6r*B-LtQ>CdGEpTI{Q2a%QQk84bo! zCFVE`1idc`(18zhn3CGQq2&mwdKty$jjF8^?7b#Gx!94r32DbKba$sE`7CrNx%74$ zyZG27{VMMq$50Dmj)S`Wz;|4HG?ES{A1>^_5+q=lQ}G|hlj?u`G)NkBIu+7sL*wy6 zZ-bTNap(9!Y^_iU>xPDE$AtM(jnq{}kKoMNjR#g6K2%AEO*#vfP8;D*=U`@Yy){Z3 z;YNR|skMOSpBDp+C@S9ZWWCGvTABJE>&r@xexc(S zG;8%DH4gpCMh>&LN7QS{-V@m-GvhdI0~@<&<#L#>e8U5^~cx!xZUM;PaE z>^;XLDt6`&23Tu^+06bZRdq)~jZ9VRW|;&|HTCEo-bZeu`{_(?INM1z)f=v~(W^AK zVXU|jsW`XsNO9wkI{I)@aSBGaFn8B^`?>_~L#nUh##N=c-lr#(%3QCN;)cda<@&o? zCnGp;gZPz9o5qtGet;=E{Wf`>5BQu9xVJ$}#tm%F9;U1wi+b?3+-zfCLwMU__IR2% zr$??SysbRjSlS3ak)P=7vGNb^pQiDV*?;w<0=VXnv^f`})Fi;b-_FBWoeiG@9Y?Sh z9Ji^{3l2;5qw*pka17C51V#MS@cO|7aRU2myyncV%Be6t(W;x zsvlhqR%>cTHz17eWdAC2GYSERK34+{o3y7kq%WP^I!`pgk-za%*gCCCS&xOIQ{AVO zRVv5z#8>vPcSeV7<752OBc>$PRcbYrdM!n1CtY!`?7zG_WXgVbIGHuKwPS`>T`iXh z#<@F|*w6L4M2sJ2L=V#3^#It+Z4gHouQ|@`>nl6*gXZ>Wl^r+D=PZ=&R*MNa*V)f) zpu)$GQ=)&>->hx?7!4qscAfY!fqLv*Hg^wm+>76tzfZ?cLp z;*TBoPMYg&zmF>yc`~V#%F93VveukAak0rw>=h=KXv4_;qKBF7)P5b&$wsC&xXH); zvb!fRo#TFxZa=3xE-0g$;$FA@QqAaSb6fjK;7PnAk>loz|EhdT0(KgS_-Msm?SQ5h zqr%$A`S=ii2&<_kkl-tn(5;%yq^skTUCrx_SI03LM0}zTUX=v|gppr0=6OD4VSbU0 z`y>Q%)%d0L(;xGi^V{RzLa$bPntzgAtZpJ7KM;Mj`l~rDp1x*u;&)Z9bJ0WJZmL&} zeEeBnfE1a?D|BE$xd&0NKZE!oXlkt>;LyLbIZfnNP5J$c9wR5qKncFWpA6B%P*d&| z=q(xqR_+1!Ah$s_xFEwOjV}JaZ3#D^9Xc$HZyHH*j+qy$lX{E(Zg#o*t2!<~#c%Vaw{ zX+6n6FqkDo$cA%rOaa;7vjnE|-zT{@bR|$;zUE1dsWGo9$3_Bwe~--Wow?F?c4%Fd z>vdPDM#*Xkfp{ZNlT`Me1ge3?BzQL<|0BJCnkW@>_E!02fPuLNfNoblNsG7U-Of9H zG9(#{E-{orv09upGL&DnXW%|3@3CoQSM_RfpTi&>lQ;LyPB*^WQaJHyMYM&htg;84 zjE2*I&)auRPp+%IqiHcT7xHfpN@;Cup)fC5qS_~+43i34d>7cV+H&~$iS!d`RpAg4 zv?Tg)#$;wQ>y2yUuHLf5GA~XeE$>&RkG5G1ru)ujW>K(z;O;sivewzQ+8IuZlqDL4nHuaTaX#LU32Njz)fHp_jB1qnrut@=B<>RKUafv{ zF8AC=-@E=z+$dHQA0Vq>AT8g1#BHhF&B)E*QDdEoYt$+NX_gH$A=Kd`8icl!w^_Xm zp1W@Z_fDz`5jtB~Uzy37uh68vO>}I2xpqxj`270H4Ze#}-#;|=M)xM#wF%mMXLRMO z*i)8_s!~g_QCU#6WtTbs*!=ah_+z+zXT~Avi$!^^Kw7_D7seOIDX!cjZJ3aC&d0%` zd8@^bJc!fMP2%ZQ-Xpjw}A?lJIK?@|d5FStYKt z9=CE$bq806cSYweYKTYRe2Fn@0&Li05; zH*d@(9n5s4KwC%zHu_A+&ACk1?|%G{=RuA!sNO!6EHt!E>-}eavB@$Gk_WQO+p`Cu zhkU5=2o`XZ<7K=mUWps;vaXr~~#h=ix)OemPq8}FqUg0b0 zdg1f5*X6QvgoCmxx9PxqIu&34r{~f{Y0upK+C&QT*lkj|I82S!AXoMu)(ovQ`QcY^ zB5h0{Bz5h0HKgIdN~B!lr_|;Vjnd8INo)IrB6C-z{)V0MT?CzV7xRQc-bnqTS6};x z?fENfkK6X9T;QVxO<6a)B}c)s#E*9+wa5u|m#zw(^M~dtE`KC$1nYLMGTufO?$#G%q7{}MCh_V(G#v4SJG|gqh7lcJ5Uo$YP`Wr+M;LT z^RAoC=ZEd6`sI6muZ5VnHHI%dX<$yWCM8Xvy`u-ciOigJ(=Z6X(H?TpL^3P+g&BS? zF^`(k_lC)fN2NXF653LeHFfsiTnCWDmA8*SJp+6lLnzXDU$K+9G|bfZEjSODBW&?0 z%w(f{LU*?JvTi||$*0SCo3e>McFgyS3&<+rxe}LU_#bG_)?ScK_~sDEHJyWa z)Uq0-)Y8*&Z#vR;4U#CA3)u+cxfF^UI0+Rx+(Hs7fprvB7}~HXL{+3uve(h(1h5H#K@+;CbsxOYD_@#ypipVl?_Gzi%WbX3B$x2{WcQMFOOVU z4N&GaiK-*M)z`sU$Q<8p>x0jCJ-2Ci#rN{zk>ixqqsT|vRXaRtLNQw6uYH~YXy19$!A> ziXXp(>a)c-KY&0>PH(OrvS79~41H7dKY+8H{YV_%`wxF1JZ?txEt&!Smbw}uF_6st z9ag32rZ71_vG({_npjHsia>RxC+hGKfzeM`$ZC<~s{-?sId7~~icjWj-;;@yp+L#{ zfHV$((&hH3CRoc@>HgB{&X|vTPlg79I8%&3Zg)wsJupXl&g0Nq8~IM73nQpqU-e_sJRurX-k0i)jDCCRrw{WAKrWBY-*ea%ZopotMR)FVZ(k z?yx&FMly5jtq=IS9T&Kyq+o6zj~b?tm}j=DL#!?L960`>CW3a)+}q?(s##}&y}MkQgVN`6gJ*5r0^C!Fb!!syhZtx zVN+=Cz~X30zTy#5@z++m!}fB_(tJBpBh8=N$Dbg9 zRu9Jt!7(Fm5|+~CY9qW^zB_nHX@S{qZIccO>cc4QJySMvsV^}za=}c;SoQj8artZB z$db3xAw1g{?e;f|+oFc&(yOL$v<|7^>A~J^b|#-|4~%RWmqNBHJx4TBnipyP*awLF z-2s!)atDfAos%M;53(KB{9dlD9e1GYvx8SD z3cjq2xED>fUX@v09B2;ai*OuTF-`IdUJ1MzMQ85F_m;^dr@x4YH)TpeW9WY9$DiBX z!5T0gVy{WT4qYp*Cba796`GxCPy%dHVtnsIZBA^{SXqc_ln(s#B&0Q)1bGkl!tPII98|vO!8>UkrzdS(+8DqsJ(=PY8R;DP zm2r^VvGnV0K;(gwvhiMs_yC|1Rq#wB#!H1h2a+cm(FkT=p1&V@{`IgjbJnj<=?iHW zWOfEgfB5Z8W2gM5w6m%MWUn+(+&-6n0Z&@${Uqc3a_}3KirPln8W*CCfd_Y9vQVxS z1ZxvvM@gG60qUHETz3UO{`tUl=zPLFOeOk=U+djZMv?Te{^Ntq z!DBCj0$Dhz9dAukVF!s_ay;*4lTg7I9o35#3bcm;0EBO#W1w9%--ty~OG80k>GQy3 z*~0Lj^{EKUGNW%0j%YA@<(!N{WJ9j4mYAwGn$dZYko5UL>?2CfLBi~cDP2pI^$TpM zW%*vJrnSJ0Fdt`kaS+(c>|G^T?ns3pzZ!{MV8dWf}UwDDm{X${WORk=$BJk>%zeeOQZM~OyUPSmY*RxJ_b`VPQC*!Tb>MCdd~snAQi}J zcPwOAdhw!c#I}pjIzJ$&cNFYPCFARRM{Onj3&WiH^df&YuUFgFs?qga7AD0eZ=%Ov zC2^YO{5YP4h9KztGhj~TM9h~1@|)}{cTjf`ccjL8h-7e#haE|_k?N3e~3kdB9mEQkTON1AfQ+O!3kFGJg&F3nQtM=tU(g?+8iNAWVh zL9IUYX?2kl+n1>ByPP)|ykGuQV#W1h{hdUKjF(X|tR|}Dk4l=EFm^*J^0yR7;QM(X zws(!2a%-KG(4C>IoTSYbmj=+gb<2k(BZwRpA4+cGMs4W`(rJX|3qMi?*INpFBbK&k zF=4YKfu2NH*Cb(L++ZH{19h@!jLxM){`dtwi>sqwRtp46G&gfCcj@;Negz<%58sSS zijNt-De}DNN#vImW%1qla4@abCDxXa`Z}mJ$qas^P#OG5Wtn`movBXyfX_{xfAIB; z!aca#hmPU851V2vFPh?#pAtT826@49l&<3Vt^E~tQOch&q#{eVuRhix={&Qsf!9S+yz~S_DhN03HMM6QmrCDp36&~FVtHhcOx3L zH%$7Xv*q`tE#qJ4%3iONvi-85QXxQTFUy}jtu`h0^cM<R4m_p>%$KPhW8gLxF6P^6gEKIgo|*V<#;lq5uPdZft0uKoJknw+~wgn3{Oc% z19)$uXyX$L*Id31&BZWauBMl7A`gx$yt)DDq6^F_3}mDAkV|~$9547sVen7ZH}iHr z!!L2X^W$$lqHfusJ5{@o?^q3)f8hSZ>BMteTBBrFFCO;!qrzV^s}f5M?Sx!D@aG!# znNonMkVUrM9Z}2okLf;8kpn9)968@F?^bBuJl)(y@VSl46z9OP(0m{?&;*Yi-x$hR z(1TrF0zb<3VxMBvfJF(zCOn&Hr19)anC9;sGatr%?RGw;0QAi;H`{>e-}q-09DLqN zDhpwK9{LfAwirvUxXgQ$786K(-tQISVmAoP83gt>bZ=BDcZKMgE~OK1T-+G3+9xjR zy75m&_;5CqFN{6ZUJUCS*ORDRev7M&3X9_J9-0Z-|n-56OQfTjGbz(3{r=p9=G+Nbi01 z7OT~5{BD$A|3(zLnmAErwaKmSY9@cXc>dO??8A8OH<99v?`|G1DZ;rFYDZR*gq9+4n9dg`% zD$@ykU>=arA?xV}$3w3Trso^UTPtoJ>=G{tH+<)i){JQBYL)rkFl0JLD6yeRJD1Xa2I;=k~YGP+~=MHW7H5EB(H^pzLnJd>-J{nD5E_A(64gFv%8ludUIe-NeKC+oX@ z9&Jwg+VuwSN7Fljj6qZ2-U(DS~V1-@UbxnBT5X3+DvM)j>b*+#oeNp|3 zaO77+fM|1MVX%WCXvHCM)$x>S}vNur%{ab@1B-6uaBFs|_w%n~<|zs$^P zVA!nF?qQ!-DShE|iT6%!1L?AqRuidjjmS~Bju^y z&)1!acN>XqS)wKmeaRZk$fXr>7ev0jpCn0DDcBav>@DZ&9R`zGU$6KTAv4p-ad^w* z?WY0-JcHX3zsfJ8JPP-6J%25G7qPSgqw@zKn#5*M0kG-3Tgex_I@T>;et5A0-tgSs zuJ>H^-H0l#MsiC@Mjt|TH0Y~^pb7&cH-SNEh=01AFxr7~MrnCIRIi`;xhwM2OJuTH zi+Ra%?V>kgYwH@6)vp1D{Ic5~KUp!bsD0oY%3p|`Q3F3*j^gw`x*z`#LiK?=;GJNc zmi%kBIIR{_HtDQ)-{D&y1yi*wuCvMJwd$&|=44$+_iq!rrY9X3%1)~<{hIQlmb7Ik zG7wcWvo|evDZ}a^nw3Vk;rY3j*sWDPZ(^dj$q#TKS4Sdyo98Ooh1VqmiIE(#PC97v z{59p99Zm0M6gnR%&dWT=+Ep37b`bl}@YdE8-I6ZR`?!Eo!E4OgL@}1|hiYga<)MJj zW};7{Bqz_aUF%n7+*OWyo@YRk6DLRMANcUmtu;n1qHhBkl-Bq>!JAq{#PQ$m9KDa1 z+ZDOFNqhu8Mmz&0tsj}c@#kDKX>a_l)<6d{XWRH*!u)|7ecmlJI8GemrSfo5b&B48l=AeSQIMPndP5{;ZN}+-HtJ63P~m#OTB*8jN=#hvcih zs)XIbw0E@LOci~0{AqEjy-Q z=k-TlmXhcjaSM8jQL?)&U>;LpQ?IGomXszB_+fQ-^3KVtq}tCfanJU6pySEG^yTV` zo~Gy1lXU9fYS#|)*g)w7V3(}pqV5h@auKVqJFQA7>oZ+W&V)ioxhGsHBF2~E zq4vHbq4fl8kJ5MRTmv&>v!Bm@65xf$pnaTA0T0R)TX2Z?w>+*cZam%rjER7{4xSaH zAI@g>M2&mKI_RMoa{VRT)Rz_({kI~(vc<6m4W+nv?8FT^lgeFwYi{rX{;nUx;#H@b zQuDQ%<6MCAwED2-?ZP^Tw4Jyx_WHY&4&KY~&>+k@p~URvI<`wh&jo6BZ21hEYbJ$( zI6ZdsTE_>L$g&^Jrh`;rn7E=86qz4-Z8MdCgG7l*Kj`plAs-&`=;fB(6ob`eEXL1^ zZpQW~(7DTuqE_mw7YqOr*!6+8n+>=yvo3fU5lS$woTHH)$Tm1jDtZ zA%gdn6H_hyS21OKVH8Z^@#8m|y!|XXL|`c7F*8^&;^>$^%!jF}qXgo)iCAS--#^}a zSAdb(ijVy1vXFZC1sz=CIbXreyt5cSCcTg1tAprkajP40GZb~^j6TfnVkpOmi5Q4m z^oK4y=jo%mou}5`K$D&UlcwPl^T5`<{eJSl_*lpFrmuKByPfbtML|;7qS~t{@>M+S zj`Yn4z3>R(r1fdfuQ}tZ#gB6gC3Pa}7Cu>a>pR*PREbq*$LM`Cjs2<1C@kfd@2PG8 z^2n9Cjm~**c!AHziNzs*^LF8uq=Kl6LxcqVOa3UImEg~n0`@#f;T2iFAnq$(wxtn zbB{b_Cd)?RzR%b=g-RF}YHOw;`ssEqC10rWY?)zPw$r3gUKv+#_vwo!O|oz|1J{UE z=D_=bH^OTh6Pj|Y9!M#>K3HSY zbw?}Ft8eVuRf$4cqoD;(v9`hZ&ilH7GN!AcBVt5rjo;kNRn%KX*0w3LE%f%SnuQZy zDY2&SkB}N=D4~c~;(o8fu+p&HIx6WRI4-Wg zX%{BhP5z?3jiI7Cxad36;=_3B$9>4JcN~iLgKj$%%`dz%x<^ylmg*L8C#q*A56bk| z`v4ifpVSi>S0p%f%RbDNZIC8YX6~7DpXdIZ{#E_e zl3H)As;^deRjst}`+)9n&58;peJ;FX`Pnp*eYf1IRlb>7%dmMSurmSuL% z+)GrVg$H1dGJ}M2Qezwc6tLni&0BJ{28{=%$eFi{2l zo^Epkn6;&&v6JDzlITq(X)z=+EicT%nPI=Y7NZ$keMeIi{JD&8Vb4jd{iH*zmKx6* zxe=X4v{5Rb5_2D=ijk}_Ddk7YPYEp2x?Vz*!rTduOGqc@^s?KvUzu$nRdVTvuY_`3 zo}LLw&dHplW136&q+#jDdgrN&_*Y-N&?SB6W2d)Yxw?YhyAw(F(yMO!mADkwg1=?i zU0wJ6)RmvX`zkcPGD#S^Xf4`ax$`O1TmCJkT##;-w~_V35rgV?LWh?mRLpo9yz0m7 z&a=}Y^4+yc1{ovvF+ZYsOP712qz^xim?D8Z7k@EFW#L}e3r-(d6CBpUOBnS^Y(_25 zAnc}gmb5ev<7l$8eK&|JcAZTnJRSi@DetEC&f+^Z%pKJAA46;lB(T}VI&(yPRoKSj=74`d)48ha2-6qkr1*qxCgKpwAmbM>d;xnM5UTo zi=Y87yC9{W#m$x0OjdUC)Qm^lBepe~-xEoHTo?7C?f3hY4cQ!85ma+D*t`O@5=wZA zCa2Cee`3>r$AMF4d&cD%GF+}O=8-U>F`s&ck)KIa+On|OSZT;GzDydar3Y*s($}BP zIbynbKi9JYIxSwF=RP=ZyeHB=P}OUkP|GQ+U@+2GUFR$^VU9|2QLJatwy(pu;ew`! zGkAz5kroMRX$V?b*F@6ah^8Co7t9xx=BjT1N* z;M$^36J1Zw$Yu@(IaSp1?`+hkPcvGL>)}B6c@yh7(_}K@E=NK?rG-^mSj zAJn&Ur13-9sbxq_S=-!ZZ2Apu#y~0yhH0CBJZ05tB2(#9WIA&)l$K4xx8$>yf)CxN zJ{>GHneVn-Lp9Pxu>RW9sj9}j-s6Vl3cIlB%m>%WT5mxX`YDBJ2inZpyK7esdhg?%v@4yt;%zUXOE($8-5-zm4Gt3 z(;Gk2`7jf3g86|l{8Mq`h5PdQ)MX$XNn#}HVg5Xp_;N;t&->*BWu3|?#WNX1hv{G@ z6YFa_yevG6sUdgUlIoGrmfS*9nbRmY8~Qv(5c|558C8cE??D;k(V2BiYHKOO=2-~y zqhBizmhI6ihG~ha_wg6SGfdr-_`wuPRecp)HZsKz><`xMZ$?y4`_3+k* zi%|tW)ONCXG(?%oF|x*rGlef7roscRp>Y$7x|?6$H)>7$wfPnf*^YrX%)HB_o$zU{ zsFNl3MRB~t<^h3ZuI{396(g~8DZ~9`UNn;Rjm^ti_|6FOcm^y)HI4Ye4=eiw>Pb!9 zbqo_Y;UL;80rir}eXJcUlkuHl%_D^7$x^94o#($<>$H`fn2%2;hfQ0>m|`lKw!p9O-r&&qi`DUD9UIA$Cfu2p@<|1m**d8K)&-!?|`eGAm#_gD5oZ zkTm8Z(9nXlBeY3Br|UkyUy@4R;<63BD&WAvpaZ7VfwHc3IAlwV&p&J6_sNosM3<&k zGMmR<*fatyfInq$Rh6C{G6gjJaj=v*l0!3;AvT1i-~lfo=(Yo ziDL;3QI3V=DFQ~mq#-}HI##-Yg|cLwO!YLgJRU6dHmuFkD_friQCs#zItfvu9wT-s zHAd6{ICkjhq@3Ikjq#M#VF8Q0qPj$xV_|T-+LEC%r;f-*Sm(G=C|x0gUSn+~--2m^ zL&|5V{`(fWymqOE@1v+1YKIF;>J0>vOmCbtiqvyvQyS)U%1P_K1VZKe>3Cip zBm?z6P|Kd?Q`3dB{5BUqayMnV&yA4kZNswTl*Mo*qSs6 z=GPYI9z=`zS@6!&X=dVSEVDY&oO9Xl;~O^;%`9xDa1=jPF3e>@)12h}38!;do!y9J zdW5UmN6H9L_@_O}#(1dWuCy!8OC^|7m3ohNqLbY?NT zdxld*T^ok%Fvt|i%Bm%N7Vmd>tX{~ry`J&NtJIZdP(P@$Ek!TU_w7GG9;GV>Q~)Mn z!6l6sEmEa=#$GeY(THjhQ{eB!k2ZYS6=)4$xL~mgT1s2~iha{aCA%SaYK3XW0*bzs zc)7*_%5E9Ge*5dgfNB4x(VeI_w#>}9&AKz?4gDMHAn_?#42x^Rc4u|qi2cakBz-&m zY&_~rgN(s!Ij^(8w0Sg$|x7BWeB^cDJS=_2}ctl1tl#cNj#rvuQ`G3_fj z_fZS2h_DINCp>$t$d^A&n=!Lh$}uA7ga{UvAUT1Z@+vrOuHS10QnX^ZHtazgrkGbI z<1=*~@=cd)?QYy6tt`?vtmxjuR*)D;j$)TqmB$^vFc~HJM#G4z{mnw-2aCOBT?qv~ z=MJ=_X(iFQby7S!^^?}Q8CXs$UM57ObajOL~y2(mZdt7%*UB+}C%M|rK zf0ZW7Q7)p{3C+R2ocRP&3hXRVn1=sGzaNqNLx$4qJf-0$Y;b7N5=lab&MHo%Od9am zs^od{-J)KQopjj!W+BQuXLSCB%F3{?Mt}&_+C_)k5>&X{5VRf|xm&LpL49n?Qu>Vt zxj?-TM^9Fkcl}_zWHdSapuSCUq)*gJrHmPn*zrv}&Kk+HJ*Y;=)?{HGRPvLmSTyHG zcH;%HYcSvS-hHI>4pe$vxLKOiRqyRQoC+-Zr6AM*-fypC=T>x^cxQdx+9$zFgJ%o! z=sSG39lATCXJb6~DH*!`BauTaUVbux&AKgLM%oGNEv6#qUhslt$n!-Au*>k>YgTwV zk&lwkSHnFWLH6n@1)p9xh><3SK~E_@hQ#QFIiKEP@+i%?ZE3}vc#l1AlNYKwF*&8W zxPO=!C|PcB@dZij{+d9C9FtWDFW+t5crh)0&zi~_LqGOSsijBs)nTwae+)!)9i&RE zKVt0^!Ag3lr1D+kRzq~z)YfH0(R2F}iXp(aQHz|KP_HprcaeT@f+?sC%J%dBC~~65 zHUJkLJaH0-UyXL<=P<51Dnu&hr_YL1oEf&l3U}Yd#4V9LgU=71WkboE2 z0m5{EgpkX}x@TV(^mI7JxK$-s_h7JkK7d*$II`)h_z*h(baUm}?&mudo$b5s;Zj89 zyg7bEHu?GjKsec#N5%1hIQwa|k|*UxO_9fKoIJ+hamD)W>Dy%wsFc&~r`7WAr>`@c z)$)(_3m1>jnM1(jitjJLFINlRJ0rsH`KCLbaa zF~qahIV6-%n4`Vy=Os=0`cFrgQg6|zCg|f^ye2B*-xB(Jw#J1*O$1*M2)(^m3gaan zdwJBEJLo(5)a7xHpDAd%|6~^NWE`Zo$H;8|iH~L8_iR@FX(EorD{0^m;|7VOvAI$} z>+K!JC!5)uQ$tJF90*rHZ10{7bxW=9nUSwR;4T9k2mH>t=@@!M3|-ov zwKs~S6|G#qX3>A<(MoQRCgcI$2K+d>9&0alB13&$6sBd|m`b%1jA*f$$}8kO}(Z9A<(3BwkOa;fA5#H<_Ljr z!YYR?>sDX0sz%VI3VGy(@HfFMy|Rl>hp;!nm%|-)BUnZdb<;qI=1?1@j^_{>0~fo| ztFfU0dWKwcRL587CBUDp=391gj^T=PDIxqa>RQUD>xPqEv4&FL)Y z%Fe*Qs+(&~=Zxf*^x=iiOF{pfZorxbtJs~ zgE@@r5V$pE2ss}iDO^lY;F_TuF&`jEHuJ%V*=`*ElrMkE>yMKVr9h zBziA`an-XAK`0NHhR~GzH&mm~h?4Q)W+Rw)&qL5NQHVa0fqH1(_zBOU>KHPjcC$uy z(M5KH-h>>p!X&W5Pbmcw%)!*LA}WTMcd@T)o!M|>WW$XG?RHXWDKgZKNwN>_2dIH=LQd zq39yc_M)A=Z^E<-_}o1LL0Lln+Zle0E=093^2guE~KOC5g<7DKA7zLBb#=E)|117%Ddysb(tto&z&0 zQb9Oj+>`@eUc9gPWfCP3gXokJPi-FZmXN}hh@Dy(-(W;x9zij(dR|&F!gMaLT8!78 z8k8_S=y?Hc!D1!k^F1_O=>@zpyOnSS-G?5!fLyxZ1tsE!yq7Y$I5JddU?s%iTw-35 zEdNn4^G|gXd{A^={H%~s$;%1&JrO9TwjW-u_?~h78@&J)@sv;07WCS|$$7XI)Gfq% z{*_{7<5p1I7QzbQ*^kx}&U+qExE9Ri4>P$L6U-JQ+A*MyIujE0NXx;XJZ1~Vh2X}# z#R>F!Z0B4(3$BI0>)dza0`+9eVJ9N4d7k6#dje2Fj~D!*q#_u3lH+-Mz$pD?SgH_E3EhK%T~U*&gQ=uLoRv*ougKp6ht)9{-iV{R{6<0THr1#qpv& z_A8!ySnse75raJY@y~njuK4d^eueso2<91#SM9yHM zn{Y!QZzLf&0}!IC7I>@^#dcF0IVoqD}U*v}fN2WrvJ)?`~Y4-MI;Lyf6p_ z^q`!Hw7oKj#NU)XE4XEAdkN_Kdgj;$TlFPnlkqIc4Oc&^sz+nODM1@M2sE zf&CHwDI8;M^-P$+Oeo+L%?G8PSF{0FJDEjqSXV)d`yIm(0~9JVB!1S}O9oBT*Qs_icd455MCVG&Kz)aS1OX$oes3@Y+w@q{X} z2U7g!ajHX>rg&-cJF(6A{f>J{CA`PeP{nD9z;{&z7zuDNoKfTKrg)A#qa}Eh)UXh#_M~q~=6jiR9PrwZXcgmDICwheK#v5{}qfvUW6|W1UU;=Y{O3iH2w#iRR@R zV=GLF<`wK{-wi5EO1s1@n_|q%o{;|>^l_wZj#!dEp}2|vIrwV}=7QWkluwS7A|`%d zaB~ak;;nl)pL{mOSp4qbBJ|)y zRbkKZY>t@g+;&T{g_P^OU;8gSa7d(L3J1nb_Q`ouNhM>7L@fkJWKi~4c{8(xB*){R zI3)4|<26uX5=C4O$}AzpTwZOdh~jL*;<)tUw9@Y)6;Mk4v}_UDi6JO*mP~{t5_17a zTcT*f(W(gdyKvTb@#Xq>kKz=CB6bVhib8fvw2A`f`t19?k}D40h|xl)J>3PNU-faI zi5F;-W(y)ZmZ8CxA0#Xz8z;DJi;&Xu>C+1dN5;|93wS(u`2(}1$8yc5+^>i|SomYI z6?dml_JXb`Tl`q^Blh~B!1fRNGJrhUJ(ZS7mLkSI84sTJ0DWnViRmi_4^BPNs!y|% zhkHM+5Im^b!zv57rgZjrTe9swex8hiVz)=x73%E0Z;7%i`aDGfr9IAX-Lq>6IVo@* z_l63#C#;B{7T%0|?t5SPJkNZw0%Bx^G2@c^CRYy6+d<+5#B&PA#?AMguH2s|!nh7G zgTktDjeYAY=X(V2gbwl5!qairea|cJ=Xo*KM@+CVXIydL{L1Mb{#U$@cxU12xc$EC zmFGR&uee7s-@?vugMFBLBL2Y_fvCW5uks>+qc0D;J!<)8B7T^8YZ}bN{4j@`Q??<0 zmrl|f4Gx?$bRmA1jb?ObL&s>?I|p%rCF+)_Rkqg}&}u;Ejk3$uZJ7q+iS!D#GZ zW+-81Y*xsIQdb*xWa@&P@r9<2-iCqEjJiB=UXviBe>g2mofXlE4d1CwX2(b$lr>_g zUY=y^yR4I#`2x!{n68Cl4W_^|!^8svXZknFv#2%W z3pCR$nRf1 z8_CYIHD*>AGR|)wA-hoP^u4buo13;lYYo=>T4^#{M>H38MAMkO{LRkjaL%LAe|Z>G zD}MxPOtUr8nFlpyEswfXXO$-$8@JArHl{3hU)TIPQgFd<%~$&@685})$Gor9Eo3Jd8W1Z=!2_jX6K2H)!5yD>)czlIQ*p7Cxwg$ru}fcMcD30v~oSKehQ`Z1&zE zdA%eXl02XALM8h;aDJ}4PJ4m$@V0U@s4euc`S~z-SVr?O^U^TwMZz7u7go-5{!BoxNdMd5(Izrj@-}bjg03_Q2!=${842 z-@UlJz4H=yUa1WNHc)OwIzkP;;a|$$7Cf+Zd;n~Jy>;vesM<=oWV}uC!ZjGF+R(V< zd?55;?u<4VdwvI9WZY`|uy+PkZ64ks_%N;xa-A>Unso%(Z!g}u_`F-~cD+#Oh&bKx zyw&$XTphT%e0Qh!VCRF;nX)=?x{Gm!cqjT`^!Um*QLvwESMiMYPW8d^5!E+Ya3E(F zaE5;;`v87K_D$;SH`uj5|j^z9eiH8=y@X*^gz zqCF-14s`Aco{`-tKA1nEJSCB>b)E;pzM_lm3V6kkx+W4znp-r8-7aQ7A$f)SOUxH2 zL`;nkp4SK5&;&}M;thmt_Pve+1c$={-%v|L0FBGv(DtK9Hn zcd8FnnYy%3PMOL|JgXRAz~MlUKkl{g1e3N{*{iVX(9q)0Fc2pGF(pMjCH15THo*i% zEhVi2zIiBnpVo#AP%)Eg6n8i5vd_!Gze!2=EnaAlaa@xo6JAQFY#-P-Op_rwY}+_U zlb!`%Bb2d^p+;Mmx)RU&3+INmLspai61g1?S6IV_nL~so?MwvP#`_v&8?4V^BgPSP z42@yO8!k1XM>tu=DRa!%q3s*!HHt_0uHmg;mN!Tps+ts+0Hm)m!b86FZp8Weewaft zqlbKkF1B_Ni?fj5_ziWv>i73z6_SA)_G!XTe4yS%XFXTsF%(=vS~A2^>YiH#9K3Y$ zFM79o+so4`)ZDf+7~t|$U{OtU0{4=GJ_|BXUCXY6IL|AbG>OFURzA)&KA)~Hu#2w= zPnTw2Tl!6Xk2pD_rGGvnb=+#RbG%EpxK3DV3z1p3!#I#L21gBpSeLcfT)%rNE7sOP z^=$H^>vdQ6M=m!M^pypoE4mZK2eDLJymXIXr4H*Yn9YoF7+cva;@;d{Cf+mqjO;yt|kofuC?-L`e^C*{)2=vgn+#21*4paS+ zab6>VSnCQ&nq?_-eD5iLK*HAH3cxoB?^k5C+g`U}ue3PJz%0UX`O!OSf@~7}gx;;w zq)A_QMJ=Zhxys}VVR0h3ka{_J&i3~DXF+PfHoA*WGI`vjIcd?Pb%xv)>PyS6K|wwY=eHh#xWKfeKWfp1LEW-eK&O_tS$ zos@reb#Btx=9Nu!%&R$2h{Rm5?L@#6Il4<&17;&Lx#oMl&(z$UhKr^0)58)Ra|fUA zWU=ZV)n)@$4`mV`M2)ERf~Z>#F2?Q=&&yeAI?F1x^qfZyO1}zDuj*-N2!7QrlZmG< z$?6@}&guolR4nKMmo+}SYl^m4U{@xkHC~;b!nI^`vR8{|Lo8XJ-0hZs(BOalj;&<* z#a(F7x|r{f!aeQYm0$8iJ(gC!;WOVU6*i1Fc;jP^oLH`u?+^xz=S+!(}1``nr14>l1k;AD4%YHK7+OX=#><%W< zV%k%=Zq|xR-$my*o$z>`o-E5>$C=hi51yC}(EwrRKcH#7GKEV; zjJ5E`g1o{o3bV}q@YWC+-mE^9ZSdWJWk_i}yJO-cyM7ug z!e1xk_>hm|9C%We}LX9lI@R1%5^PbKq%SYZpI`xeVg|uUAb8KGJHSH0r>j zYI?D1tYEroR+PZ6Z*seawRoBW)cqK>sBa}ea1Z=0*ua{38<4UlS_a%#ED%{T7#K;@!v}N7a~bm$)t{^J=5(|e-Eeh~R{9sZ7w26vhFz*j?2?X6-*vanv7EIZ z=|i{<5mpCI;BKl(&wd^GoY^%JJ-qOI(H3$H^Yr1Enjxo$^gHQmr%V)szTP#3==QT| zFHSdh1GtWiUUo0WRak*gpGZrz+LKwxH2jLR9MC*u~ zd6O_j{jyG6ko;$__MDZ>a z!@d88J6%17y^1)7&$$L~4CD5xi9napYQi^8bL&0YWuLJ~tUoh3gJV+Ang&``fB~1` zOhD!~S}sEs!Aj&W$8ATO#ME#nLB{BH-o&B$b)*2c$`puH%{7)I-ehw3B%)zGn>JF# zIouM#0(-Z6^O%V&tgZgXuAK(3uS zOFFBRAyWrlRaCvDy*N3&FJP9mtV|tSl43$SQU=oE4hptk*eYyouLqr8wu6o+Caf># z@g~i4^2a31`K5Cf6*0saZzRpfca4AUPd$<`xEOx9zLfH1T#&C6ZWYW+^XW>UO%eC=`Mf^&ZEpVFz zN2Ha)sZ3{X8+s!ns2J-5%E4!2Zj6?i39LC!-6>rSo$Fbk%VRz7ur&;Q3a4 z78$Fd(68aEdo06m^iHOtH;*6veGY>jo$_DOYEIhMh4jy7QH0NsBF`(uEeNgDFZNh2 zfk*4_)ID`UK$^k%?|sbgRYB@l%0`6d4JyYvCR8QN^(o^$NI~7_J_ZQ25@d53_KI?` zXy@Nwz-4l6M&m2m5DT_?F0VTZ3ci&;{x}~*?IRW-j!mM5g7y#Z_nQRr>S z(lJ|c$iK9Ko=w2%ZO3T^`KOcdVP49vU3l_|AJM=};=5?1??#4gF%eD0O#%DIkBiuo zbX6Vg0>oS1NWIeLYyXa~Pz_&k$eb)>1*wk>gpqZ0ecnw0D2zQX%&lSmmbE!g2d)XY zcqnTNNKd>ot7_M0zOj-K5uvO?-S> zraVv5dZk10WP8b3njq&+`I7F4*33rg0I0{jKDo|NIG(+P+;`3afhSb~<)X@Q(`_V5 zI-O`6nw~1;#j&p_IWi9pX(Z*ot$yB0vZEND*!V*%yS*Ebjm|ao2-#@xr9JQDk8@C)i=DHSD}UAZ^#?|;5NdW@$K z`?=JWBoz`ILl7b-f$HC8`cm-SynNI*KmirCNcI}0WfN`WP;qgFIkqSRLm#J?y~RW$ zp7r{SvEJcr2)8*8L{zFt8u`NA81~XEa+I*P3T4dO;^q@tgKOmC)E5B~4~XMqYQ}-0 z@=vabM+1q@>dC_8gvqh;<3~&JIXdai(8fEGmA#?a+^TF|>`+L`6j-j82viMpe(9K8i6ft%T1K)Ai|68}_y2jE$37J{ zk;+h1_AMv5)Qt^$IZaxHyhDJKTJqf7EKPTw=hW>~&!67uhmgaxl0$=YwbjQbTO3rH zKA<4wHATjyj^s@4i1?OuiOao~PtGij`(;*BX+y+<{Q4X7Tt!c|qZseKgyGM83m|uK zj%|*`&d&XjLY z3*75J2rPw!KAe+LX*YZCVeswZlFFGG53B8T7KsF_R8fLU} z`}O6m`Gw#iUgUJb;L~740_As_+%D0`t&KDDgu9y6^PTuER)a^krbxH5VcC|QM)@tt z)k-I93MwW{#^k-hl?v0LS43SER7?q8wZaiNTs<2UiZQIBI6mw>SVv^hthA&u5_2!E z`A(2Nh`5_vTwWma7gSV4VUE=&7tTaqOJx+*y3fze?TW*UmEZ3qUoUD?Wlvr(mVJQD zZcYa)$eKucddpsx&LI~R6inG?rs-f>9!1vA0(3kow(YxBJBRDOPvMo683biXCVMU{ zCbPtFFxy(6)t5JUJmqt|FH9gBlDq8)5R;{bpL_bRmu?A%Wpv|Dv`ncleFK>1SmB^h618Qc2lY<UarJpYxVoP+H-L;2rQ)+_!~hH^GlRwY&q z)_SGtnu#065$0$F2Q-`j7nk4CzDEVU;`--C{3TEO-_mKbvvF_$RGp2X z?hr6QQ(o?mtmyxh68`V0iunZHAVwzEU?{mU*xb^NpYpV|lak!hl%GU!edG)D1gl8#_MJav3*W3Pwr-GW9P){#!qQvYHtkYeJ=m@7(hw> zI|1fKU?TGQRe**AqAK!D^d6gXPO`T1^jsn6aj`qezP;xO# zC#a>34cL*Kje~`ioKD`z#L^CG?_@#G_nWbQXZSlxe9yXhMIFILP~2>mNe?Liyih z{H_@Mzmf45%D>1kHQ_b0ceFKv3K&5kHkKwvzxl&&rt$&)UiFXkP)n!{_;-K&(@lPN zOko@7KR*2p<=;HZ#_~6Z<+U-gGv}vtV>Shw89CcPDFvMEeivoR2l#{PAG!Z{`j0|? zZ`6O+|62#h%kzran>hdGB+_C6&d!#myvA%GAP10xotcY^&4?My{aoVaWMgG!=QQPF z<>2DtF#{X@j_yD5{>9cm& zCR}XXoa|tr3HTYjf8za{+&`@P%h>y4VE>N5^T>XlRRDiZEB}bcpJ4xgF8tl#|IdQ| zD(*i@{))!GE&m6ue+$uH3H}4uU(xut<^RC-Zz1|C!GGZTD;oc{{2#dfEku7M_@CfH z{(E2owtJ37T%W^^e~x?D{};g*$DhF$&vWnv{38(h=isYWiS@U*%XJhm!l=yp{bp2- zJ{rUUi;U2B5Tb^ce}MS5un2E)9_Hnn7pwOu76058j{ldo0NH$cyt{}*}x|Q(hql1LKoSu4C2J;-lb^!f4DTK!s8iGBi!s@ zk=Zw2N4~IluzkOIi)r}cB@2M=pY7xPyM1C{6MIvzl98jW6CWQy)ZWJV`KUTM2SCXY zY-(xp91M^H*#rat5|%blup>ai=6RX_2Ma)2OovYl#Ldkr$_bPZ;b9X7f`r+5I7B75 zctm-)IDuSj!omW4ATCi57YNAqyk_O*5atl(5eD)|h)RHjft*|-tn5GmJ%F^GnLRnr zbCXp5>|SnwioHFQ90>gVsj8(1m>kIZM|W$gfXx6JIzVzZa-iPdgI|jkW8)XFH2wFz zsB);06+!_wh_QxyFb-rdsKZ5sbrB@UyRXQkSlM1YclxI>1fqWi<#~PV2z7G=o1p=L NAT(-faYYHV{{z0Np!@&; literal 0 HcmV?d00001 diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/dictionary.txt b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/dictionary.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/reactions.py b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/reactions.py new file mode 100644 index 0000000000..344a324807 --- /dev/null +++ b/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/reactions.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Monodentate_to_vdW_Bidentate/training" +shortDesc = u"Reaction kinetics used to generate rate rules" +longDesc = u""" +Put kinetic parameters for specific reactions in this file to use as a +training set for generating rate rules to populate this kinetics family. +""" \ No newline at end of file From b72321a32fad8cfd58fda365b5ed1985416a3f37 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Wed, 20 May 2026 21:58:16 -0400 Subject: [PATCH 02/25] create new family Surface_Dissociation_vdW_Bidentate --- .../groups.py | 53 ++ .../rules.py | 27 + .../template.cdx | Bin 0 -> 3407 bytes .../template.eps | 545 ++++++++++++++++++ .../training/dictionary.txt | 0 .../training/reactions.py | 9 + 6 files changed, 634 insertions(+) create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate/groups.py create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate/rules.py create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.cdx create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.eps create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/dictionary.txt create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/reactions.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/groups.py new file mode 100644 index 0000000000..3553dc5cb4 --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/groups.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW_Bidentate/groups" +shortDesc = u"" +longDesc = u""" +Surface bond fission of one species into two distinct adsorbates. Atom *1 is bonded to the surface (*3). The image below shows a single bond, but single, double, and triple are possible. What matters is that the bond between *1 and *2 must be single. + # NOTE: we should probably include vdW, too! + + *1-*2=*3 *1 *2=*3 + | : ----> || | +~*4~ ~*5~~ ~*4~ + ~*5~~ + + +The rate, which should be in mol/m2/s, +will be given by k * (mol/m2) * (mol/m2) +so k should be in (m2/mol/s) +""" + +template(reactants=["Combined"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) + +reverse = "Surface_Association_vdW_Bidentate" + +reactantNum=1 +productNum=2 + +recipe(actions=[ + ['CHANGE_BOND', '*1', 1, '*4'], + ['BREAK_BOND', '*1', 1, '*2'], + ['CHANGE_BOND', '*3', 1, '*5'], + ['BREAK_BOND', '*3', 1, '*5'], + ['FORM_BOND', '*2', 1, '*5'], +]) + +entry( + index = 1, + label = "Combined", + group = +""" +1 *1 O u0 p2 {2,S} {4,S} +2 *2 R!H u0 {1,S} {3,D} +3 *3 O u0 p2 {2,D} {5,vdW} +4 *4 X u0 {1,S} +5 *5 X u0 {3,vdW} +""", + kinetics = None, +) + +tree( +""" +L1: Combined +""" +) diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/rules.py b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/rules.py new file mode 100644 index 0000000000..3d393f31f6 --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/rules.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW_Bidentate/rules" +shortDesc = u"" +longDesc = u""" +""" +entry( + index = 1, + label = "Combined", + kinetics = SurfaceArrheniusBEP( + A = (1e13, '1/s'), + n = 0, + alpha = 0.84, + E0 = (44.25, 'kcal/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + rank = 0, + shortDesc = u"""Default""", + longDesc = u""" +E0 and alpha are taken from: +"Universal Brønsted-Evans-Polanyi Relations for C–C, C–O, C–N, N–O, N–N, and O–O Dissociation Reactions" by Wang, ..., Norskov/ Catal. Lett (2011) 141:370-373, DOI: 10.1007/s10562-010-0477-y +(actual value for E0 was 1.92 eV.) +Pre-exponential coefficient is calculated from 1e13 s^-1 (standard guess from transition state theory) divided by 2.39e-9 mol cm^-2 (surface site density of Pt(111) + """ +) \ No newline at end of file diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.cdx b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.cdx new file mode 100644 index 0000000000000000000000000000000000000000..13de0590920afad0a4d39d443d779b5586fa4cb1 GIT binary patch literal 3407 zcmcImU2GIp6h3!mc6WAXx2-{tCIl|F(w1V`ZGqxw40KzmLQPW$8WI|&Whg8AQ+G#M z2=RunA~n>dh^y!ndt6Fbi_Ln@#Q+y;S0ykjHfNf z?ik%#)RYED9vTwApEw9p?R$l`c0!1-PFDC)NOnyXR`moR3=q==2t9;gY6y2CKp#nW zk#rwHG>FrBf*1nykSTuKEd8p)(P2 zfqFMYpu`U<@hO!&tc=w&($dd$X(R+e))n;Wk`{o~`IME`P^^aysf=Ba_uD(=P%dL- zK`&CmKu940A7h(-xb$Rczwvc=t~wTIQLm#BnE96I!B+gCGlFE%Qcp5U(~km;;#r<< z@s-spP<_H6k6$xxMx<&;wpQw|f_faPk+H>;I{c^hrMWl$RZl^b(uQ=Vbnn$*ZhLH1?s{Mas2 zo;9#^VO{bJ~)Hx zSDW&EwvXZ_0D59$$+w{D>p`F{2Ts%8EoW4Pk<4G=OGXo7#lC z2qR55(SOckL>(x>|VQTFduA47--2V#}xdICTB4krR)IlO%!Gc`qR`&dz?S;_IdzLaT zM^s@2qqjef@(wkD_#1Q~E)gLm3YC+|Po3t-fSAxcM)Uqhk=ZjmucP_7!~VR!^8S<4 z{GRqGZn*4M?~ERH!1#jwii7HY9`oYUduUvk%g#fWx<^#rH-Y9}!1ve<;L~|Uaq-v% z-q#F5)u`D)11v)H8|kQ(ZE++PuALvx+m3X$rwTG{jo9f9OaiX#*8sY)%ZZ?iGd4^I z(!rFZKa;2&L;VYs5LpONYlYBUy7U;*RoEfJsPKAa7?wRqX7P>tz3-UUyy={M&8OIb zMWDIg`HpQ8*B*bK^|!HO$gwt#4U4B6Uo1OTA>rxBF*=4ED+zR|H0_;Q?VaX(r$J%} z_kia9P{sW?b8lhpbP;Qklwoo0%u$~^$zAF&2aveaF*i<%?$g$xvrJpXTCCJk`(7{P zi(2gVCj99rP&}Yr5r%cg_ z5n6M#k6U6FXl`9OP3Pxr62}I6Sl`LxU9RCC1JK71UQ(k?PLI6_w~Y zm-lfB>C2RCti%+~nGuG^UOvG3J2(tA>e}S;rRFF6Fpx~TW!DdK80eTAhvBbXTXP$I z+M9&)ibvaI+BNEHRCyGy>evl?U-kd8uLay@q)n0U;p~wUls(G9bl$?#E#Q{2my_56 zHh;5)$xLDkAbAp7z~*nqIAMwZrv=2^RwPj8wjqkB4)jM!UjYir)Ec<9q8iYb(e(2N DS-?6D literal 0 HcmV?d00001 diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.eps b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.eps new file mode 100644 index 0000000000..18017e122c --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.eps @@ -0,0 +1,545 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: ChemDraw 17.1.0.105 +%%Title: template.eps +%%CreationDate: 6/4/2019 6:29 PM +%%DocumentSuppliedProcSets: chemdict30 24 13 +%%DocumentFonts: Helvetica Times-Roman +%%BoundingBox: 139 336 401 384 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%EndComments +%%BeginProcSet: chemdict30 24 13 +% ChemDraw Laser Prep +% © 1985-2018 PerkinElmer Informatics, Inc. All rights reserved. +userdict/chemdict30 210 dict put +chemdict30 begin/version 24 def/sv 13 def +/b{bind def}bind def/L{load def}b/R{null def}b/d/def L/a/add L/al/aload L +/as/astore L/at/atan L/cp/closepath L/cv/curveto L/cw/currentlinewidth L +/cpt/currentpoint L/dv/div L/D/dup L/e/exch L/F/false L/f/fill L/fa/forall L +/g/get L/gi/getinterval L/gr/grestore L/gs/gsave L/ie/ifelse L/ix/index L +/l/lineto L/mt/matrix L/M/moveto L/m/mul L/n/neg L/np/newpath L/pb/pathbbox L +/P/pop L/r/roll L/rl/rlineto L/rm/rmoveto L/ro/rotate L/rp/repeat L +/ru/round L/sc/scale L/sl/setlinewidth L/sm/setmatrix L/st/stroke L +/sp/strokepath L/sq/sqrt L/s/sub L/T/true L/tr/transform L/xl/translate L +/xc/exec L/A R/N R/St R/X R/Y R/aL R/bL R/bS R/bd R/bs R/cX R/cY R/ch R/co R +/fB R/fI R/fS R/fZ R/fl R/ft R/iX R/iY R/idx R/lh R/llx R/lly R/lp R/nH R +/nSq R/newdict R/ps R/rad R/rev R/sL R/sba R/sbl R/sbs R/sn R/spa R/tB R +/typ R/urx R/ury R/w R/wF R/xX R/xY R/rBg R/gBg R/bBg R/gry R/rDst R/gDst R +/bDst R/cpd R/Aeq R/Ath R/Aos R/Ach R/ed R/sf 20 d/cW 20 d/lW 20 d/bW 75 d +/wF 1.5 d/aF 11.875 d/aR 0.263 d/aA 50 d/hS 54 d/pA 32 d/sh F d/S{sf m}b +/dL{[hS] 0 setdash}b/o{1 ix}b/rot{3 -1 r}b/x{e d}b/CMT mt d/TM mt d +/SM{CMT sm}b/XY{X D m Y D m a sq}b/s1 1 string d/fp{T charpath flattenpath}b +/p{tr ru 0.25 a e ru 0.25 a e itransform}b/Wd{65536. dv}b +/C{Wd rot Wd rot Wd rot setrgbcolor}b +/setcmykcolor where{P/sk/setcmykcolor L}{/sk{4 1 r 3{3 ix a D 0 lt{P 0}if D 1\ + gt{P 1}if 1 e s 3 1 r}rp setrgbcolor P}b}ie/sg{D currenthsbcolor P rot seths\ +bcolor currenthsbcolor e P e P o s D m .001 gt{setgray}{P}ie}b +/sBg{65535 dv/bBg x 65535 dv/gBg x 65535 dv/rBg +x}b +/sRmp{currentrgbcolor bBg e s/bDst x gBg e s/gDst x rBg e s/rDst x}b +/dD{np 2 1 r 4 2 r xl 2 dv D sc -1 0 M 0 -1 l 1 0 l 0 1 l cp SM 0 ne{f}{lW 0.\ +8 m sl st}ie}b +/dM{gs np 3 1 r xl D sc 0 4 M 0 -8 rl 3.5 2 rm -7 4 rl 0 -4 rm 7 4 rl SM st g\ +r}b/dQ{gs np 0 360 arc 0.5 sg f gr}b +/dR{lW 0.8 m sl 2 ix s/Y x 2 ix s/X x xl Rr SM st}b +/dT{fp pb 3 1 r s 3 2 r s 2 1 r rm f}b/N 0 d/db{array/bs x/N 0 d}b +/B{bs N rot put/N N 1 a d}b +/SpA{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +aR aL m n D aL a 0 M 0 o n aA n aA arc cp f gr}b +/SpH{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +0 cw 2 dv xl +aR aL m n D aL a 0 M 0 o n aA n 0 arc cp f gr}b/Sp{/St x 0.316/aR x gs +aF lW m 0.8 m St 4 and 0 ne{bW m lW dv bW sl}if/aL x +St 8 and 0 ne{8 ix 8 ix 3 ix 3 ix SpA}if +St 16 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpA}if +St 32 and 0 ne{8 ix 8 ix 3 ix 3 ix SpH}if +St 64 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpH}if +St 2 and 0 ne{St 4 and 0 ne{[hS bW m lW dv] 0 setdash}{dL}ie}if +np M{cv}rp St 128 and 0 ne{f}{st}ie gr}b/Ha{gs np 3 1 r +xl D sc -.7 1.4 M 0.7 1.4 l -.7 2.4 M 0.7 2.4 l SM st gr}b +/OP{3 ix 3 ix xl 3 -1 r s 3 1 r +e s o o at ro D m e D m a sq}b +/OB{/bS x OP D bS dv D lW 2 m lt{P lW 2 m}if/bd x}b +/DA{np 0 0 M aL 0 aR aL m 180 aA s 180 aA a arc cp f}b +/OA{np 0 cw -2 dv M aL 0 aR aL m 180 aA s +180 arc 0 cw -2 dv rl cp f}b +/Ast{SM cw 0.8 m sl st}b/SA{aF m lW m/aL x 0.263/aR x aL 1 aR s m np 0 M + rad 0 l gs Ast gr}b +/CA{aF lW m 0.8 m/aL x 0.316/aR x aL 1 aR s m 2 dv rad D m o D m s D 0 le{P +P P}{sq at 2 +m np rad 0 rad 180 6 -1 r s 180 6 -1 r s arc gs Ast gr cpt +e at ro}ie}b/AA{np rad 0 rad 180 180 6 -1 r a arc gs SM st gr}b +/RA{lW m/w x np rad w M w .7 dv w l rad w n M w .7 dv w n l w + .35 dv w 2 m M 0 0 +l w .35 dv w -2 m l st}b +/HA{lW m/w x np 0 0 M w 2 m D l w 2 m w l rad w l rad w n l w 2 m +w n l w 2 m D n l cp st}b +/Ar1{gs 5 1 r OP/rad x{{2.25 SA DA}{1.5 SA DA}{1 SA DA}{lW 4 m sl 4.5 SA DA} +{lW 4 m sl 3 SA DA}{lW 4 m sl 2 SA +DA}{270 CA DA}{180 CA DA}{120 CA DA}{90 CA DA}{2.5 RA}{2.5 +HA}{1 -1 sc 270 CA DA}{1 -1 sc 180 CA DA}{1 -1 sc 120 CA DA}{1 -1 sc 90 CA +DA}{5 RA}{5 HA}{dL 2.25 SA DA}{dL 1.5 SA DA}{dL 1 SA DA}{2.25 SA OA}{1.5 SA +OA}{1 SA OA}{1 -1 sc 2.25 SA OA}{1 -1 sc 1.5 SA OA} +{1 -1 sc 1 SA OA}{270 CA OA}{180 CA OA}{120 CA OA}{90 CA OA}{1 -1 sc 270 CA +OA}{1 -1 sc 180 CA OA}{1 -1 sc 120 CA OA}{1 -1 sc 90 CA OA}{1 -1 sc 270 +AA}{1 -1 sc 180 AA}{1 -1 sc 120 AA}{1 -1 sc 90 AA}}e g xc +gr}b/ac{arcto 4{P}rp}b/rO{4 cw m}b/Cr{0 0 1 0 360 arc}b/Ac{XY D sc Cr SM}b +/OrA{Y X at ro XY D rev{neg}if sc}b/Ov{OrA 1 0.4 sc Cr SM}b +/Asc{OrA 1 27 dv D sc}b/LB{9 -6 M +21 -10 27 -8 27 0 cv +27 8 21 10 9 6 cv +-3 2 -3 -2 9 -6 cv +cp}b/DLB{0 0 M +0 0 -9.51 9.65 -9.51 18.02 cv +-9.51 23.22 -6.75 27 0 27 cv +6.75 27 9.51 23.22 9.51 18.02 cv +9.51 9.65 0 0 0 0 cv +cp}b/ZLB{LB}b +/dt{gs np M SM cpt np rot 4.5 dv 0 360 arc f gr}b +/whf{gs 1 setgray f gr SM st}b/blf{gs f gr SM st}b/Rr{0 rO M +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +0 0 0 Y rO ac +cp}b/Rc{0 0 M +0 Y l +X Y l +X 0 l +cp +}b/grf{gs 0.5 sg f gr SM st}b/gG{D 32 dv D m 1 e s/gry x +currentrgbcolor bDst gry m a 3 1 r gDst gry m a 3 1 r rDst gry m a 3 1 r +setrgbcolor}b/gS{dtransform CMT idtransform +m D 0 lt{n}if sq n D +CMT dtransform idtransform +e 2 m e +xl +7 m 32 a 256 dv D sc}b/gLB{sh{sRmp +32 -0.5 0.5{gs +gG +13.5 0 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv +gS +-13.5 0 xl +LB f +gr}for +LB SM st}{LB grf}ie}b/gOv{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv 0.65 m D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b/gAc{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b +/gDLB{sh{sRmp +32 -0.5 0.5{gs +gG +0 13.5 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv e +gS +0 -13.5 xl +DLB f +gr}for +DLB SM st}{DLB grf}ie}b/gRr{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rr f +gr}for +Rr SM st}{Rr grf}ie}b/gRc{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rc f +gr}for +Rc SM st}{Rc grf}ie}b/gZLB{gLB}b/Ath{Y X at ro XY 2 dv/rad x gs D SA DA gr + rad 2 m 0 xl 180 ro SA DA}b/Aeq{Y X at ro XY/rad x +rev{1 -1 sc}if +gs +0 lW 2 m xl +D SA OA +gr +rad 0 xl +180 ro +0 lW 2 m xl +SA OA}b/Aos{X Y M SM cpt xl XY e dv lW 1.667 m o o lt{e}if P D sc}b/Ach{5 Aos +gs/Helvetica findfont[1 0 0 -1 0 0]makefont 5.5 scalefont setfont +D stringwidth P 2 dv D 1 a/rad x +n 0 M show gr +rad 2 s -5 M +rad n -5 rad n 1 2 ac +rad n 1 rad 1 2 ac +rad 1 rad -5 2 ac +rad -5 rad n -5 2 ac +cp Ast}b/Ar{D 39 lt{Ar1} +{gs 5 1 r o o xl 3 -1 r e s 3 1 r s e +o 0 lt o 0 lt ne/rev x +D 0 lt{1 -1 sc neg}if/Y x D 0 lt{-1 1 sc neg} +if/X x np{{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M 0 0 l 0 Y l lp Y l +X lp s 0 M X 0 l X Y l X lp s Y l SM st}{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M +0 0 0 Y lp ac +0 Y 2 dv lp neg o lp ac +0 Y 2 dv 0 Y lp ac +0 Y lp Y lp ac +X lp s 0 M +X 0 X Y lp ac +X Y 2 dv X lp a o lp ac +X Y 2 dv X Y lp ac +X Y X lp s Y lp ac SM st}{Y D 2 dv Y 180 pA s 180 pA a arc st +np X Y s Y 2 dv +Y pA D neg arcn st}{Rc SM st}{X lW 2 dv a lW -2 dv M +rO D rl +X lW 2 dv a rO a Y lW 2 dv a rO a l +rO lW -2 dv a Y lW 2 dv a rO a l +lW -2 dv Y lW 2 dv a l +0 Y l X Y l X 0 l cp f +0 0 M +0 Y l +X Y l +X 0 l cp +SM st}{Rr SM st}{rO Y M rO rO xl +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +rO neg D xl X Y 0 Y rO ac +cp f +Rr st}{Ac st}{OrA gAc}{Ov st}{OrA 1 .4 sc gOv}{Asc LB whf}{Asc gLB} +{Asc gs gLB gr +-1 -1 sc LB whf}{Asc gs gLB gr +-0.4 -0.4 sc LB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc gLB}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro gs gDLB gr -1 -1 sc gDLB}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc gOv gr +ZLB whf}{Asc gs -1 -1 sc gZLB gr +gs 3.6 12 sc Cr whf gr +gZLB}{0 0 M X Y l SM st}{bW sl 0 0 M X Y l SM st} +{dL 0 0 M X Y l SM st}{OrA 1 16 dv D sc +0 -1 M +0 0 1 0 1 ac +8 0 8 1 1 ac +8 0 16 0 1 ac +16 0 16 -1 1 ac +SM st}{XY D 0 0 dt X Y dt}{XY 2 dv X Y dt}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +2 0 M 0 0 2 0 360 arc +Ast}{4.5 Aos +1 0 M -1 0 l +2 0 M 0 0 2 0 360 arc +Ast}{2.25 Ath}{1.5 Ath}{1 Ath}{2.25 Aeq}{1.5 Aeq}{1 Aeq}{OrA 1 16 dv D sc +0 -1 M 0 0 l 16 0 l 16 -1 l SM st}{5 Aos +1 -1 M -1 -1 l +0 2 M 0 -2 l +Ast}{5 Aos +1 -1 M -1 -1 l +1 1 M -1 1 l +0 2 M 0 -2 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{4.5 Aos +1 0 M -1 0 l +Ast}{gRc}{gRr}{Rc blf}{Rr blf}{Ac blf}{Ov blf}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro DLB -1 -1 sc DLB blf}{Asc gs -1 -1 sc ZLB blf gr +gs 3.6 12 sc Cr whf gr +ZLB blf}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc Cr blf gr +ZLB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc LB blf}{Asc LB gs f gr gs SM st gr +np -0.4 -0.4 sc LB whf}{Asc LB blf}{Asc LB gs f gr gs SM st gr +np -1 -1 sc LB whf}{Ac whf}{OrA gAc}{Ac blf}{Ov whf} +{OrA 1 .4 sc gOv}{Ov blf}{(Rac)Ach}{(Abs)Ach}{(Rel)Ach} +}e 39 s g xc gr}ie}b/DS{np M l st}b +/DD{gs dL DS gr}b/DB{gs 12 OB bW sl np 0 0 M 0 l st gr}b/ap{e 3 ix a +e 2 ix a}b/PT{D 2 4 gi al P OP D 1 sc +o length 6 gt{P 6 g}{e P 8 dv}ie +D lW 2 m lt{P lW 2 m}if +0 e +0 0 +3 -1 r s 3 1 r e s e +0 0 M 1 0 l +0 0 ap M 1 0 ap l +e n e n +0 0 ap M 1 0 ap l +P P}b/DT{gs np PT SM st gr}b +/NH{lW s D hS dv ru +cvi D 0 eq{P 1}if/nH x +D hS nH m s +D 0 lt{P .1 s nH dv}{nH 2 a dv D 0 xl 2 m s nH dv}ie}b +/Bd{D type/arraytype ne{bs e g}if{{P}{{{DS}{DD}{gs 12 OB np +bW 2 dv/bd x +lW 2 dv e D NH e{D bd M bd n l}for +st gr}{gs 12 OB np +lW 2 dv 0 xl NH 1 sc +bW 2 dv wF m nH 1 a dv/bd x +0 1 nH +{D 1 a bd m o o M n l}for SM st gr}{P}{DB}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp f gr}{P}{gs 12 OB/bL x +bW 2 dv D lW lt{P lW}if/bd x np 0 0 M +bL bd 4 m dv ru 2 o o lt{e}if P cvi/nSq x +bL nSq 2 m dv D sc +nSq{.135 .667 .865 .667 1 0 rcurveto +.135 -.667 .865 -.667 1 0 rcurveto}rp SM st gr}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp SM lW 0.8 m sl st gr}{P}{4 2 r gs OP/rad x 1 SA DA gr}{P} +}o 1 g 1 s g e 2 4 gi al P +5 -1 r xc}{al P 8 ix 1 eq{DD}{DS}ie 5 -1 r 2 eq{DB}{DS}ie P}{DT}}o 0 g g xc}b +/ed{gs cpt np cw 2 dv 0 360 arc f gr}b +/SPe{gs 0 e xl 1 1 S dv D n sc CMT currentmatrix P lW sl 4.0 setmiterlimit +np}b/ws{Wd 0 32 4 -1 roll widthshow}b/blank/Times-Roman findfont/CharStrings +g/space g d/mv 256 array d/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT +/FF/CR/SO/SI +/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US +mv 0 32 gi as P +mv 32/Times-Roman findfont/Encoding get +32 96 gi putinterval +mv 39/quotesingle put +mv 96/grave put/unknown/unknown/quotesinglbase/florin/quotedblbase/ellipsis +/dagger/daggerdbl +/circumflex/perthousand/Scaron/guilsinglleft/OE/unknown/unknown/unknown +/unknown/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash +/emdash +/tilde/trademark/scaron/guilsinglright/oe/unknown/unknown/Ydieresis +/blank/exclamdown/cent/sterling/currency/yen/brokenbar/section +/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered +/macron +/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph +/periodcentered +/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf +/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis +/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply +/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls +/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide +/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis +mv 128 128 gi as P/fSt 50 string d(ChemDraw)fSt copy P/fD{D/Symbol eq{ +findfont[1 0 0 -1 0 0]makefont}{D {findfont}stopped{/Helvetica findfont}if +D length dict/newdict x{ +1 index/FID ne{1 index/FontMatrix eq{[1 0 0 -1 0 0]matrix concatmatrix}if +newdict 3 1 r put}{P P}ie}forall +newdict/Encoding mv put +fSt 8 fSt length 8 sub gi cvs length 8 add +fSt 0 rot gi cvn newdict definefont}ie}b/ts{gs xl ro 0 0 M}b +/nl{0 e xl 0 0 M}b/tx{ft e g e sf m rot D 96 and 0 ne{ +64 and 0 ne{-0.5}{0.25}ie e 0.75 m}{P 0 e}ie +D 4 -1 r e scalefont setfont m cpt P e M}b +end +%%EndProcSet + +%%EndProlog +chemdict30 begin +/cW 40 def +/bW 80 def +/lW 20 def +/hS 54 def +/sh true def +720 SPe[ +/Helvetica +fD +/Times-Roman +fD]/ft x +2780 6720 M +8020 6720 l +8020 7680 l +2780 7680 l +cp +clip +np +65535 65535 65535 sBg +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +20 D sl/lW x +5577 7156 M +4871 7156 l +st +5015 7216 M +5721 7216 l +st +gs +20 sl +5751 7166 5751 7166 5751 +7166 5576 7166 5751 7166 5751 7166 5551 7104 5576 7133 5576 7166 5751 7166 +5551 7104 5551 7104 4 5751 7166 129 Sp +gr +gs +20 sl +4841 7206 4841 7206 4841 +7206 5041 7268 4841 7206 4841 7206 5016 7219 5041 7268 5041 7268 4841 7206 +5016 7206 5016 7206 4 4841 7206 129 Sp +gr +gr +0 4084 7600 ts +65535 0 65535 C +64 10 0 tx +(4)show +0 10 0 tx +(X)show +gr +0 3062 7000 ts +65535 0 0 C +-227.856 0 M +64 10 0 tx +(1)show +0 10 0 tx +(R)show +gr +0 3435 7000 ts +0 0 65535 C +64 10 0 tx +(2)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +3400 6912 M +3400 6932 l +3097 6932 l +3097 6912 l +cp +f +gr +0 3501 7563 ts +0 0 0 C +0 12 0 tx +0 0 0 C +(+)show +gr +0 2840 7600 ts +0 32896 0 C +64 10 0 tx +(3)show +0 10 0 tx +(X)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +3000 7376 M +2980 7376 l +2980 7040 l +3000 7040 l +cp +f +gr +0 7058 7563 ts +0 0 0 C +0 12 0 tx +0 0 0 C +(+)show +gr +0 6518 7000 ts +65535 0 0 C +-227.856 0 M +64 10 0 tx +(1)show +0 10 0 tx +(R)show +gr +0 6297 7600 ts +0 32896 0 C +64 10 0 tx +(3)show +0 10 0 tx +(X)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +6492 7376 M +6472 7376 l +6472 7040 l +6492 7040 l +cp +f +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +6420 7376 M +6400 7376 l +6400 7040 l +6420 7040 l +cp +f +gr +0 +7743 7600 ts +65535 0 65535 C +64 10 0 tx +(4)show +0 10 0 tx +(X)show +gr +0 7738 7000 ts +0 0 65535 C +64 10 0 tx +(2)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +7903 7377 M +7883 7377 l +7884 7040 l +7904 7040 l +cp +f +gr +gr +end +%%Trailer +showpage diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/dictionary.txt b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/dictionary.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/reactions.py b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/reactions.py new file mode 100644 index 0000000000..3a048fe6dc --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/reactions.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW_Bidentate/training" +shortDesc = u"Reaction kinetics used to generate rate rules" +longDesc = u""" +Put kinetic parameters for specific reactions in this file to use as a +training set for generating rate rules to populate this kinetics family. +""" \ No newline at end of file From 97f69faa95371a9e23a76fe0d6ca3d7c38782832 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Wed, 20 May 2026 21:59:54 -0400 Subject: [PATCH 03/25] create new family Surface_Dissociation_vdW_Bidentate_Beta --- .../groups.py | 57 ++ .../rules.py | 27 + .../template.cdx | Bin 0 -> 3407 bytes .../template.eps | 545 ++++++++++++++++++ .../training/dictionary.txt | 0 .../training/reactions.py | 9 + 6 files changed, 638 insertions(+) create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/groups.py create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/rules.py create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.cdx create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.eps create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/dictionary.txt create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/reactions.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/groups.py b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/groups.py new file mode 100644 index 0000000000..952a545835 --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/groups.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW_Bidentate_Beta/groups" +shortDesc = u"" +longDesc = u""" +Surface bond fission of one species into two distinct adsorbates. Atom *1 is bonded to the surface (*3). The image below shows a single bond, but single, double, and triple are possible. What matters is that the bond between *1 and *2 must be single. + # NOTE: we should probably include vdW, too! + + *4 + | + *1-*2=*3 *1=*2=*3 *4 + | : ----> | +~*5~ ~*6~~ ~*5~ + ~*6~~ + + +The rate, which should be in mol/m2/s, +will be given by k * (mol/m2) * (mol/m2) +so k should be in (m2/mol/s) +""" + +template(reactants=["Combined"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) + +reverse = "Surface_Association_vdW_Bidentate_Beta" + +reactantNum=1 +productNum=2 + +recipe(actions=[ + ['CHANGE_BOND', '*1', -1, '*5'], + ['CHANGE_BOND', '*1', 1, '*2'], + ['BREAK_BOND', '*2', 1, '*4'], + ['CHANGE_BOND', '*3', 1, '*6'], + ['BREAK_BOND', '*3', 1, '*6'], + ['FORM_BOND', '*4', 1, '*6'], +]) + +entry( + index = 1, + label = "Combined", + group = +""" +1 *1 O u0 p2 {2,S} {5,S} +2 *2 R!H u0 {1,S} {3,D} {4,S} +3 *3 O u0 p2 {2,D} {6,vdW} +4 *4 R u0 {2,S} +5 *5 X u0 {1,S} +6 *6 X u0 {3,vdW} +""", + kinetics = None, +) + +tree( +""" +L1: Combined +""" +) diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/rules.py b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/rules.py new file mode 100644 index 0000000000..f3730d91ba --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/rules.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW_Bidentate_Beta/rules" +shortDesc = u"" +longDesc = u""" +""" +entry( + index = 1, + label = "Combined", + kinetics = SurfaceArrheniusBEP( + A = (1e13, '1/s'), + n = 0, + alpha = 0.84, + E0 = (44.25, 'kcal/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + rank = 0, + shortDesc = u"""Default""", + longDesc = u""" +E0 and alpha are taken from: +"Universal Brønsted-Evans-Polanyi Relations for C–C, C–O, C–N, N–O, N–N, and O–O Dissociation Reactions" by Wang, ..., Norskov/ Catal. Lett (2011) 141:370-373, DOI: 10.1007/s10562-010-0477-y +(actual value for E0 was 1.92 eV.) +Pre-exponential coefficient is calculated from 1e13 s^-1 (standard guess from transition state theory) divided by 2.39e-9 mol cm^-2 (surface site density of Pt(111) + """ +) \ No newline at end of file diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.cdx b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.cdx new file mode 100644 index 0000000000000000000000000000000000000000..13de0590920afad0a4d39d443d779b5586fa4cb1 GIT binary patch literal 3407 zcmcImU2GIp6h3!mc6WAXx2-{tCIl|F(w1V`ZGqxw40KzmLQPW$8WI|&Whg8AQ+G#M z2=RunA~n>dh^y!ndt6Fbi_Ln@#Q+y;S0ykjHfNf z?ik%#)RYED9vTwApEw9p?R$l`c0!1-PFDC)NOnyXR`moR3=q==2t9;gY6y2CKp#nW zk#rwHG>FrBf*1nykSTuKEd8p)(P2 zfqFMYpu`U<@hO!&tc=w&($dd$X(R+e))n;Wk`{o~`IME`P^^aysf=Ba_uD(=P%dL- zK`&CmKu940A7h(-xb$Rczwvc=t~wTIQLm#BnE96I!B+gCGlFE%Qcp5U(~km;;#r<< z@s-spP<_H6k6$xxMx<&;wpQw|f_faPk+H>;I{c^hrMWl$RZl^b(uQ=Vbnn$*ZhLH1?s{Mas2 zo;9#^VO{bJ~)Hx zSDW&EwvXZ_0D59$$+w{D>p`F{2Ts%8EoW4Pk<4G=OGXo7#lC z2qR55(SOckL>(x>|VQTFduA47--2V#}xdICTB4krR)IlO%!Gc`qR`&dz?S;_IdzLaT zM^s@2qqjef@(wkD_#1Q~E)gLm3YC+|Po3t-fSAxcM)Uqhk=ZjmucP_7!~VR!^8S<4 z{GRqGZn*4M?~ERH!1#jwii7HY9`oYUduUvk%g#fWx<^#rH-Y9}!1ve<;L~|Uaq-v% z-q#F5)u`D)11v)H8|kQ(ZE++PuALvx+m3X$rwTG{jo9f9OaiX#*8sY)%ZZ?iGd4^I z(!rFZKa;2&L;VYs5LpONYlYBUy7U;*RoEfJsPKAa7?wRqX7P>tz3-UUyy={M&8OIb zMWDIg`HpQ8*B*bK^|!HO$gwt#4U4B6Uo1OTA>rxBF*=4ED+zR|H0_;Q?VaX(r$J%} z_kia9P{sW?b8lhpbP;Qklwoo0%u$~^$zAF&2aveaF*i<%?$g$xvrJpXTCCJk`(7{P zi(2gVCj99rP&}Yr5r%cg_ z5n6M#k6U6FXl`9OP3Pxr62}I6Sl`LxU9RCC1JK71UQ(k?PLI6_w~Y zm-lfB>C2RCti%+~nGuG^UOvG3J2(tA>e}S;rRFF6Fpx~TW!DdK80eTAhvBbXTXP$I z+M9&)ibvaI+BNEHRCyGy>evl?U-kd8uLay@q)n0U;p~wUls(G9bl$?#E#Q{2my_56 zHh;5)$xLDkAbAp7z~*nqIAMwZrv=2^RwPj8wjqkB4)jM!UjYir)Ec<9q8iYb(e(2N DS-?6D literal 0 HcmV?d00001 diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.eps b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.eps new file mode 100644 index 0000000000..18017e122c --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.eps @@ -0,0 +1,545 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: ChemDraw 17.1.0.105 +%%Title: template.eps +%%CreationDate: 6/4/2019 6:29 PM +%%DocumentSuppliedProcSets: chemdict30 24 13 +%%DocumentFonts: Helvetica Times-Roman +%%BoundingBox: 139 336 401 384 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%EndComments +%%BeginProcSet: chemdict30 24 13 +% ChemDraw Laser Prep +% © 1985-2018 PerkinElmer Informatics, Inc. All rights reserved. +userdict/chemdict30 210 dict put +chemdict30 begin/version 24 def/sv 13 def +/b{bind def}bind def/L{load def}b/R{null def}b/d/def L/a/add L/al/aload L +/as/astore L/at/atan L/cp/closepath L/cv/curveto L/cw/currentlinewidth L +/cpt/currentpoint L/dv/div L/D/dup L/e/exch L/F/false L/f/fill L/fa/forall L +/g/get L/gi/getinterval L/gr/grestore L/gs/gsave L/ie/ifelse L/ix/index L +/l/lineto L/mt/matrix L/M/moveto L/m/mul L/n/neg L/np/newpath L/pb/pathbbox L +/P/pop L/r/roll L/rl/rlineto L/rm/rmoveto L/ro/rotate L/rp/repeat L +/ru/round L/sc/scale L/sl/setlinewidth L/sm/setmatrix L/st/stroke L +/sp/strokepath L/sq/sqrt L/s/sub L/T/true L/tr/transform L/xl/translate L +/xc/exec L/A R/N R/St R/X R/Y R/aL R/bL R/bS R/bd R/bs R/cX R/cY R/ch R/co R +/fB R/fI R/fS R/fZ R/fl R/ft R/iX R/iY R/idx R/lh R/llx R/lly R/lp R/nH R +/nSq R/newdict R/ps R/rad R/rev R/sL R/sba R/sbl R/sbs R/sn R/spa R/tB R +/typ R/urx R/ury R/w R/wF R/xX R/xY R/rBg R/gBg R/bBg R/gry R/rDst R/gDst R +/bDst R/cpd R/Aeq R/Ath R/Aos R/Ach R/ed R/sf 20 d/cW 20 d/lW 20 d/bW 75 d +/wF 1.5 d/aF 11.875 d/aR 0.263 d/aA 50 d/hS 54 d/pA 32 d/sh F d/S{sf m}b +/dL{[hS] 0 setdash}b/o{1 ix}b/rot{3 -1 r}b/x{e d}b/CMT mt d/TM mt d +/SM{CMT sm}b/XY{X D m Y D m a sq}b/s1 1 string d/fp{T charpath flattenpath}b +/p{tr ru 0.25 a e ru 0.25 a e itransform}b/Wd{65536. dv}b +/C{Wd rot Wd rot Wd rot setrgbcolor}b +/setcmykcolor where{P/sk/setcmykcolor L}{/sk{4 1 r 3{3 ix a D 0 lt{P 0}if D 1\ + gt{P 1}if 1 e s 3 1 r}rp setrgbcolor P}b}ie/sg{D currenthsbcolor P rot seths\ +bcolor currenthsbcolor e P e P o s D m .001 gt{setgray}{P}ie}b +/sBg{65535 dv/bBg x 65535 dv/gBg x 65535 dv/rBg +x}b +/sRmp{currentrgbcolor bBg e s/bDst x gBg e s/gDst x rBg e s/rDst x}b +/dD{np 2 1 r 4 2 r xl 2 dv D sc -1 0 M 0 -1 l 1 0 l 0 1 l cp SM 0 ne{f}{lW 0.\ +8 m sl st}ie}b +/dM{gs np 3 1 r xl D sc 0 4 M 0 -8 rl 3.5 2 rm -7 4 rl 0 -4 rm 7 4 rl SM st g\ +r}b/dQ{gs np 0 360 arc 0.5 sg f gr}b +/dR{lW 0.8 m sl 2 ix s/Y x 2 ix s/X x xl Rr SM st}b +/dT{fp pb 3 1 r s 3 2 r s 2 1 r rm f}b/N 0 d/db{array/bs x/N 0 d}b +/B{bs N rot put/N N 1 a d}b +/SpA{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +aR aL m n D aL a 0 M 0 o n aA n aA arc cp f gr}b +/SpH{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +0 cw 2 dv xl +aR aL m n D aL a 0 M 0 o n aA n 0 arc cp f gr}b/Sp{/St x 0.316/aR x gs +aF lW m 0.8 m St 4 and 0 ne{bW m lW dv bW sl}if/aL x +St 8 and 0 ne{8 ix 8 ix 3 ix 3 ix SpA}if +St 16 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpA}if +St 32 and 0 ne{8 ix 8 ix 3 ix 3 ix SpH}if +St 64 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpH}if +St 2 and 0 ne{St 4 and 0 ne{[hS bW m lW dv] 0 setdash}{dL}ie}if +np M{cv}rp St 128 and 0 ne{f}{st}ie gr}b/Ha{gs np 3 1 r +xl D sc -.7 1.4 M 0.7 1.4 l -.7 2.4 M 0.7 2.4 l SM st gr}b +/OP{3 ix 3 ix xl 3 -1 r s 3 1 r +e s o o at ro D m e D m a sq}b +/OB{/bS x OP D bS dv D lW 2 m lt{P lW 2 m}if/bd x}b +/DA{np 0 0 M aL 0 aR aL m 180 aA s 180 aA a arc cp f}b +/OA{np 0 cw -2 dv M aL 0 aR aL m 180 aA s +180 arc 0 cw -2 dv rl cp f}b +/Ast{SM cw 0.8 m sl st}b/SA{aF m lW m/aL x 0.263/aR x aL 1 aR s m np 0 M + rad 0 l gs Ast gr}b +/CA{aF lW m 0.8 m/aL x 0.316/aR x aL 1 aR s m 2 dv rad D m o D m s D 0 le{P +P P}{sq at 2 +m np rad 0 rad 180 6 -1 r s 180 6 -1 r s arc gs Ast gr cpt +e at ro}ie}b/AA{np rad 0 rad 180 180 6 -1 r a arc gs SM st gr}b +/RA{lW m/w x np rad w M w .7 dv w l rad w n M w .7 dv w n l w + .35 dv w 2 m M 0 0 +l w .35 dv w -2 m l st}b +/HA{lW m/w x np 0 0 M w 2 m D l w 2 m w l rad w l rad w n l w 2 m +w n l w 2 m D n l cp st}b +/Ar1{gs 5 1 r OP/rad x{{2.25 SA DA}{1.5 SA DA}{1 SA DA}{lW 4 m sl 4.5 SA DA} +{lW 4 m sl 3 SA DA}{lW 4 m sl 2 SA +DA}{270 CA DA}{180 CA DA}{120 CA DA}{90 CA DA}{2.5 RA}{2.5 +HA}{1 -1 sc 270 CA DA}{1 -1 sc 180 CA DA}{1 -1 sc 120 CA DA}{1 -1 sc 90 CA +DA}{5 RA}{5 HA}{dL 2.25 SA DA}{dL 1.5 SA DA}{dL 1 SA DA}{2.25 SA OA}{1.5 SA +OA}{1 SA OA}{1 -1 sc 2.25 SA OA}{1 -1 sc 1.5 SA OA} +{1 -1 sc 1 SA OA}{270 CA OA}{180 CA OA}{120 CA OA}{90 CA OA}{1 -1 sc 270 CA +OA}{1 -1 sc 180 CA OA}{1 -1 sc 120 CA OA}{1 -1 sc 90 CA OA}{1 -1 sc 270 +AA}{1 -1 sc 180 AA}{1 -1 sc 120 AA}{1 -1 sc 90 AA}}e g xc +gr}b/ac{arcto 4{P}rp}b/rO{4 cw m}b/Cr{0 0 1 0 360 arc}b/Ac{XY D sc Cr SM}b +/OrA{Y X at ro XY D rev{neg}if sc}b/Ov{OrA 1 0.4 sc Cr SM}b +/Asc{OrA 1 27 dv D sc}b/LB{9 -6 M +21 -10 27 -8 27 0 cv +27 8 21 10 9 6 cv +-3 2 -3 -2 9 -6 cv +cp}b/DLB{0 0 M +0 0 -9.51 9.65 -9.51 18.02 cv +-9.51 23.22 -6.75 27 0 27 cv +6.75 27 9.51 23.22 9.51 18.02 cv +9.51 9.65 0 0 0 0 cv +cp}b/ZLB{LB}b +/dt{gs np M SM cpt np rot 4.5 dv 0 360 arc f gr}b +/whf{gs 1 setgray f gr SM st}b/blf{gs f gr SM st}b/Rr{0 rO M +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +0 0 0 Y rO ac +cp}b/Rc{0 0 M +0 Y l +X Y l +X 0 l +cp +}b/grf{gs 0.5 sg f gr SM st}b/gG{D 32 dv D m 1 e s/gry x +currentrgbcolor bDst gry m a 3 1 r gDst gry m a 3 1 r rDst gry m a 3 1 r +setrgbcolor}b/gS{dtransform CMT idtransform +m D 0 lt{n}if sq n D +CMT dtransform idtransform +e 2 m e +xl +7 m 32 a 256 dv D sc}b/gLB{sh{sRmp +32 -0.5 0.5{gs +gG +13.5 0 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv +gS +-13.5 0 xl +LB f +gr}for +LB SM st}{LB grf}ie}b/gOv{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv 0.65 m D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b/gAc{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b +/gDLB{sh{sRmp +32 -0.5 0.5{gs +gG +0 13.5 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv e +gS +0 -13.5 xl +DLB f +gr}for +DLB SM st}{DLB grf}ie}b/gRr{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rr f +gr}for +Rr SM st}{Rr grf}ie}b/gRc{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rc f +gr}for +Rc SM st}{Rc grf}ie}b/gZLB{gLB}b/Ath{Y X at ro XY 2 dv/rad x gs D SA DA gr + rad 2 m 0 xl 180 ro SA DA}b/Aeq{Y X at ro XY/rad x +rev{1 -1 sc}if +gs +0 lW 2 m xl +D SA OA +gr +rad 0 xl +180 ro +0 lW 2 m xl +SA OA}b/Aos{X Y M SM cpt xl XY e dv lW 1.667 m o o lt{e}if P D sc}b/Ach{5 Aos +gs/Helvetica findfont[1 0 0 -1 0 0]makefont 5.5 scalefont setfont +D stringwidth P 2 dv D 1 a/rad x +n 0 M show gr +rad 2 s -5 M +rad n -5 rad n 1 2 ac +rad n 1 rad 1 2 ac +rad 1 rad -5 2 ac +rad -5 rad n -5 2 ac +cp Ast}b/Ar{D 39 lt{Ar1} +{gs 5 1 r o o xl 3 -1 r e s 3 1 r s e +o 0 lt o 0 lt ne/rev x +D 0 lt{1 -1 sc neg}if/Y x D 0 lt{-1 1 sc neg} +if/X x np{{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M 0 0 l 0 Y l lp Y l +X lp s 0 M X 0 l X Y l X lp s Y l SM st}{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M +0 0 0 Y lp ac +0 Y 2 dv lp neg o lp ac +0 Y 2 dv 0 Y lp ac +0 Y lp Y lp ac +X lp s 0 M +X 0 X Y lp ac +X Y 2 dv X lp a o lp ac +X Y 2 dv X Y lp ac +X Y X lp s Y lp ac SM st}{Y D 2 dv Y 180 pA s 180 pA a arc st +np X Y s Y 2 dv +Y pA D neg arcn st}{Rc SM st}{X lW 2 dv a lW -2 dv M +rO D rl +X lW 2 dv a rO a Y lW 2 dv a rO a l +rO lW -2 dv a Y lW 2 dv a rO a l +lW -2 dv Y lW 2 dv a l +0 Y l X Y l X 0 l cp f +0 0 M +0 Y l +X Y l +X 0 l cp +SM st}{Rr SM st}{rO Y M rO rO xl +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +rO neg D xl X Y 0 Y rO ac +cp f +Rr st}{Ac st}{OrA gAc}{Ov st}{OrA 1 .4 sc gOv}{Asc LB whf}{Asc gLB} +{Asc gs gLB gr +-1 -1 sc LB whf}{Asc gs gLB gr +-0.4 -0.4 sc LB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc gLB}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro gs gDLB gr -1 -1 sc gDLB}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc gOv gr +ZLB whf}{Asc gs -1 -1 sc gZLB gr +gs 3.6 12 sc Cr whf gr +gZLB}{0 0 M X Y l SM st}{bW sl 0 0 M X Y l SM st} +{dL 0 0 M X Y l SM st}{OrA 1 16 dv D sc +0 -1 M +0 0 1 0 1 ac +8 0 8 1 1 ac +8 0 16 0 1 ac +16 0 16 -1 1 ac +SM st}{XY D 0 0 dt X Y dt}{XY 2 dv X Y dt}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +2 0 M 0 0 2 0 360 arc +Ast}{4.5 Aos +1 0 M -1 0 l +2 0 M 0 0 2 0 360 arc +Ast}{2.25 Ath}{1.5 Ath}{1 Ath}{2.25 Aeq}{1.5 Aeq}{1 Aeq}{OrA 1 16 dv D sc +0 -1 M 0 0 l 16 0 l 16 -1 l SM st}{5 Aos +1 -1 M -1 -1 l +0 2 M 0 -2 l +Ast}{5 Aos +1 -1 M -1 -1 l +1 1 M -1 1 l +0 2 M 0 -2 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{4.5 Aos +1 0 M -1 0 l +Ast}{gRc}{gRr}{Rc blf}{Rr blf}{Ac blf}{Ov blf}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro DLB -1 -1 sc DLB blf}{Asc gs -1 -1 sc ZLB blf gr +gs 3.6 12 sc Cr whf gr +ZLB blf}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc Cr blf gr +ZLB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc LB blf}{Asc LB gs f gr gs SM st gr +np -0.4 -0.4 sc LB whf}{Asc LB blf}{Asc LB gs f gr gs SM st gr +np -1 -1 sc LB whf}{Ac whf}{OrA gAc}{Ac blf}{Ov whf} +{OrA 1 .4 sc gOv}{Ov blf}{(Rac)Ach}{(Abs)Ach}{(Rel)Ach} +}e 39 s g xc gr}ie}b/DS{np M l st}b +/DD{gs dL DS gr}b/DB{gs 12 OB bW sl np 0 0 M 0 l st gr}b/ap{e 3 ix a +e 2 ix a}b/PT{D 2 4 gi al P OP D 1 sc +o length 6 gt{P 6 g}{e P 8 dv}ie +D lW 2 m lt{P lW 2 m}if +0 e +0 0 +3 -1 r s 3 1 r e s e +0 0 M 1 0 l +0 0 ap M 1 0 ap l +e n e n +0 0 ap M 1 0 ap l +P P}b/DT{gs np PT SM st gr}b +/NH{lW s D hS dv ru +cvi D 0 eq{P 1}if/nH x +D hS nH m s +D 0 lt{P .1 s nH dv}{nH 2 a dv D 0 xl 2 m s nH dv}ie}b +/Bd{D type/arraytype ne{bs e g}if{{P}{{{DS}{DD}{gs 12 OB np +bW 2 dv/bd x +lW 2 dv e D NH e{D bd M bd n l}for +st gr}{gs 12 OB np +lW 2 dv 0 xl NH 1 sc +bW 2 dv wF m nH 1 a dv/bd x +0 1 nH +{D 1 a bd m o o M n l}for SM st gr}{P}{DB}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp f gr}{P}{gs 12 OB/bL x +bW 2 dv D lW lt{P lW}if/bd x np 0 0 M +bL bd 4 m dv ru 2 o o lt{e}if P cvi/nSq x +bL nSq 2 m dv D sc +nSq{.135 .667 .865 .667 1 0 rcurveto +.135 -.667 .865 -.667 1 0 rcurveto}rp SM st gr}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp SM lW 0.8 m sl st gr}{P}{4 2 r gs OP/rad x 1 SA DA gr}{P} +}o 1 g 1 s g e 2 4 gi al P +5 -1 r xc}{al P 8 ix 1 eq{DD}{DS}ie 5 -1 r 2 eq{DB}{DS}ie P}{DT}}o 0 g g xc}b +/ed{gs cpt np cw 2 dv 0 360 arc f gr}b +/SPe{gs 0 e xl 1 1 S dv D n sc CMT currentmatrix P lW sl 4.0 setmiterlimit +np}b/ws{Wd 0 32 4 -1 roll widthshow}b/blank/Times-Roman findfont/CharStrings +g/space g d/mv 256 array d/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT +/FF/CR/SO/SI +/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US +mv 0 32 gi as P +mv 32/Times-Roman findfont/Encoding get +32 96 gi putinterval +mv 39/quotesingle put +mv 96/grave put/unknown/unknown/quotesinglbase/florin/quotedblbase/ellipsis +/dagger/daggerdbl +/circumflex/perthousand/Scaron/guilsinglleft/OE/unknown/unknown/unknown +/unknown/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash +/emdash +/tilde/trademark/scaron/guilsinglright/oe/unknown/unknown/Ydieresis +/blank/exclamdown/cent/sterling/currency/yen/brokenbar/section +/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered +/macron +/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph +/periodcentered +/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf +/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis +/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply +/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls +/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide +/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis +mv 128 128 gi as P/fSt 50 string d(ChemDraw)fSt copy P/fD{D/Symbol eq{ +findfont[1 0 0 -1 0 0]makefont}{D {findfont}stopped{/Helvetica findfont}if +D length dict/newdict x{ +1 index/FID ne{1 index/FontMatrix eq{[1 0 0 -1 0 0]matrix concatmatrix}if +newdict 3 1 r put}{P P}ie}forall +newdict/Encoding mv put +fSt 8 fSt length 8 sub gi cvs length 8 add +fSt 0 rot gi cvn newdict definefont}ie}b/ts{gs xl ro 0 0 M}b +/nl{0 e xl 0 0 M}b/tx{ft e g e sf m rot D 96 and 0 ne{ +64 and 0 ne{-0.5}{0.25}ie e 0.75 m}{P 0 e}ie +D 4 -1 r e scalefont setfont m cpt P e M}b +end +%%EndProcSet + +%%EndProlog +chemdict30 begin +/cW 40 def +/bW 80 def +/lW 20 def +/hS 54 def +/sh true def +720 SPe[ +/Helvetica +fD +/Times-Roman +fD]/ft x +2780 6720 M +8020 6720 l +8020 7680 l +2780 7680 l +cp +clip +np +65535 65535 65535 sBg +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +20 D sl/lW x +5577 7156 M +4871 7156 l +st +5015 7216 M +5721 7216 l +st +gs +20 sl +5751 7166 5751 7166 5751 +7166 5576 7166 5751 7166 5751 7166 5551 7104 5576 7133 5576 7166 5751 7166 +5551 7104 5551 7104 4 5751 7166 129 Sp +gr +gs +20 sl +4841 7206 4841 7206 4841 +7206 5041 7268 4841 7206 4841 7206 5016 7219 5041 7268 5041 7268 4841 7206 +5016 7206 5016 7206 4 4841 7206 129 Sp +gr +gr +0 4084 7600 ts +65535 0 65535 C +64 10 0 tx +(4)show +0 10 0 tx +(X)show +gr +0 3062 7000 ts +65535 0 0 C +-227.856 0 M +64 10 0 tx +(1)show +0 10 0 tx +(R)show +gr +0 3435 7000 ts +0 0 65535 C +64 10 0 tx +(2)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +3400 6912 M +3400 6932 l +3097 6932 l +3097 6912 l +cp +f +gr +0 3501 7563 ts +0 0 0 C +0 12 0 tx +0 0 0 C +(+)show +gr +0 2840 7600 ts +0 32896 0 C +64 10 0 tx +(3)show +0 10 0 tx +(X)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +3000 7376 M +2980 7376 l +2980 7040 l +3000 7040 l +cp +f +gr +0 7058 7563 ts +0 0 0 C +0 12 0 tx +0 0 0 C +(+)show +gr +0 6518 7000 ts +65535 0 0 C +-227.856 0 M +64 10 0 tx +(1)show +0 10 0 tx +(R)show +gr +0 6297 7600 ts +0 32896 0 C +64 10 0 tx +(3)show +0 10 0 tx +(X)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +6492 7376 M +6472 7376 l +6472 7040 l +6492 7040 l +cp +f +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +6420 7376 M +6400 7376 l +6400 7040 l +6420 7040 l +cp +f +gr +0 +7743 7600 ts +65535 0 65535 C +64 10 0 tx +(4)show +0 10 0 tx +(X)show +gr +0 7738 7000 ts +0 0 65535 C +64 10 0 tx +(2)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +7903 7377 M +7883 7377 l +7884 7040 l +7904 7040 l +cp +f +gr +gr +end +%%Trailer +showpage diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/dictionary.txt b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/dictionary.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/reactions.py b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/reactions.py new file mode 100644 index 0000000000..28c954e974 --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/reactions.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW_Bidentate_Beta/training" +shortDesc = u"Reaction kinetics used to generate rate rules" +longDesc = u""" +Put kinetic parameters for specific reactions in this file to use as a +training set for generating rate rules to populate this kinetics family. +""" \ No newline at end of file From 7f5a1373f102b2d017c05d7fa183d526d8a2b0f8 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Wed, 20 May 2026 22:01:29 -0400 Subject: [PATCH 04/25] create new family Surface_Abstraction_vdW_Bidentate_Beta --- .../groups.py | 68 ++ .../rules.py | 27 + .../template.cdx | Bin 0 -> 4335 bytes .../template.eps | 669 ++++++++++++++++++ .../training/dictionary.txt | 0 .../training/reactions.py | 3 + 6 files changed, 767 insertions(+) create mode 100755 input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/groups.py create mode 100644 input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/rules.py create mode 100755 input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.cdx create mode 100755 input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.eps create mode 100644 input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/dictionary.txt create mode 100644 input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/reactions.py diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/groups.py b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/groups.py new file mode 100755 index 0000000000..392f689ed9 --- /dev/null +++ b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/groups.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Abstraction_vdW_Bidentate_Beta/groups" +shortDesc = u"" +longDesc = u""" +Surface abstraction of one atom to another adsorbate. The bond fission occurs not at the binding atom, but in the beta position of the adsorbate, that is the bond between Atom *2 and *3 is broken. Atom *1 is bonded to the surface (*5). The bond order between *1/*3 and the surface decreases. An example for this reaction is: COH* + CH2* = CO* + CH3*. The bond between *2 and *3 must be single. + + *4 + | + *1-*2=*3 *7 *1=*2=*3 *7-*4 + | : || ----> | +~*5~ +~*6~ + ~*8~~ ~*5~ + ~*8~~ + ~*6~ + +The rate, which should be in mol/m2/s, +will be given by k * (mol/m2) * (mol/m2) +so k should be in (m2/mol/s). +""" + +template(reactants=["Donating", "Abstracting"], products=["Adsorbate2","Adsorbate3", "VacantSite"], ownReverse=False) + +reverse = "Surface_Abstraction_vdW_Bidentate_reverse_Beta" + +reactantNum=2 +productNum=3 + +recipe(actions=[ + ['FORM_BOND', '*4', 1, '*7'], + ['CHANGE_BOND', '*7', -1, '*8'], + ['CHANGE_BOND', '*1', -1, '*5'], + ['CHANGE_BOND', '*1', 1, '*2'], + ['CHANGE_BOND', '*3', 1, '*6'], + ['BREAK_BOND', '*3', 1, '*6'], + ['BREAK_BOND', '*2', 1, '*4'], +]) + +entry( + index = 1, + label = "Donating", + group = +""" +1 *1 O u0 p2 {2,S} {5,S} +2 *2 R!H u0 {1,S} {3,D} {4,S} +3 *3 O u0 p2 {2,D} {6,vdW} +4 *4 R u0 {2,S} +5 *5 X u0 {1,S} +6 *6 X u0 {3,vdW} +""", + kinetics = None, +) + +entry( + index = 2, + label="Abstracting", + group = +""" +1 *8 Xo u0 {2,[D,T,Q]} +2 *7 R!H u0 px c0 {1,[D,T,Q]} +""", + kinetics = None, +) + +tree( +""" +L1: Abstracting +L1: Donating +""" +) \ No newline at end of file diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/rules.py b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/rules.py new file mode 100644 index 0000000000..5ec08aa9be --- /dev/null +++ b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/rules.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Abstraction_vdW_Bidentate_Beta/rules" +shortDesc = u"" +longDesc = u""" +""" + +entry( + index = 1, + label = "Abstracting;Donating", + kinetics = SurfaceArrheniusBEP( + A = (4.18e17, 'm^2/(mol*s)'), + n = 0., + alpha = 0.94, + E0 = (129.3, 'kJ/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + rank = 0, + shortDesc = u"""Default""", + longDesc = u""" +These numbers for the general BEP are from the abstraction reaction of C-H to O. +BEP values from "Combined DFT, Microkinetic, and Experimental Study of Ethanol Steam Reforming on Pt", Sutton et al., The Journal of Physical Chemistry C, 2013, 117, 4691-4706, DOI:10.1021/jp312593u +From Table 7 includes beta and alpha position. Pre-exponential coefficient is calculated from 1e13 s^-1 (standard guess from transition state theory) divided by 2.39e-9 mol cm^-2 (surface site density of Pt(111) +""" +) diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.cdx b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.cdx new file mode 100755 index 0000000000000000000000000000000000000000..5c379c196cdc758fa2312c1c40b91f793d86faaf GIT binary patch literal 4335 zcmcInYitx%6h3!$wmZACeHcxpKHx$tEfh*$Kpl($N=p?=NU8V;)NaerE^K$p?jYN$ zbtFb>Q8d9s;|q{bO^k^KP_YG35KzEZHOAi<#h6gg_=gzlIcImLEnt7(I?0}U?z!il z``z=J+0`4Wmz0*3mZ~mA!02NW>w+7QR=1lSOQL}-vaG74yri_GvPy$2lv`#;XDDEq zC9Uh?s*(dE!;RvF6&oP_)MFxlZ@&;;jg0W4F#ji>V5{H-$kYS~&4a{Hkt{$0HN@RP z+}%X{892=*l8FQsldPJ^5+Yfe0xv5*O+%2)a1yDGyo!fiK;EmVP_a(|4MzY4JUj}> z;86uPkCQ<~D{*k~EDrey%I!x2MFejKk(orwNmh)cXciLRY?76bOwn@Ce!;k(a4B>q zQdDr=2|gI%2Zi{Ij3j7k96uu|{cM{?q9Dk+f_M5!b;F`)Fc4Ca&4$KchZ&PA%q_AZ z(h&%Q7N>ZDkU|1J`g(2G$P**I`dRNJSDU-g^%oj}v8x0R*5MB?BZwD;*~B9^`Y4bm zp66+^BOI@R;{7_^_<){DmSAfjBx@tlj?JNfA>Y?2S!&{eR!i0gVlhL0z?$`uklBhF zQF*T!Y-_g+`JwJX&5k+UhCHa}(x#BvVTLWVwkRA3b;W|X`6K;0Tv;3mhJxWXxiS(A zJ)zP5EfEqDf4S8t1aAnj)n}>A@qocVx5;Ek+EL$3EX^F|2uo-RZ zGUO2*Qx}#;@LWTFqG#ZwzQK^6>ePps=)=$1!(TAf{ghcgKZe0e#P4^b*`oXz z!u}dPO_k_8N4~xti@MFrW9# zVLBJ73+6FR>@P)rqpJ+*C8$6;OL!DNq)w)LYBWa#goNgqG_QLIkv+%rESjI(<;=5F z>!%L#I_*(xZ_0BQMtfM{v;n@?ba2_PUba5m)FW={*~9DQpxVD>k{J!2j;|5h@}exC z2EwIsOUi-ixa{=N)l9;$=v@>d2(rORJWGK*LhDtC9s9C21%*QS#GHjf&;o+uc zQLt}wBD_hEDOu_m>R%%Qo9c+-Av11dUErBSm5^WkTmVC+=sw)vO?Rd`n_ zJAMJ&l`6P^6^w)>)?7GZ$<9bD7HkQba(yH^rV=R?@hYB7qF6GC?}}m^u^ZGPw$vBT z?6(YY9+UZTwTZjsEKuznT&IfajdzQ-_QfnOV&|u+qUgXg=M6z12C$-tC)usXYXrrZ zj+r>dSF5O{4(v6eAeMk#%&@T^rK6(GV;Uav*D`GST1@yZA^VR_?8zi{YQPsCe1Kg( zo3W>{8(iGkz}NvBF!5AY6nDZ-$4u<VHfBTefkf4;5<<6A?KylExvnah~-n+XY?JG zmJZq@jLOr=RupAE1%iA=$4u-q50+ozedU39$;SUCUMuyky|g|7doIJKud}qkZf1Xt z_gyplj$qR<6T|j8u)R>3?4WN`gfP_eId0^8iW^_%vQVRWjNZG+=uxs+KW`NS#gFpe zDzb4qsCI7B4foV^iH@avIOAueGkSF3(3w{_<4+H6Vm<}p+M|~@CVEzXAH$x>u+#Yd zBY#o!Qof@?RhMn&LcNyvpK8B12KEj}c)KdyNw;HR!rN4^#1m}(Cwh*mSAqVzj6VMWSWV+F literal 0 HcmV?d00001 diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.eps b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.eps new file mode 100755 index 0000000000..fab2430dea --- /dev/null +++ b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.eps @@ -0,0 +1,669 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: ChemDraw 18.2.0.48 +%%Title: template.eps +%%CreationDate: 26.08.2021 10:30 +%%DocumentSuppliedProcSets: chemdict30 24 13 +%%DocumentFonts: Helvetica Times-Roman +%%BoundingBox: 104 338 425 386 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%%EndComments +%%BeginProcSet: chemdict30 24 13 +% ChemDraw Laser Prep +% © 1985-2019 PerkinElmer Informatics, Inc. All rights reserved. +userdict/chemdict30 210 dict put +chemdict30 begin/version 24 def/sv 13 def +/b{bind def}bind def/L{load def}b/R{null def}b/d/def L/a/add L/al/aload L +/as/astore L/at/atan L/cp/closepath L/cv/curveto L/cw/currentlinewidth L +/cpt/currentpoint L/dv/div L/D/dup L/e/exch L/F/false L/f/fill L/fa/forall L +/g/get L/gi/getinterval L/gr/grestore L/gs/gsave L/ie/ifelse L/ix/index L +/l/lineto L/mt/matrix L/M/moveto L/m/mul L/n/neg L/np/newpath L/pb/pathbbox L +/P/pop L/r/roll L/rl/rlineto L/rm/rmoveto L/ro/rotate L/rp/repeat L +/ru/round L/sc/scale L/sl/setlinewidth L/sm/setmatrix L/st/stroke L +/sp/strokepath L/sq/sqrt L/s/sub L/T/true L/tr/transform L/xl/translate L +/xc/exec L/A R/N R/St R/X R/Y R/aL R/bL R/bS R/bd R/bs R/cX R/cY R/ch R/co R +/fB R/fI R/fS R/fZ R/fl R/ft R/iX R/iY R/idx R/lh R/llx R/lly R/lp R/nH R +/nSq R/newdict R/ps R/rad R/rev R/sL R/sba R/sbl R/sbs R/sn R/spa R/tB R +/typ R/urx R/ury R/w R/wF R/xX R/xY R/rBg R/gBg R/bBg R/gry R/rDst R/gDst R +/bDst R/cpd R/Aeq R/Ath R/Aos R/Ach R/ed R/sf 20 d/cW 20 d/lW 20 d/bW 75 d +/wF 1.5 d/aF 11.875 d/aR 0.263 d/aA 50 d/hS 54 d/pA 32 d/sh F d/S{sf m}b +/dL{[hS] 0 setdash}b/o{1 ix}b/rot{3 -1 r}b/x{e d}b/CMT mt d/TM mt d +/SM{CMT sm}b/XY{X D m Y D m a sq}b/s1 1 string d/fp{T charpath flattenpath}b +/p{tr ru 0.25 a e ru 0.25 a e itransform}b/Wd{65536. dv}b +/C{Wd rot Wd rot Wd rot setrgbcolor}b +/setcmykcolor where{P/sk/setcmykcolor L}{/sk{4 1 r 3{3 ix a D 0 lt{P 0}if D 1\ + gt{P 1}if 1 e s 3 1 r}rp setrgbcolor P}b}ie/sg{D currenthsbcolor P rot seths\ +bcolor currenthsbcolor e P e P o s D m .001 gt{setgray}{P}ie}b +/sBg{65535 dv/bBg x 65535 dv/gBg x 65535 dv/rBg +x}b +/sRmp{currentrgbcolor bBg e s/bDst x gBg e s/gDst x rBg e s/rDst x}b +/dD{np 2 1 r 4 2 r xl 2 dv D sc -1 0 M 0 -1 l 1 0 l 0 1 l cp SM 0 ne{f}{lW 0.\ +8 m sl st}ie}b +/dM{gs np 3 1 r xl D sc 0 4 M 0 -8 rl 3.5 2 rm -7 4 rl 0 -4 rm 7 4 rl SM st g\ +r}b/dQ{gs np 0 360 arc 0.5 sg f gr}b +/dR{lW 0.8 m sl 2 ix s/Y x 2 ix s/X x xl Rr SM st}b +/dT{fp pb 3 1 r s 3 2 r s 2 1 r rm f}b/N 0 d/db{array/bs x/N 0 d}b +/B{bs N rot put/N N 1 a d}b +/SpA{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +aR aL m n D aL a 0 M 0 o n aA n aA arc cp f gr}b +/SpH{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +0 cw 2 dv xl +aR aL m n D aL a 0 M 0 o n aA n 0 arc cp f gr}b/Sp{/St x 0.316/aR x gs +aF lW m 0.8 m St 4 and 0 ne{bW m lW dv bW sl}if/aL x +St 8 and 0 ne{8 ix 8 ix 3 ix 3 ix SpA}if +St 16 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpA}if +St 32 and 0 ne{8 ix 8 ix 3 ix 3 ix SpH}if +St 64 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpH}if +St 2 and 0 ne{St 4 and 0 ne{[hS bW m lW dv] 0 setdash}{dL}ie}if +np M{cv}rp St 128 and 0 ne{f}{st}ie gr}b/Ha{gs np 3 1 r +xl D sc -.7 1.4 M 0.7 1.4 l -.7 2.4 M 0.7 2.4 l SM st gr}b +/OP{3 ix 3 ix xl 3 -1 r s 3 1 r +e s o o at ro D m e D m a sq}b +/OB{/bS x OP D bS dv D lW 2 m lt{P lW 2 m}if/bd x}b +/DA{np 0 0 M aL 0 aR aL m 180 aA s 180 aA a arc cp f}b +/OA{np 0 cw -2 dv M aL 0 aR aL m 180 aA s +180 arc 0 cw -2 dv rl cp f}b +/Ast{SM cw 0.8 m sl st}b/SA{aF m lW m/aL x 0.263/aR x aL 1 aR s m np 0 M + rad 0 l gs Ast gr}b +/CA{aF lW m 0.8 m/aL x 0.316/aR x aL 1 aR s m 2 dv rad D m o D m s D 0 le{P +P P}{sq at 2 +m np rad 0 rad 180 6 -1 r s 180 6 -1 r s arc gs Ast gr cpt +e at ro}ie}b/AA{np rad 0 rad 180 180 6 -1 r a arc gs SM st gr}b +/RA{lW m/w x np rad w M w .7 dv w l rad w n M w .7 dv w n l w + .35 dv w 2 m M 0 0 +l w .35 dv w -2 m l st}b +/HA{lW m/w x np 0 0 M w 2 m D l w 2 m w l rad w l rad w n l w 2 m +w n l w 2 m D n l cp st}b +/Ar1{gs 5 1 r OP/rad x{{2.25 SA DA}{1.5 SA DA}{1 SA DA}{lW 4 m sl 4.5 SA DA} +{lW 4 m sl 3 SA DA}{lW 4 m sl 2 SA +DA}{270 CA DA}{180 CA DA}{120 CA DA}{90 CA DA}{2.5 RA}{2.5 +HA}{1 -1 sc 270 CA DA}{1 -1 sc 180 CA DA}{1 -1 sc 120 CA DA}{1 -1 sc 90 CA +DA}{5 RA}{5 HA}{dL 2.25 SA DA}{dL 1.5 SA DA}{dL 1 SA DA}{2.25 SA OA}{1.5 SA +OA}{1 SA OA}{1 -1 sc 2.25 SA OA}{1 -1 sc 1.5 SA OA} +{1 -1 sc 1 SA OA}{270 CA OA}{180 CA OA}{120 CA OA}{90 CA OA}{1 -1 sc 270 CA +OA}{1 -1 sc 180 CA OA}{1 -1 sc 120 CA OA}{1 -1 sc 90 CA OA}{1 -1 sc 270 +AA}{1 -1 sc 180 AA}{1 -1 sc 120 AA}{1 -1 sc 90 AA}}e g xc +gr}b/ac{arcto 4{P}rp}b/rO{4 cw m}b/Cr{0 0 1 0 360 arc}b/Ac{XY D sc Cr SM}b +/OrA{Y X at ro XY D rev{neg}if sc}b/Ov{OrA 1 0.4 sc Cr SM}b +/Asc{OrA 1 27 dv D sc}b/LB{9 -6 M +21 -10 27 -8 27 0 cv +27 8 21 10 9 6 cv +-3 2 -3 -2 9 -6 cv +cp}b/DLB{0 0 M +0 0 -9.51 9.65 -9.51 18.02 cv +-9.51 23.22 -6.75 27 0 27 cv +6.75 27 9.51 23.22 9.51 18.02 cv +9.51 9.65 0 0 0 0 cv +cp}b/ZLB{LB}b +/dt{gs np M SM cpt np rot 4.5 dv 0 360 arc f gr}b +/whf{gs 1 setgray f gr SM st}b/blf{gs f gr SM st}b/Rr{0 rO M +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +0 0 0 Y rO ac +cp}b/Rc{0 0 M +0 Y l +X Y l +X 0 l +cp}b/grf{gs 0.5 sg f gr SM st}b/gG{D 32 dv D m 1 e s/gry x +currentrgbcolor bDst gry m a 3 1 r gDst gry m a 3 1 r rDst gry m a 3 1 r +setrgbcolor}b/gS{dtransform CMT idtransform +m D 0 lt{n}if sq n D +CMT dtransform idtransform +e 2 m e +xl +7 m 32 a 256 dv D sc}b/gLB{sh{sRmp +32 -0.5 0.5{gs +gG +13.5 0 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv +gS +-13.5 0 xl +LB f +gr}for +LB SM st}{LB grf}ie}b/gOv{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv 0.65 m D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b/gAc{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b +/gDLB{sh{sRmp +32 -0.5 0.5{gs +gG +0 13.5 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv e +gS +0 -13.5 xl +DLB f +gr}for +DLB SM st}{DLB grf}ie}b/gRr{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rr f +gr}for +Rr SM st}{Rr grf}ie}b/gRc{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rc f +gr}for +Rc SM st}{Rc grf}ie}b/gZLB{gLB}b/Ath{Y X at ro XY 2 dv/rad x gs D SA DA gr + rad 2 m 0 xl 180 ro SA DA}b/Aeq{Y X at ro XY/rad x +rev{1 -1 sc}if +gs +0 lW 2 m xl +D SA OA +gr +rad 0 xl +180 ro +0 lW 2 m xl +SA OA}b/Aos{X Y M SM cpt xl XY e dv lW 1.667 m o o lt{e}if P D sc}b/Ach{5 Aos +gs/Helvetica findfont[1 0 0 -1 0 0]makefont 5.5 scalefont setfont +D stringwidth P 2 dv D 1 a/rad x +n 0 M show gr +rad 2 s -5 M +rad n -5 rad n 1 2 ac +rad n 1 rad 1 2 ac +rad 1 rad -5 2 ac +rad -5 rad n -5 2 ac +cp Ast}b/Ar{D 39 lt{Ar1} +{gs 5 1 r o o xl 3 -1 r e s 3 1 r s e +o 0 lt o 0 lt ne/rev x +D 0 lt{1 -1 sc neg}if/Y x D 0 lt{-1 1 sc neg} +if/X x np{{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M 0 0 l 0 Y l lp Y l +X lp s 0 M X 0 l X Y l X lp s Y l SM st}{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M +0 0 0 Y lp ac +0 Y 2 dv lp neg o lp ac +0 Y 2 dv 0 Y lp ac +0 Y lp Y lp ac +X lp s 0 M +X 0 X Y lp ac +X Y 2 dv X lp a o lp ac +X Y 2 dv X Y lp ac +X Y X lp s Y lp ac SM st}{Y D 2 dv Y 180 pA s 180 pA a arc st +np X Y s Y 2 dv +Y pA D neg arcn st}{Rc SM st}{X lW 2 dv a lW -2 dv M +rO D rl +X lW 2 dv a rO a Y lW 2 dv a rO a l +rO lW -2 dv a Y lW 2 dv a rO a l +lW -2 dv Y lW 2 dv a l +0 Y l X Y l X 0 l cp f +0 0 M +0 Y l +X Y l +X 0 l cp +SM st}{Rr SM st}{rO Y M rO rO xl +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +rO neg D xl X Y 0 Y rO ac +cp f +Rr st}{Ac st}{OrA gAc}{Ov st}{OrA 1 .4 sc gOv}{Asc LB whf}{Asc gLB} +{Asc gs gLB gr +-1 -1 sc LB whf}{Asc gs gLB gr +-0.4 -0.4 sc LB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc gLB}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro gs gDLB gr -1 -1 sc gDLB}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc gOv gr +ZLB whf}{Asc gs -1 -1 sc gZLB gr +gs 3.6 12 sc Cr whf gr +gZLB}{0 0 M X Y l SM st}{bW sl 0 0 M X Y l SM st} +{dL 0 0 M X Y l SM st}{OrA 1 16 dv D sc +0 -1 M +0 0 1 0 1 ac +8 0 8 1 1 ac +8 0 16 0 1 ac +16 0 16 -1 1 ac +SM st}{XY D 0 0 dt X Y dt}{XY 2 dv X Y dt}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +2 0 M 0 0 2 0 360 arc +Ast}{4.5 Aos +1 0 M -1 0 l +2 0 M 0 0 2 0 360 arc +Ast}{2.25 Ath}{1.5 Ath}{1 Ath}{2.25 Aeq}{1.5 Aeq}{1 Aeq}{OrA 1 16 dv D sc +0 -1 M 0 0 l 16 0 l 16 -1 l SM st}{5 Aos +1 -1 M -1 -1 l +0 2 M 0 -2 l +Ast}{5 Aos +1 -1 M -1 -1 l +1 1 M -1 1 l +0 2 M 0 -2 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{4.5 Aos +1 0 M -1 0 l +Ast}{gRc}{gRr}{Rc blf}{Rr blf}{Ac blf}{Ov blf}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro DLB -1 -1 sc DLB blf}{Asc gs -1 -1 sc ZLB blf gr +gs 3.6 12 sc Cr whf gr +ZLB blf}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc Cr blf gr +ZLB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc LB blf}{Asc LB gs f gr gs SM st gr +np -0.4 -0.4 sc LB whf}{Asc LB blf}{Asc LB gs f gr gs SM st gr +np -1 -1 sc LB whf}{Ac whf}{OrA gAc}{Ac blf}{Ov whf} +{OrA 1 .4 sc gOv}{Ov blf}{(Rac)Ach}{(Abs)Ach}{(Rel)Ach} +}e 39 s g xc gr}ie}b/DS{np M l st}b +/DD{gs dL DS gr}b/DB{gs 12 OB bW sl np 0 0 M 0 l st gr}b/ap{e 3 ix a +e 2 ix a}b/PT{D 2 4 gi al P OP D 1 sc +o length 6 gt{P 6 g}{e P 8 dv}ie +D lW 2 m lt{P lW 2 m}if +0 e +0 0 +3 -1 r s 3 1 r e s e +0 0 M 1 0 l +0 0 ap M 1 0 ap l +e n e n +0 0 ap M 1 0 ap l +P P}b/DT{gs np PT SM st gr}b +/NH{lW s D hS dv ru +cvi D 0 eq{P 1}if/nH x +D hS nH m s +D 0 lt{P .1 s nH dv}{nH 2 a dv D 0 xl 2 m s nH dv}ie}b +/Bd{D type/arraytype ne{bs e g}if{{P}{{{DS}{DD}{gs 12 OB np +bW 2 dv/bd x +lW 2 dv e D NH e{D bd M bd n l}for +st gr}{gs 12 OB np +lW 2 dv 0 xl NH 1 sc +bW 2 dv wF m nH 1 a dv/bd x +0 1 nH +{D 1 a bd m o o M n l}for SM st gr}{P}{DB}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp f gr}{P}{gs 12 OB/bL x +bW 2 dv D lW lt{P lW}if/bd x np 0 0 M +bL bd 4 m dv ru 2 o o lt{e}if P cvi/nSq x +bL nSq 2 m dv D sc +nSq{.135 .667 .865 .667 1 0 rcurveto +.135 -.667 .865 -.667 1 0 rcurveto}rp SM st gr}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp SM lW 0.8 m sl st gr}{P}{4 2 r gs OP/rad x 1 SA DA gr}{P} +}o 1 g 1 s g e 2 4 gi al P +5 -1 r xc}{al P 8 ix 1 eq{DD}{DS}ie 5 -1 r 2 eq{DB}{DS}ie P}{DT}}o 0 g g xc}b +/ed{gs cpt np cw 2 dv 0 360 arc f gr}b +/SPe{gs 0 e xl 1 1 S dv D n sc CMT currentmatrix P lW sl 4.0 setmiterlimit +np}b/ws{Wd 0 32 4 -1 roll widthshow}b/blank/Times-Roman findfont/CharStrings +g/space g d/mv 256 array d/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT +/FF/CR/SO/SI +/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US +mv 0 32 gi as P +mv 32/Times-Roman findfont/Encoding get +32 96 gi putinterval +mv 39/quotesingle put +mv 96/grave put/unknown/unknown/quotesinglbase/florin/quotedblbase/ellipsis +/dagger/daggerdbl +/circumflex/perthousand/Scaron/guilsinglleft/OE/unknown/unknown/unknown +/unknown/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash +/emdash +/tilde/trademark/scaron/guilsinglright/oe/unknown/unknown/Ydieresis +/blank/exclamdown/cent/sterling/currency/yen/brokenbar/section +/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered +/macron +/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph +/periodcentered +/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf +/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis +/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply +/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls +/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide +/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis +mv 128 128 gi as P/fSt 50 string d(ChemDraw)fSt copy P/fD{D/Symbol eq{ +findfont[1 0 0 -1 0 0]makefont}{D {findfont}stopped{/Helvetica findfont}if +D length dict/newdict x{ +1 index/FID ne{1 index/FontMatrix eq{[1 0 0 -1 0 0]matrix concatmatrix}if +newdict 3 1 r put}{P P}ie}forall +newdict/Encoding mv put +fSt 8 fSt length 8 sub gi cvs length 8 add +fSt 0 rot gi cvn newdict definefont}ie}b/ts{gs xl ro 0 0 M}b +/nl{0 e xl 0 0 M}b/tx{ft e g e sf m rot D 96 and 0 ne{ +64 and 0 ne{-0.5}{0.25}ie e 0.75 m}{P 0 e}ie +D 4 -1 r e scalefont setfont m cpt P e M}b +end +%%EndProcSet + +%%EndProlog +chemdict30 begin +/cW 40 def +/bW 80 def +/lW 20 def +/hS 54 def +/sh true def +724 SPe[ +/Helvetica +fD +/Times-Roman +fD]/ft x +2080 6760 M +8500 6760 l +8500 7720 l +2080 7720 l +cp +clip +np +65535 65535 65535 sBg +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +20 D sl/lW x +5577 +7156 M +4871 7156 l +st +5015 7216 M +5721 7216 l +st +gs +20 sl +5751 7166 +5751 7166 5751 7166 5576 7166 5751 7166 5751 7166 5551 7104 5576 7133 5576 +7166 5751 7166 5551 7104 5551 7104 4 5751 7166 129 Sp +gr +gs +20 sl +4841 +7206 4841 7206 4841 7206 5041 7268 4841 7206 4841 7206 5016 7219 5041 7268 +5041 7268 4841 7206 5016 7206 5016 7206 4 4841 7206 129 Sp +gr +gr +0 4084 +7647 ts +0 65535 65535 C +64 10 0 tx +(6)show +0 10 0 tx +(X)show +gr +0 2354 7047 ts +65535 0 0 C +-227.856 0 M +64 10 0 tx +(1)show +0 10 0 tx +(R)show +gr +0 3603 7611 ts +0 0 0 C +0 12 0 tx +0 0 0 C +(+)show +gr +0 2132 7647 ts +65535 32896 0 C +64 10 0 tx +(5)show +0 10 0 tx +(X)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +2328 +7424 M +2308 7424 l +2308 7087 l +2328 7087 l +cp +f +gr +gs +20 D sl/lW x +40 +/cW x +80 /bW x +54 /hS x +0 0 0 C +np +2256 7424 M +2236 7424 l +2236 7087 l +2256 7087 l +cp +f +gr +0 7058 7587 ts +0 0 0 C +0 12 0 tx +0 0 0 C +(+)show +gr +0 6299 7647 ts +65535 32896 0 C +64 10 0 tx +(5)show +0 10 0 tx +(X)show +gr +0 8236 7623 ts +0 65535 65535 C +64 10 0 tx +(6)show +0 10 0 tx +(X)show +gr +0 7738 7047 ts +0 32896 0 C +64 10 0 tx +(3)show +0 10 0 tx +(R)show +gr +0 6521 7047 ts +65535 0 0 C +-227.856 0 M +64 10 0 tx +(1)show +0 10 0 tx +(R)show +gr +0 6772 7047 ts +0 0 65535 C +64 10 0 tx +(2)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +6737 +6931 M +6737 6951 l +6556 6951 l +6556 6931 l +cp +f +gr +gs +20 D sl/lW x +40 +/cW x +80 /bW x +54 /hS x +0 0 0 C +np +6737 6988 M +6737 7008 l +6556 7008 l +6556 6988 l +cp +f +gr +0 2607 7047 ts +0 0 65535 C +64 10 0 tx +(2)show +0 10 0 tx +(R)show +gr +0 3042 7047 ts +0 32896 0 C +64 10 0 tx +(3)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +3009 +6959 M +3009 6979 l +2870 6979 l +2870 6959 l +cp +f +gr +gs +20 D sl/lW x +40 +/cW x +80 /bW x +54 /hS x +0 0 0 C +np +2572 6959 M +2572 6979 l +2389 6979 l +2389 6959 l +cp +f +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 +0 C +np +6439 7087 M +6459 7087 l +6458 7424 l +6438 7424 l +cp +f +gr +0 +4073 7047 ts +65535 0 65535 C +64 10 0 tx +(4)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +4183 +7087 M +4203 7087 l +4207 7423 l +4187 7423 l +cp +f +gr +gs +20 D sl/lW x +40 +/cW x +80 /bW x +54 /hS x +0 0 0 C +np +4255 7087 M +4275 7086 l +4279 7422 l +4259 7422 l +cp +f +gr +0 8225 7047 ts +65535 0 65535 C +64 10 0 tx +(4)show +0 10 0 tx +(R)show +gr +gs +20 D sl/lW x +40 /cW x +80 /bW x +54 /hS x +0 0 0 C +np +8187 +6959 M +8187 6979 l +8001 6979 l +8001 6959 l +cp +f +gr +gs +20 D sl/lW x +40 +/cW x +80 /bW x +54 /hS x +0 0 0 C +np +8372 7087 M +8392 7087 l +8395 7399 l +8375 7399 l +cp +f +gr +gr +end +%%Trailer +showpage diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/dictionary.txt b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/dictionary.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/reactions.py b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/reactions.py new file mode 100644 index 0000000000..4fa90f3a92 --- /dev/null +++ b/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/reactions.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python +# encoding: utf-8 + From 95e2e206e5dce54577e2463169185fa67553788d Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Wed, 20 May 2026 22:02:14 -0400 Subject: [PATCH 05/25] add new families to recommended.py --- input/kinetics/families/recommended.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/input/kinetics/families/recommended.py b/input/kinetics/families/recommended.py index 6d4fd8b43e..88797f845e 100644 --- a/input/kinetics/families/recommended.py +++ b/input/kinetics/families/recommended.py @@ -129,6 +129,10 @@ 'Surface_Abstraction_Charge_Separation', 'Surface_Dissociation_Charge_Separation', 'Surface_Dissociation_Charge_Single', + 'Surface_Monodentate_to_vdW_Bidentate', + 'Surface_Dissociation_vdW_Bidentate', + 'Surface_Dissociation_vdW_Bidentate_Beta', + 'Surface_Abstraction_vdW_Bidentate_Beta', #'Surface_Carbonate_Deposition', #'Surface_Carbonate_F_CO_Decomposition', #'Surface_Carbonate_2F_Decomposition', From 7cc0288ca2ce2d4950263302519eeee5fc4e8114 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Wed, 3 Jun 2026 13:12:52 -0400 Subject: [PATCH 06/25] rename vdW Bidentate families to vdWBidentate --- .../groups.py | 0 .../rules.py | 0 .../template.cdx | Bin .../template.eps | 0 .../training/dictionary.txt | 0 .../training/reactions.py | 0 .../groups.py | 0 .../rules.py | 0 .../template.cdx | Bin .../template.eps | 0 .../training/dictionary.txt | 0 .../training/reactions.py | 0 .../groups.py | 0 .../rules.py | 0 .../template.cdx | Bin .../template.eps | 0 .../training/dictionary.txt | 0 .../training/reactions.py | 0 .../groups.py | 0 .../rules.py | 0 .../template.cdx | Bin .../template.eps | 0 .../template.pdf | Bin .../training/dictionary.txt | 0 .../training/reactions.py | 0 25 files changed, 0 insertions(+), 0 deletions(-) rename input/kinetics/families/{Surface_Abstraction_vdW_Bidentate_Beta => Surface_Abstraction_vdWBidentate_Beta}/groups.py (100%) rename input/kinetics/families/{Surface_Abstraction_vdW_Bidentate_Beta => Surface_Abstraction_vdWBidentate_Beta}/rules.py (100%) rename input/kinetics/families/{Surface_Abstraction_vdW_Bidentate_Beta => Surface_Abstraction_vdWBidentate_Beta}/template.cdx (100%) rename input/kinetics/families/{Surface_Abstraction_vdW_Bidentate_Beta => Surface_Abstraction_vdWBidentate_Beta}/template.eps (100%) rename input/kinetics/families/{Surface_Abstraction_vdW_Bidentate_Beta => Surface_Abstraction_vdWBidentate_Beta}/training/dictionary.txt (100%) rename input/kinetics/families/{Surface_Abstraction_vdW_Bidentate_Beta => Surface_Abstraction_vdWBidentate_Beta}/training/reactions.py (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate => Surface_Dissociation_vdWBidentate}/groups.py (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate => Surface_Dissociation_vdWBidentate}/rules.py (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate => Surface_Dissociation_vdWBidentate}/template.cdx (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate => Surface_Dissociation_vdWBidentate}/template.eps (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate => Surface_Dissociation_vdWBidentate}/training/dictionary.txt (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate => Surface_Dissociation_vdWBidentate}/training/reactions.py (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate_Beta => Surface_Dissociation_vdWBidentate_Beta}/groups.py (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate_Beta => Surface_Dissociation_vdWBidentate_Beta}/rules.py (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate_Beta => Surface_Dissociation_vdWBidentate_Beta}/template.cdx (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate_Beta => Surface_Dissociation_vdWBidentate_Beta}/template.eps (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate_Beta => Surface_Dissociation_vdWBidentate_Beta}/training/dictionary.txt (100%) rename input/kinetics/families/{Surface_Dissociation_vdW_Bidentate_Beta => Surface_Dissociation_vdWBidentate_Beta}/training/reactions.py (100%) rename input/kinetics/families/{Surface_Monodentate_to_vdW_Bidentate => Surface_Monodentate_to_vdWBidentate}/groups.py (100%) rename input/kinetics/families/{Surface_Monodentate_to_vdW_Bidentate => Surface_Monodentate_to_vdWBidentate}/rules.py (100%) rename input/kinetics/families/{Surface_Monodentate_to_vdW_Bidentate => Surface_Monodentate_to_vdWBidentate}/template.cdx (100%) rename input/kinetics/families/{Surface_Monodentate_to_vdW_Bidentate => Surface_Monodentate_to_vdWBidentate}/template.eps (100%) rename input/kinetics/families/{Surface_Monodentate_to_vdW_Bidentate => Surface_Monodentate_to_vdWBidentate}/template.pdf (100%) rename input/kinetics/families/{Surface_Monodentate_to_vdW_Bidentate => Surface_Monodentate_to_vdWBidentate}/training/dictionary.txt (100%) rename input/kinetics/families/{Surface_Monodentate_to_vdW_Bidentate => Surface_Monodentate_to_vdWBidentate}/training/reactions.py (100%) diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/groups.py b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py similarity index 100% rename from input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/groups.py rename to input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/rules.py b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/rules.py similarity index 100% rename from input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/rules.py rename to input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/rules.py diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.cdx b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/template.cdx similarity index 100% rename from input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.cdx rename to input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/template.cdx diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.eps b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/template.eps similarity index 100% rename from input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/template.eps rename to input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/template.eps diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/dictionary.txt b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/training/dictionary.txt similarity index 100% rename from input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/dictionary.txt rename to input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/training/dictionary.txt diff --git a/input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/reactions.py b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/training/reactions.py similarity index 100% rename from input/kinetics/families/Surface_Abstraction_vdW_Bidentate_Beta/training/reactions.py rename to input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/training/reactions.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate/groups.py rename to input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/rules.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate/rules.py similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate/rules.py rename to input/kinetics/families/Surface_Dissociation_vdWBidentate/rules.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.cdx b/input/kinetics/families/Surface_Dissociation_vdWBidentate/template.cdx similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.cdx rename to input/kinetics/families/Surface_Dissociation_vdWBidentate/template.cdx diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.eps b/input/kinetics/families/Surface_Dissociation_vdWBidentate/template.eps similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate/template.eps rename to input/kinetics/families/Surface_Dissociation_vdWBidentate/template.eps diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/dictionary.txt b/input/kinetics/families/Surface_Dissociation_vdWBidentate/training/dictionary.txt similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/dictionary.txt rename to input/kinetics/families/Surface_Dissociation_vdWBidentate/training/dictionary.txt diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/reactions.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate/training/reactions.py similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate/training/reactions.py rename to input/kinetics/families/Surface_Dissociation_vdWBidentate/training/reactions.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/groups.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/groups.py rename to input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/rules.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/rules.py similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/rules.py rename to input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/rules.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.cdx b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/template.cdx similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.cdx rename to input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/template.cdx diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.eps b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/template.eps similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/template.eps rename to input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/template.eps diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/dictionary.txt b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/training/dictionary.txt similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/dictionary.txt rename to input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/training/dictionary.txt diff --git a/input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/reactions.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/training/reactions.py similarity index 100% rename from input/kinetics/families/Surface_Dissociation_vdW_Bidentate_Beta/training/reactions.py rename to input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/training/reactions.py diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/groups.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py similarity index 100% rename from input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/groups.py rename to input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/rules.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/rules.py similarity index 100% rename from input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/rules.py rename to input/kinetics/families/Surface_Monodentate_to_vdWBidentate/rules.py diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.cdx b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/template.cdx similarity index 100% rename from input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.cdx rename to input/kinetics/families/Surface_Monodentate_to_vdWBidentate/template.cdx diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.eps b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/template.eps similarity index 100% rename from input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.eps rename to input/kinetics/families/Surface_Monodentate_to_vdWBidentate/template.eps diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.pdf b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/template.pdf similarity index 100% rename from input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/template.pdf rename to input/kinetics/families/Surface_Monodentate_to_vdWBidentate/template.pdf diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/dictionary.txt b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/training/dictionary.txt similarity index 100% rename from input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/dictionary.txt rename to input/kinetics/families/Surface_Monodentate_to_vdWBidentate/training/dictionary.txt diff --git a/input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/reactions.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/training/reactions.py similarity index 100% rename from input/kinetics/families/Surface_Monodentate_to_vdW_Bidentate/training/reactions.py rename to input/kinetics/families/Surface_Monodentate_to_vdWBidentate/training/reactions.py From 011922745d24b3a26b45cfde1adf8397024dfb8b Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Wed, 3 Jun 2026 13:13:53 -0400 Subject: [PATCH 07/25] adjust recommended.py to vdWBidentate --- input/kinetics/families/recommended.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/input/kinetics/families/recommended.py b/input/kinetics/families/recommended.py index 88797f845e..9ef5ff8782 100644 --- a/input/kinetics/families/recommended.py +++ b/input/kinetics/families/recommended.py @@ -129,10 +129,10 @@ 'Surface_Abstraction_Charge_Separation', 'Surface_Dissociation_Charge_Separation', 'Surface_Dissociation_Charge_Single', - 'Surface_Monodentate_to_vdW_Bidentate', - 'Surface_Dissociation_vdW_Bidentate', - 'Surface_Dissociation_vdW_Bidentate_Beta', - 'Surface_Abstraction_vdW_Bidentate_Beta', + 'Surface_Monodentate_to_vdWBidentate', + 'Surface_Dissociation_vdWBidentate', + 'Surface_Dissociation_vdWBidentate_Beta', + 'Surface_Abstraction_vdWBidentate_Beta', #'Surface_Carbonate_Deposition', #'Surface_Carbonate_F_CO_Decomposition', #'Surface_Carbonate_2F_Decomposition', From 9c46454d1955e2ccf6175599462c2b236bc46dc9 Mon Sep 17 00:00:00 2001 From: Richard West Date: Thu, 4 Jun 2026 00:08:10 -0400 Subject: [PATCH 08/25] TEMPORARY: set RMG_PYBRANCH: vdW_bonds drop this commit before merging, and merge at the same time as https://github.com/ReactionMechanismGenerator/RMG-Py/pull/2706/ --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e79a9e0a72..f986a05f12 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -37,7 +37,7 @@ concurrency: env: # if running on RMG-Database but requiring changes on an un-merged branch of RMG-Py, replace # main with the name of the branch - RMG_PYBRANCH: main + RMG_PYBRANCH: vdW_bonds # RMS branch to use for ReactionMechanismSimulator installation RMS_BRANCH: for_rmg # RMS mode used for install_rms.sh From 1cab7e781f485b7f7fa0c45352b7c73c41799ab6 Mon Sep 17 00:00:00 2001 From: Richard West Date: Thu, 4 Jun 2026 10:45:04 -0400 Subject: [PATCH 09/25] Fix CI: restore env var name RMG_PY_BRANCH so requested RMG-Py branch is used The CI workflow checks out the RMG-Py branch named by an env var, but the env var was renamed to RMG_PYBRANCH (one underscore) in a4a0c62d1. The reference therefore resolved to an empty string, and actions/checkout silently fell back to the default branch (main) instead of the requested branch. Restore the matching name RMG_PY_BRANCH (both underscores) on the definition so the ref expression resolves and the intended branch is checked out. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f986a05f12..a24209ac59 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -37,7 +37,7 @@ concurrency: env: # if running on RMG-Database but requiring changes on an un-merged branch of RMG-Py, replace # main with the name of the branch - RMG_PYBRANCH: vdW_bonds + RMG_PY_BRANCH: vdW_bonds # RMS branch to use for ReactionMechanismSimulator installation RMS_BRANCH: for_rmg # RMS mode used for install_rms.sh From 3011a2974607e633af62a1682e75294ec85f5985 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 18:19:28 -0400 Subject: [PATCH 10/25] fixup: Surface_Monodentate_to_vdWBidentate --- .../families/Surface_Monodentate_to_vdWBidentate/groups.py | 4 ++-- .../families/Surface_Monodentate_to_vdWBidentate/rules.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py index 5168540a9b..c8e6e54411 100644 --- a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Monodentate_to_vdW_Bidentate" +name = "Surface_Monodentate_to_vdWBidentate" shortDesc = u"" longDesc = u""" If a monodentate adsorbate has an internal double or triple bond, then it can fall over onto a vacant site, creating a bidentate. @@ -17,7 +17,7 @@ template(reactants=["Monodentate", "VacantSite"], products=["Bidentate"], ownReverse=False) -reverse = "Surface_vdW_Bidentate_to_Monodentate" +reverse = "Surface_vdWBidentate_to_Monodentate" recipe(actions=[ ['FORM_BOND', '*3', 1, '*5'], diff --git a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/rules.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/rules.py index 85bb72f2f5..15bdd06582 100644 --- a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/rules.py +++ b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Monodentate_to_Bidentate/rules" +name = "Surface_Monodentate_to_vdWBidentate/rules" shortDesc = u"" longDesc = u""" """ From 24302744740293357c3a289240fd64b2aed4a1fa Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 18:23:32 -0400 Subject: [PATCH 11/25] fixup: Surface_Abstraction_vdWBidentate_Beta --- .../families/Surface_Abstraction_vdWBidentate_Beta/groups.py | 4 ++-- .../families/Surface_Abstraction_vdWBidentate_Beta/rules.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py index 392f689ed9..fc74d4fe72 100755 --- a/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py +++ b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Abstraction_vdW_Bidentate_Beta/groups" +name = "Surface_Abstraction_vdWBidentate_Beta/groups" shortDesc = u"" longDesc = u""" Surface abstraction of one atom to another adsorbate. The bond fission occurs not at the binding atom, but in the beta position of the adsorbate, that is the bond between Atom *2 and *3 is broken. Atom *1 is bonded to the surface (*5). The bond order between *1/*3 and the surface decreases. An example for this reaction is: COH* + CH2* = CO* + CH3*. The bond between *2 and *3 must be single. @@ -19,7 +19,7 @@ template(reactants=["Donating", "Abstracting"], products=["Adsorbate2","Adsorbate3", "VacantSite"], ownReverse=False) -reverse = "Surface_Abstraction_vdW_Bidentate_reverse_Beta" +reverse = "Surface_Abstraction_vdWBidentate_reverse_Beta" reactantNum=2 productNum=3 diff --git a/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/rules.py b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/rules.py index 5ec08aa9be..9b0cf7802b 100644 --- a/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/rules.py +++ b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Abstraction_vdW_Bidentate_Beta/rules" +name = "Surface_Abstraction_vdWBidentate_Beta/rules" shortDesc = u"" longDesc = u""" """ From 338dbf96b1384c5db122d29e467a76094b497809 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 18:24:31 -0400 Subject: [PATCH 12/25] Surface_Dissociation_vdWBidentate --- .../families/Surface_Dissociation_vdWBidentate/groups.py | 4 ++-- .../families/Surface_Dissociation_vdWBidentate/rules.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py index 3553dc5cb4..d80f1680e3 100644 --- a/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Dissociation_vdW_Bidentate/groups" +name = "Surface_Dissociation_vdWBidentate/groups" shortDesc = u"" longDesc = u""" Surface bond fission of one species into two distinct adsorbates. Atom *1 is bonded to the surface (*3). The image below shows a single bond, but single, double, and triple are possible. What matters is that the bond between *1 and *2 must be single. @@ -19,7 +19,7 @@ template(reactants=["Combined"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) -reverse = "Surface_Association_vdW_Bidentate" +reverse = "Surface_Association_vdWBidentate" reactantNum=1 productNum=2 diff --git a/input/kinetics/families/Surface_Dissociation_vdWBidentate/rules.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate/rules.py index 3d393f31f6..cc2ccc17ec 100644 --- a/input/kinetics/families/Surface_Dissociation_vdWBidentate/rules.py +++ b/input/kinetics/families/Surface_Dissociation_vdWBidentate/rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Dissociation_vdW_Bidentate/rules" +name = "Surface_Dissociation_vdWBidentate/rules" shortDesc = u"" longDesc = u""" """ From d1a05d39583218d77b8b182c974cde71fd77aa87 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 18:25:14 -0400 Subject: [PATCH 13/25] fixup: Surface_Dissociation_vdWBidentate_Beta --- .../families/Surface_Dissociation_vdWBidentate_Beta/groups.py | 4 ++-- .../families/Surface_Dissociation_vdWBidentate_Beta/rules.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py index 952a545835..7369fd0b79 100644 --- a/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Dissociation_vdW_Bidentate_Beta/groups" +name = "Surface_Dissociation_vdWBidentate_Beta/groups" shortDesc = u"" longDesc = u""" Surface bond fission of one species into two distinct adsorbates. Atom *1 is bonded to the surface (*3). The image below shows a single bond, but single, double, and triple are possible. What matters is that the bond between *1 and *2 must be single. @@ -21,7 +21,7 @@ template(reactants=["Combined"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) -reverse = "Surface_Association_vdW_Bidentate_Beta" +reverse = "Surface_Association_vdWBidentate_Beta" reactantNum=1 productNum=2 diff --git a/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/rules.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/rules.py index f3730d91ba..008777d70a 100644 --- a/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/rules.py +++ b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Dissociation_vdW_Bidentate_Beta/rules" +name = "Surface_Dissociation_vdWBidentate_Beta/rules" shortDesc = u"" longDesc = u""" """ From c59ce64367de5a016648f744c286066cb4abc924 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 22:18:19 -0400 Subject: [PATCH 14/25] new family Surface_Dissociation_vdW_to_vdWBidentate --- .../groups.py | 77 +++ .../rules.py | 28 + .../template.cdx | Bin 0 -> 3407 bytes .../template.eps | 575 ++++++++++++++++++ .../training/dictionary.txt | 0 .../training/reactions.py | 2 + input/kinetics/families/recommended.py | 1 + 7 files changed, 683 insertions(+) create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/template.cdx create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/template.eps create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/training/dictionary.txt create mode 100644 input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/training/reactions.py diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py new file mode 100644 index 0000000000..44ac672847 --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW_to_vdWBidentate/groups" +shortDesc = u"" +longDesc = u""" +Surface bond fission of one vdW species into two distinct adsorbates. Atom *3 is vdW, but we leave that out of the graph. + + *4-*1--*2=*3 *1-*2=*3 *4 + : ----> | : | + ~*5~ + ~*6~~ + ~*7~~ ~*5~ ~*6~ + ~*7~ + + +The rate, which should be in mol/m2/s, +will be given by k * (mol/m2) * (mol/m2) +so k should be in (m2/mol/s) +""" + +template(reactants=["Combined", "VacantSite1", "VacantSite2"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) + +reverse = "Surface_Association_vdWBidentate_to_vdW" + +reactantNum=3 +productNum=2 + +recipe(actions=[ + ['CHANGE_BOND', '*1', 1, '*5'], + ['BREAK_BOND', '*1', 1, '*4'], + ['FORM_BOND', '*4', 1, '*7'], + ['FORM_BOND', '*3', 1, '*6'], + ['CHANGE_BOND', '*3', -1, '*6'], +]) + +entry( + index = 1, + label = "Combined", + group = +""" +multiplicity [1] +1 *1 R!H u0 px c0 {2,S} {4,S} +2 *2 R!H u0 px c0 {1,S} {3,D} +3 *3 R u0 px c0 {2,D} +4 *4 R u0 px c0 {1,S} +5 *5 Xv u0 p0 c0 +""", + kinetics = None, +) + +entry( + index = 2, + label="VacantSite1", + group = +""" +1 *6 Xv u0 p0 c0 +""", + kinetics = None, +) + +entry( + index = 3, + label="VacantSite2", + group = +""" +1 *7 Xv u0 p0 c0 +""", + kinetics = None, +) + + +tree( +""" +L1: Combined +L1: VacantSite1 +L1: VacantSite2 +""" +) + diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py new file mode 100644 index 0000000000..a0f522d2c3 --- /dev/null +++ b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Surface_Dissociation_vdW/rules" +shortDesc = u"" +longDesc = u""" +""" + +entry( + index = 1, + label = "Combined;VacantSite1;VacantSite2", + kinetics = SurfaceArrheniusBEP( + A = (1e30, 'cm^4/(mol^2*s)'), + n = 0, + alpha = 0.84, + E0 = (185.1, 'kJ/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + rank = 0, + shortDesc = u"""Default""", + longDesc = u""" +E0 and alpha are taken from: +"Universal Brønsted-Evans-Polanyi Relations for C–C, C–O, C–N, N–O, N–N, and O–O Dissociation Reactions" by Wang, ..., Norskov/ Catal. Lett (2011) 141:370-373, DOI: 10.1007/s10562-010-0477-y +(actual value for E0 was 1.92 eV.) +Pre-exponential coefficient is calculated from 1e13 s^-1 (standard guess from transition state theory) divided by 2.39e-9 mol cm^-2 (surface site density of Pt(111) + """ +) \ No newline at end of file diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/template.cdx b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/template.cdx new file mode 100644 index 0000000000000000000000000000000000000000..553014a5799578c3ec41bc43edeab637c62c6ca7 GIT binary patch literal 3407 zcmcImYitx%6h3!mc6WAXx2-{-)e0A>v}LjM0b)jDpxa^_}xm<@jTyX4kE@e4( z$JmylrZhm};IR1p_yL%T?-AOX2_eEdY2i;H-ZfQN*&Bc`Kui}P^bitLLvj}q=qK)O z;_fFB4dS$(NDK+|k}N@_k4T-az^@{r>xgnQoJDFNui<4sBOlf^=sBiK=bmLQ4TPO=V?DS89yZ>jnTRiQhP z;s*5|h(L)y6yjGZd9*TC&qzu?*QJpt2-2>gO&7HQtjZ^?l!k0QtWT!xf_%WcZMA-fPOYjUY}2hfVp8QIFh!oyqTPEy%Uj4pY9%rw44yk=d>63sb&lP(3(9 z>sFcaeb$sfRjBC$wmU(pKIAQI zZaaFKD$)PWe1?%}R_1Vmw?JcgY(gLnnEC?hnJVsOl+el0l~Hk6zY4jd+r{C1^F;)+ zrV&DJD{7vF<+Zqc!_=B_+&53~xbGKCas}oBL`bKCR0oOlGA85#w{qt1bkBtqd}b-r znrP@ zoZ@vlqqyO+U41ip*nZ;+w(C|<-Opp5fBFvQgt_b-^r*WU~2=s6+1>7Ie+tdc|Up1%!2Z6+v!lv{CnV0|ecl$^o2;?-CQiR~his_AK-C%9zkku)g^i%sbIH z{-4i%mD;kLWHuwQyfRrw=CXxCax`Vjt=asHqNAKbc%c|kED`Ss5yuhhBUWw<^td_k zlqtH=Pphx=b7Q;>G`FrCtaHs9#nGW&mbb7MYg8ZIm``+J<%Q*e@MQn7J{o-NMR94+ z!@kJRfEv^XIcx0&vy45*Jjq@<(k}=* Date: Thu, 4 Jun 2026 22:23:31 -0400 Subject: [PATCH 15/25] fixup: Surface_Dissociation_vdW_to_vdWBidentate and add description --- .../groups.py | 11 ++++++++--- .../Surface_Dissociation_vdW_to_vdWBidentate/rules.py | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py index 44ac672847..c3488b339a 100644 --- a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py @@ -4,7 +4,12 @@ name = "Surface_Dissociation_vdW_to_vdWBidentate/groups" shortDesc = u"" longDesc = u""" -Surface bond fission of one vdW species into two distinct adsorbates. Atom *3 is vdW, but we leave that out of the graph. +Dissociation of a physisorbed species (e.g., formic acid HCOOH) into a vdW bidentate (e.g., formate XOCHXO) +and an adsorbate with a single bond to the surface (e.g., XH). The formic acid is initially physisorbed via a vdW +interaction through the carbonyl oxygen (*3). Upon dissociation, the R!H-R bond (*1-*4) breaks, +the R!H (*1) forms a single bond to the surface site (*5), the carbonyl oxygen (*3) +retains a vdW interaction with a neighboring vacant site (*6), and the R (*4) adsorbs +onto a second vacant site (*7), yielding bidentate formate. *4-*1--*2=*3 *1-*2=*3 *4 : ----> | : | @@ -12,8 +17,8 @@ The rate, which should be in mol/m2/s, -will be given by k * (mol/m2) * (mol/m2) -so k should be in (m2/mol/s) +will be given by k * (mol/m2) * (mol/m2)* (mol/m2) +so k should be in (m4/mol2/s) """ template(reactants=["Combined", "VacantSite1", "VacantSite2"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py index a0f522d2c3..ab7e47501d 100644 --- a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py +++ b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/rules.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # encoding: utf-8 -name = "Surface_Dissociation_vdW/rules" +name = "Surface_Dissociation_vdW_to_vdWBidentate/rules" shortDesc = u"" longDesc = u""" """ From 76f3f054b4df088d400ec5d509a99353fe7ece6b Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 22:30:17 -0400 Subject: [PATCH 16/25] fixup: Surface_Dissociation_vdW_to_vdWBidentate --- .../Surface_Dissociation_vdWBidentate/groups.py | 11 +++++++---- .../groups.py | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py index d80f1680e3..dba25fbb90 100644 --- a/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdWBidentate/groups.py @@ -4,8 +4,11 @@ name = "Surface_Dissociation_vdWBidentate/groups" shortDesc = u"" longDesc = u""" -Surface bond fission of one species into two distinct adsorbates. Atom *1 is bonded to the surface (*3). The image below shows a single bond, but single, double, and triple are possible. What matters is that the bond between *1 and *2 must be single. - # NOTE: we should probably include vdW, too! +Surface bond fission of a vdW bidentate (e.g., formate XOCHXO) into two adsorbates. +Example: [X]~OC(H)O[X] -> [X]O + O=C[X]H +The *1-*2 bond (C-O) breaks. Atom *1 (O) has a single bond to surface site *4 and +increases to a double bond. Atom *3 (O) has a vdW bond to surface +site *5. The vdW bond is broke and *2 (C) forms a new bond to *5. *1-*2=*3 *1 *2=*3 | : ----> || | @@ -13,8 +16,8 @@ The rate, which should be in mol/m2/s, -will be given by k * (mol/m2) * (mol/m2) -so k should be in (m2/mol/s) +will be given by k * (mol/m2) +so k should be in (1/s) """ template(reactants=["Combined"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py index c3488b339a..88f3fe8549 100644 --- a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py @@ -4,7 +4,8 @@ name = "Surface_Dissociation_vdW_to_vdWBidentate/groups" shortDesc = u"" longDesc = u""" -Dissociation of a physisorbed species (e.g., formic acid HCOOH) into a vdW bidentate (e.g., formate XOCHXO) +Dissociation of a physisorbed species (e.g., formic acid HCOOH) into a vdW bidentate (e.g., formate XOCHXO) +Example: HOC(H)O.[X] + [X] + [X] -> [X]~OC(H)O[X] + [X]H and an adsorbate with a single bond to the surface (e.g., XH). The formic acid is initially physisorbed via a vdW interaction through the carbonyl oxygen (*3). Upon dissociation, the R!H-R bond (*1-*4) breaks, the R!H (*1) forms a single bond to the surface site (*5), the carbonyl oxygen (*3) From a6e0856f18b8d95c89f726aab15f0800b80bd522 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 22:34:39 -0400 Subject: [PATCH 17/25] add description to Surface_Dissociation_vdWBidentate_Beta --- .../Surface_Dissociation_vdWBidentate_Beta/groups.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py index 7369fd0b79..505359f17b 100644 --- a/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdWBidentate_Beta/groups.py @@ -4,9 +4,10 @@ name = "Surface_Dissociation_vdWBidentate_Beta/groups" shortDesc = u"" longDesc = u""" -Surface bond fission of one species into two distinct adsorbates. Atom *1 is bonded to the surface (*3). The image below shows a single bond, but single, double, and triple are possible. What matters is that the bond between *1 and *2 must be single. - # NOTE: we should probably include vdW, too! - +Surface bond fission of a vdW bidentate adsorbate via beta-scission into a physisorbed species and an adsorbate with a single bond. +Example: [X]~OC(H)O[X] -> OCO.[X] + H[X] +The *1-*2 bond order (O-C) increases as *2 (C) releases *4 (R), +and the *3 (O) vdW bond 'breaks', releasing the physisorbed species. *4 | *1-*2=*3 *1=*2=*3 *4 @@ -15,8 +16,8 @@ The rate, which should be in mol/m2/s, -will be given by k * (mol/m2) * (mol/m2) -so k should be in (m2/mol/s) +will be given by k * (mol/m2) +so k should be in (1/s) """ template(reactants=["Combined"], products=["Adsorbate1", "Adsorbate2"], ownReverse=False) From 4f022bebba8c4740f1cd9c6b70de2badbd1c1304 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 22:37:38 -0400 Subject: [PATCH 18/25] add description to Surface_Abstraction_vdWBidentate_Beta --- .../Surface_Abstraction_vdWBidentate_Beta/groups.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py index fc74d4fe72..bc92f14523 100755 --- a/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py +++ b/input/kinetics/families/Surface_Abstraction_vdWBidentate_Beta/groups.py @@ -4,7 +4,12 @@ name = "Surface_Abstraction_vdWBidentate_Beta/groups" shortDesc = u"" longDesc = u""" -Surface abstraction of one atom to another adsorbate. The bond fission occurs not at the binding atom, but in the beta position of the adsorbate, that is the bond between Atom *2 and *3 is broken. Atom *1 is bonded to the surface (*5). The bond order between *1/*3 and the surface decreases. An example for this reaction is: COH* + CH2* = CO* + CH3*. The bond between *2 and *3 must be single. +Surface abstraction of the beta R!H-R atom of a vdW bidentate by a neighboring surface adsorbate. +Example: [X]~OC(H)O[X] + O=[X]-> OCO.[X] + O[X] + [X] +The bond fission occurs at the beta position: the R!H-H bond (*2-*4) breaks, and *4 (R) +is transferred to the abstracting adsorbate *7, which weakens its own surface bond (*7-*8) upon +gaining R. Simultaneously, the *1-*2 bond (O-R) strengthens and *3 (O) detaches from surface +site *6, releasing CO2. A vacant site (*6) is produced as a product. *4 | From 344f09255d6fd5f52b7fe8438b8bc50c090b875e Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 22:46:03 -0400 Subject: [PATCH 19/25] simplify Surface_Monodentate_to_vdWBidentate --- .../Surface_Monodentate_to_vdWBidentate/groups.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py index c8e6e54411..0fcd36ac5b 100644 --- a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py @@ -6,8 +6,8 @@ longDesc = u""" If a monodentate adsorbate has an internal double or triple bond, then it can fall over onto a vacant site, creating a bidentate. - *1-*2=*3 *1=*2-*3 - | ----> : | + *1-*2=*3 *1-*2=*3 + | ----> | : ~*4~ + ~*5~~ ~*4~~~~*5~~ The rate, which should be in mol/m2/s, @@ -20,10 +20,12 @@ reverse = "Surface_vdWBidentate_to_Monodentate" recipe(actions=[ - ['FORM_BOND', '*3', 1, '*5'], - ['CHANGE_BOND', '*2', -1, '*3'], - ['CHANGE_BOND', '*1', 1, '*2'], - ['CHANGE_BOND', '*1', -1, '*4'], + # ['FORM_BOND', '*3', 1, '*5'], + # ['CHANGE_BOND', '*2', -1, '*3'], + # ['CHANGE_BOND', '*1', 1, '*2'], + # ['CHANGE_BOND', '*1', -1, '*4'], +['FORM_BOND', '*3', 1, '*5'], +['CHANGE_BOND', '*3', -1, '*5'], ]) entry( From 6423d1473ae9aa15dbb4389c67f68016395f8abd Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Thu, 4 Jun 2026 22:49:30 -0400 Subject: [PATCH 20/25] fixup: Surface_Monodentate_to_vdWBidentate groups.py --- .../families/Surface_Monodentate_to_vdWBidentate/groups.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py index 0fcd36ac5b..aa44110d2c 100644 --- a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py @@ -20,10 +20,6 @@ reverse = "Surface_vdWBidentate_to_Monodentate" recipe(actions=[ - # ['FORM_BOND', '*3', 1, '*5'], - # ['CHANGE_BOND', '*2', -1, '*3'], - # ['CHANGE_BOND', '*1', 1, '*2'], - # ['CHANGE_BOND', '*1', -1, '*4'], ['FORM_BOND', '*3', 1, '*5'], ['CHANGE_BOND', '*3', -1, '*5'], ]) From 2ebd828a37680f8786673f48f1fe0ce4d4cac89e Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Fri, 5 Jun 2026 11:18:07 -0400 Subject: [PATCH 21/25] make Surface_Dissociation_vdW_to_vdWBidentate more restrictive --- .../families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py index 88f3fe8549..8c8d2abac2 100644 --- a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py @@ -45,7 +45,7 @@ multiplicity [1] 1 *1 R!H u0 px c0 {2,S} {4,S} 2 *2 R!H u0 px c0 {1,S} {3,D} -3 *3 R u0 px c0 {2,D} +3 *3 R!H u0 px c0 {2,D} 4 *4 R u0 px c0 {1,S} 5 *5 Xv u0 p0 c0 """, From 9d32cd286c043fa5c6a96a4fba42b42827a52437 Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Fri, 5 Jun 2026 11:20:39 -0400 Subject: [PATCH 22/25] change group in Surface_Monodentate_to_vdWBidentate --- .../families/Surface_Monodentate_to_vdWBidentate/groups.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py index aa44110d2c..8eb64c6366 100644 --- a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py @@ -30,7 +30,7 @@ group = """ 1 *1 O u0 p2 {2,S} {4,S} -2 *2 C u0 p0 {1,S} {3,D} +2 *2 R!H u0 p0 {1,S} {3,D} 3 *3 O u0 p2 {2,D} 4 *4 Xo u0 {1,S} """, From 47d6bdf6bf3dc00ceac1b493fa0802d6f2a3c71b Mon Sep 17 00:00:00 2001 From: Bjarne Kreitz Date: Fri, 5 Jun 2026 11:22:05 -0400 Subject: [PATCH 23/25] fix groups.py adjacency list for combined in Surface_Dissociation_vdW_to_vdWBidentate --- .../families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py index 8c8d2abac2..e0476c2e88 100644 --- a/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Dissociation_vdW_to_vdWBidentate/groups.py @@ -45,7 +45,7 @@ multiplicity [1] 1 *1 R!H u0 px c0 {2,S} {4,S} 2 *2 R!H u0 px c0 {1,S} {3,D} -3 *3 R!H u0 px c0 {2,D} +3 *3 O u0 p2 c0 {2,D} 4 *4 R u0 px c0 {1,S} 5 *5 Xv u0 p0 c0 """, From 2898c55873d0bdb4b229b5df215b3a55116c8ab3 Mon Sep 17 00:00:00 2001 From: Kirk Badger Date: Fri, 5 Jun 2026 11:45:04 -0400 Subject: [PATCH 24/25] update longdesc for Surface_Monodentate_to_vdWBidentate --- .../families/Surface_Monodentate_to_vdWBidentate/groups.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py index 8eb64c6366..224862e6ad 100644 --- a/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py +++ b/input/kinetics/families/Surface_Monodentate_to_vdWBidentate/groups.py @@ -4,7 +4,9 @@ name = "Surface_Monodentate_to_vdWBidentate" shortDesc = u"" longDesc = u""" -If a monodentate adsorbate has an internal double or triple bond, then it can fall over onto a vacant site, creating a bidentate. +If a monodentate adsorbate bound through oxygen with a single bond has +double bond to another oxygen in the beta position, the adsorbate can fall +over into a resonant vdW bidentate configuration. *1-*2=*3 *1-*2=*3 | ----> | : From 3f3b978251549da206c2a683fd4457ca63480e4a Mon Sep 17 00:00:00 2001 From: Jackson Burns <33505528+JacksonBurns@users.noreply.github.com> Date: Mon, 8 Jun 2026 14:38:29 -0400 Subject: [PATCH 25/25] pseudo-revert temporary branch override (see ext) this is not actual revert, since that previous commit (https://github.com/ReactionMechanismGenerator/RMG-Py/commit/5e967e6598ed19b62b30ba90674d85943c4652f9) also fixed a typo in this variable name --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a24209ac59..bba9b87a4c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -37,7 +37,7 @@ concurrency: env: # if running on RMG-Database but requiring changes on an un-merged branch of RMG-Py, replace # main with the name of the branch - RMG_PY_BRANCH: vdW_bonds + RMG_PY_BRANCH: main # RMS branch to use for ReactionMechanismSimulator installation RMS_BRANCH: for_rmg # RMS mode used for install_rms.sh