From bd1c9057a4089d2b6f1c45c4d4eb1503f8fd88a4 Mon Sep 17 00:00:00 2001 From: 12Chao Date: Wed, 29 May 2024 12:02:04 -0400 Subject: [PATCH 1/8] data for cov-dep thermo test --- .../Methane/Deutschmann_Ni_full/reactions.py | 2 +- input/thermo/libraries/test_thermo_cov.py | 84 +++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 input/thermo/libraries/test_thermo_cov.py diff --git a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py index a549da1f55..c2b0af6e65 100644 --- a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py +++ b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py @@ -333,7 +333,7 @@ index = 38, label = "CX + HOX <=> HX + OCX", kinetics = SurfaceArrhenius( - A=(3.88E21, 'm^2/(mol*s)'), + A=(3.88E23, 'm^2/(mol*s)'), n = 0.188, Ea=(62500.0, 'J/mol'), Tmin = (200, 'K'), diff --git a/input/thermo/libraries/test_thermo_cov.py b/input/thermo/libraries/test_thermo_cov.py new file mode 100644 index 0000000000..a87df279df --- /dev/null +++ b/input/thermo/libraries/test_thermo_cov.py @@ -0,0 +1,84 @@ +name = "test_thermo_cov" +shortDesc = u"test for thermo coverage dependent models" +longDesc = u""" +A few surface species adsorbed on Ni(111), to test the coverage-dependent thermo models. +""" + + +entry( + index = 1, + label = "*", + molecule = +""" +1 X u0 p0 c0 +""", + thermo = NASA( + polynomials = [ + NASAPolynomial(coeffs=[0.0,0,0,0,0,0.0,0.0], Tmin=(298,'K'), Tmax=(1000,'K')), + NASAPolynomial(coeffs=[0.0,0,0,0,0,0.0,0.0], Tmin=(1000,'K'), Tmax=(2000,'K')), + ], + Tmin = (298,'K'), + Tmax = (2000,'K'), + ), + shortDesc = u"""library value for a vacant surface site""", + longDesc = u"""Zeros, by definition.""", + metal = "Ni", + facet = "111", +) + +entry( + index = 2, + label = "O_ads", + molecule = +""" +1 X u0 p0 c0 {2,D} +2 O u0 p2 c0 {1,D} +""", + thermo = NASA( + polynomials = [ + NASAPolynomial(coeffs=[1.79722382E-01, 1.25453156E-02, -2.29924588E-05, 1.94187177E-08, -6.22414099E-12, -1.73402246E+04, -2.22409728E+00], Tmin=(298.0,'K'), Tmax=(1000.0, 'K')), + NASAPolynomial(coeffs=[2.92050897E+00, -2.70455589E-04, 5.15610634E-07, -2.93911213E-10, 5.54030466E-14, -1.78369003E+04, -1.50940536E+01], Tmin=(1000.0,'K'), Tmax=(2000.0, 'K')), + ], + Tmin = (298.0, 'K'), + Tmax = (2000.0, 'K'), + thermo_coverage_dependence = {""" + 1 X u0 p0 c0 {2,D} + 2 O u0 p2 c0 {1,D} + """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.04321765,1.04225839,0], 'entropy-coefficients':[0,0,0]}}, + ), + longDesc = u"""Calculated by Katrin Blondal at Brown University using statistical mechanics (file: compute_NASA_for_Pt-adsorbates.ipynb). + Based on DFT calculations by Jelena Jelic at KIT. + DFT binding energy: -3.586 eV. + Linear scaling parameters: ref_adatom_O = -3.586 eV, psi = 0.00000 eV, gamma_O(X) = 1.000.""", + metal = "Pt", + facet = "111", +) + +entry( + index = 3, + label = "CO*", + molecule = +""" +1 C u0 p0 {2,D} {3,D} +2 O u0 p2 {1,D} +3 X u0 p0 {1,D} +""", + thermo = NASA( + polynomials = [ + NASAPolynomial(coeffs=[ 3.13851368E+00, 7.37719433E-03, -1.21673211E-05, 1.06231734E-08, -3.55085256E-12, -3.01011015E+04, -1.40684039E+01], Tmin=(298,'K'), Tmax=(1000,'K')), + NASAPolynomial(coeffs=[ 4.39015575E+00, 1.21423223E-03, 2.26543548E-08, -2.74772156E-10, 6.84375847E-14, -3.03339593E+04, -1.99186406E+01], Tmin=(1000,'K'), Tmax=(2000,'K')), + ], + Tmin = (298,'K'), + Tmax = (2000,'K'), + thermo_coverage_dependence = {""" + 1 C u0 p0 {2,D} {3,D} + 2 O u0 p2 {1,D} + 3 X u0 p0 {1,D} + """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.0503, 0.8575, 0], 'entropy-coefficients':[0,0,0]}}, + ), + shortDesc = u"""CO adsorbed on nickel (?)""", + longDesc = u"""Estimated via CFG-TiC + Unsure of adjacency list.""", + metal = "Ni", + facet = "111", +) From 8f3befe8c83bcef4518cde9f1447bbc7b01c27c9 Mon Sep 17 00:00:00 2001 From: 12Chao Date: Fri, 5 Jul 2024 12:31:43 -0400 Subject: [PATCH 2/8] Add in the cov-dep thermo paraemter for CO on Ni --- input/thermo/libraries/test_thermo_cov.py | 58 +++++++++++------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/input/thermo/libraries/test_thermo_cov.py b/input/thermo/libraries/test_thermo_cov.py index a87df279df..df982d5d26 100644 --- a/input/thermo/libraries/test_thermo_cov.py +++ b/input/thermo/libraries/test_thermo_cov.py @@ -26,36 +26,36 @@ facet = "111", ) -entry( - index = 2, - label = "O_ads", - molecule = -""" -1 X u0 p0 c0 {2,D} -2 O u0 p2 c0 {1,D} -""", - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[1.79722382E-01, 1.25453156E-02, -2.29924588E-05, 1.94187177E-08, -6.22414099E-12, -1.73402246E+04, -2.22409728E+00], Tmin=(298.0,'K'), Tmax=(1000.0, 'K')), - NASAPolynomial(coeffs=[2.92050897E+00, -2.70455589E-04, 5.15610634E-07, -2.93911213E-10, 5.54030466E-14, -1.78369003E+04, -1.50940536E+01], Tmin=(1000.0,'K'), Tmax=(2000.0, 'K')), - ], - Tmin = (298.0, 'K'), - Tmax = (2000.0, 'K'), - thermo_coverage_dependence = {""" - 1 X u0 p0 c0 {2,D} - 2 O u0 p2 c0 {1,D} - """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.04321765,1.04225839,0], 'entropy-coefficients':[0,0,0]}}, - ), - longDesc = u"""Calculated by Katrin Blondal at Brown University using statistical mechanics (file: compute_NASA_for_Pt-adsorbates.ipynb). - Based on DFT calculations by Jelena Jelic at KIT. - DFT binding energy: -3.586 eV. - Linear scaling parameters: ref_adatom_O = -3.586 eV, psi = 0.00000 eV, gamma_O(X) = 1.000.""", - metal = "Pt", - facet = "111", -) +# entry( +# index = 2, +# label = "O_ads", +# molecule = +# """ +# 1 X u0 p0 c0 {2,D} +# 2 O u0 p2 c0 {1,D} +# """, +# thermo = NASA( +# polynomials = [ +# NASAPolynomial(coeffs=[1.79722382E-01, 1.25453156E-02, -2.29924588E-05, 1.94187177E-08, -6.22414099E-12, -1.73402246E+04, -2.22409728E+00], Tmin=(298.0,'K'), Tmax=(1000.0, 'K')), +# NASAPolynomial(coeffs=[2.92050897E+00, -2.70455589E-04, 5.15610634E-07, -2.93911213E-10, 5.54030466E-14, -1.78369003E+04, -1.50940536E+01], Tmin=(1000.0,'K'), Tmax=(2000.0, 'K')), +# ], +# Tmin = (298.0, 'K'), +# Tmax = (2000.0, 'K'), +# thermo_coverage_dependence = {""" +# 1 X u0 p0 c0 {2,D} +# 2 O u0 p2 c0 {1,D} +# """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.04321765,1.04225839,0], 'entropy-coefficients':[0,0,0]}}, +# ), +# longDesc = u"""Calculated by Katrin Blondal at Brown University using statistical mechanics (file: compute_NASA_for_Pt-adsorbates.ipynb). +# Based on DFT calculations by Jelena Jelic at KIT. +# DFT binding energy: -3.586 eV. +# Linear scaling parameters: ref_adatom_O = -3.586 eV, psi = 0.00000 eV, gamma_O(X) = 1.000.""", +# metal = "Pt", +# facet = "111", +# ) entry( - index = 3, + index = 2, label = "CO*", molecule = """ @@ -74,7 +74,7 @@ 1 C u0 p0 {2,D} {3,D} 2 O u0 p2 {1,D} 3 X u0 p0 {1,D} - """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.0503, 0.8575, 0], 'entropy-coefficients':[0,0,0]}}, + """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.18638701, 0.46212068, 1.2758056], 'entropy-coefficients':[0,0,0]}}, ), shortDesc = u"""CO adsorbed on nickel (?)""", longDesc = u"""Estimated via CFG-TiC From b49f4e66a1a8b86a8e5ed3f9988199199e80db41 Mon Sep 17 00:00:00 2001 From: 12Chao Date: Fri, 5 Jul 2024 12:35:21 -0400 Subject: [PATCH 3/8] Add in the cov dep kinetics from doi.org/10.1021/acs.iecr.1c00389 ref 36 --- .../Methane/Deutschmann_Ni_full/reactions.py | 59 +++++++++++++++---- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py index c2b0af6e65..d4455efad1 100644 --- a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py +++ b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py @@ -163,6 +163,7 @@ Ea=(157900., 'J/mol'), Tmin = (298, 'K'), Tmax = (2000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-120000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u""" @@ -321,6 +322,7 @@ Ea=(116200.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R36""", @@ -329,15 +331,31 @@ #skip R37 +# entry( +# index = 38, +# label = "CX + HOX <=> HX + OCX", +# kinetics = SurfaceArrhenius( +# A=(3.88E23, 'm^2/(mol*s)'), +# n = 0.188, +# Ea=(62500.0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""R38""", +# metal = "Ni", +# ) + entry( index = 38, - label = "CX + HOX <=> HX + OCX", + label = "HX + OCX <=> CX + HOX", kinetics = SurfaceArrhenius( - A=(3.88E23, 'm^2/(mol*s)'), - n = 0.188, - Ea=(62500.0, 'J/mol'), + A=(3.522E14, 'm^2/(mol*s)'), + n = -0.188, + Ea=(105450, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R38""", @@ -353,6 +371,7 @@ Ea=(241700.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-100000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R39 is used instead of R40 to avoid having CO2(s) as reactant""", @@ -370,6 +389,7 @@ Ea=(123600.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R41. Deutschmann actually uses vdW CO2, but we skip it and use reverse reaction""", @@ -380,23 +400,39 @@ #skip R42 #skip R43 +# entry( +# index = 44, +# label = "HOCXO + Ni <=> OCX + HOX", +# kinetics = SurfaceArrhenius( +# A=(1.46E20, 'm^2/(mol*s)'), +# n = -0.213, +# Ea=(54300.0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""R44""", +# metal = "Ni", +# ) + +#skip R45 + entry( - index = 44, - label = "HOCXO + Ni <=> OCX + HOX", + index = 45, + label = "OCX + HOX <=> HOCXO + Ni", kinetics = SurfaceArrhenius( - A=(1.46E20, 'm^2/(mol*s)'), - n = -0.213, - Ea=(54300.0, 'J/mol'), + A=(6.003E17, 'm^2/(mol*s)'), + n = 0.213, + Ea=(97630.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R44""", metal = "Ni", ) -#skip R45 - entry( index = 46, label = "HOCXO + Ni <=> CO2 + HX + Ni", @@ -424,6 +460,7 @@ Ea=(0.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R48""", From 41565c109ea0157e990db58a9489ebe47b1941e5 Mon Sep 17 00:00:00 2001 From: 12Chao Date: Mon, 9 Dec 2024 20:42:55 -0500 Subject: [PATCH 4/8] correct the cov dep data to be consistent with the literature --- .../libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py index d4455efad1..bc21c29a8b 100644 --- a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py +++ b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py @@ -163,7 +163,7 @@ Ea=(157900., 'J/mol'), Tmin = (298, 'K'), Tmax = (2000, 'K'), - coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-120000, 'J/mol')}}, + coverage_dependence = {'CX': {'a': 0.0, 'm': 0.0, 'E': (-120000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u""" From 94b0dd94c8b6d02f17ba4afcf10e33b084cc828c Mon Sep 17 00:00:00 2001 From: 12Chao Date: Mon, 9 Dec 2024 20:45:26 -0500 Subject: [PATCH 5/8] Add reactions from for methanation on Ni from literature --- .../Surface/Methane/Kreitz_Ni/dictionary.txt | 128 ++++++++++++++++++ .../Surface/Methane/Kreitz_Ni/reactions.py | 87 ++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 input/kinetics/libraries/Surface/Methane/Kreitz_Ni/dictionary.txt create mode 100644 input/kinetics/libraries/Surface/Methane/Kreitz_Ni/reactions.py diff --git a/input/kinetics/libraries/Surface/Methane/Kreitz_Ni/dictionary.txt b/input/kinetics/libraries/Surface/Methane/Kreitz_Ni/dictionary.txt new file mode 100644 index 0000000000..8e683c9a53 --- /dev/null +++ b/input/kinetics/libraries/Surface/Methane/Kreitz_Ni/dictionary.txt @@ -0,0 +1,128 @@ + +Ni +1 X u0 p0 c0 + +O2 +multiplicity 3 +1 O u1 p2 c0 {2,S} +2 O u1 p2 c0 {1,S} + + +CH4 +1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} +2 H u0 p0 c0 {1,S} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} +5 H u0 p0 c0 {1,S} + + +H2 +1 H u0 p0 c0 {2,S} +2 H u0 p0 c0 {1,S} + + + +H2O +1 O u0 p2 c0 {2,S} {3,S} +2 H u0 p0 c0 {1,S} +3 H u0 p0 c0 {1,S} + + + +CO +1 C u0 p1 c-1 {2,T} +2 O u0 p1 c+1 {1,T} + + +CO2 +1 C u0 p0 c0 {2,D} {3,D} +2 O u0 p2 c0 {1,D} +3 O u0 p2 c0 {1,D} + + +CH2O +1 C u0 p0 c0 {2,D} {3,S} {4,S} +2 O u0 p2 c0 {1,D} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} + + + +CH3OH +1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} +2 O u0 p2 c0 {1,S} {6,S} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} +5 H u0 p0 c0 {1,S} +6 H u0 p0 c0 {2,S} + + + +OX +1 X u0 p0 c0 {2,D} +2 O u0 p2 c0 {1,D} + + +CH3X +1 C u0 p0 {2,S} {3,S} {4,S} {5,S} +2 H u0 p0 {1,S} +3 H u0 p0 {1,S} +4 H u0 p0 {1,S} +5 X u0 p0 {1,S} + +CH2X +1 C u0 p0 {2,S} {3,S} {4,D} +2 H u0 p0 {1,S} +3 H u0 p0 {1,S} +4 X u0 p0 {1,D} + +CHX +1 C u0 p0 {2,S} {3,T} +2 H u0 p0 {1,S} +3 X u0 p0 {1,T} + +CX +1 C u0 p0 {2,Q} +2 X u0 p0 {1,Q} + +HX +1 H u0 p0 {2,S} +2 X u0 p0 {1,S} + + +HOX +1 O u0 p2 {2,S} {3,S} +2 H u0 p0 {1,S} +3 X u0 p0 {1,S} + + +OCX +1 C u0 p0 {2,D} {3,D} +2 O u0 p2 {1,D} +3 X u0 p0 {1,D} + +OCXOX +1 C u0 p0 {2,D} {3,S} {4,S} +2 O u0 p2 {1,D} +3 X u0 p0 {1,S} +4 O u0 p2 {1,S} {5,S} +5 X u0 p0 {4,S} + +HOCXO +1 C u0 p0 {2,D} {3,S} {5,S} +2 O u0 p2 {1,D} +3 O u0 p2 {1,S} {4,S} +4 H u0 p0 {3,S} +5 X u0 p0 {1,S} + +CXHO +1 C u0 p0 {2,D} {3,S} {4,S} +2 O u0 p2 {1,D} +3 H u0 p0 {1,S} +4 X u0 p0 {1,S} + +CO2X +1 C u0 p0 c0 {2,D} {3,D} +2 O u0 p2 c0 {1,D} +3 O u0 p2 c0 {1,D} +4 X u0 p0 c0 \ No newline at end of file diff --git a/input/kinetics/libraries/Surface/Methane/Kreitz_Ni/reactions.py b/input/kinetics/libraries/Surface/Methane/Kreitz_Ni/reactions.py new file mode 100644 index 0000000000..52c778e22b --- /dev/null +++ b/input/kinetics/libraries/Surface/Methane/Kreitz_Ni/reactions.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Bjarne_Ni" +shortDesc = u"" +longDesc = u""" +test surface mechanism: based upon Bjarne Kreitz's work: +"Quantifying the Impact of Parametric Uncertainty on Automatic Mechanism Generation for CO2 Hydrogenation on Ni(111)" +Bjarne Kreitz et al +ACS Catalysis, 2021, 1, 10, 1656–1673 +""" + +entry( + index = 1, + label = "CHX + Ni <=> CX + HX", + kinetics = SurfaceArrhenius( + A=(8.75E17, 'm^2/(mol*s)'), + n = 0, + Ea=(122500, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""Default""", + metal = "Ni", +) + +entry( + index = 2, + label = "CH2X + Ni <=> CHX + HX", + kinetics = SurfaceArrhenius( + A=(4.26E17, 'm^2/(mol*s)'), + n = 0, + Ea=(18900, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""Default""", + metal = "Ni", +) + +entry( + index = 3, + label = "CH3X + Ni <=> CH2X + HX", + kinetics = SurfaceArrhenius( + A=(6.1E17, 'm^2/(mol*s)'), + n = 0, + Ea=(55600, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""Default""", + metal = "Ni", +) + +entry( + index = 4, + label = "CH2X + CX <=> CHX + CHX", + kinetics = SurfaceArrhenius( + A=(2.33E17, 'm^2/(mol*s)'), + n = 0, + Ea=(66000, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""Default""", + metal = "Ni", +) + +entry( + index = 5, + label = "CH3X + CX <=> CH2X + CHX", + kinetics = SurfaceArrhenius( + A=(6.13E17, 'm^2/(mol*s)'), + n = 0, + Ea=(82900, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""Default""", + metal = "Ni", +) + From b1fcda731c493915d6d37eccf81b3e96eb228cf2 Mon Sep 17 00:00:00 2001 From: 12Chao Date: Mon, 9 Dec 2024 20:46:31 -0500 Subject: [PATCH 6/8] Add coverage dependent thermo models --- .../libraries/surfaceCovDepThermoNi111.py | 56 +++++++++++++ input/thermo/libraries/test_thermo_cov.py | 84 ------------------- 2 files changed, 56 insertions(+), 84 deletions(-) create mode 100644 input/thermo/libraries/surfaceCovDepThermoNi111.py delete mode 100644 input/thermo/libraries/test_thermo_cov.py diff --git a/input/thermo/libraries/surfaceCovDepThermoNi111.py b/input/thermo/libraries/surfaceCovDepThermoNi111.py new file mode 100644 index 0000000000..cdd0d1c64b --- /dev/null +++ b/input/thermo/libraries/surfaceCovDepThermoNi111.py @@ -0,0 +1,56 @@ +name = "surfaceCovDepThermoNi111" +shortDesc = u"Data for thermo coverage dependent models on Ni(111)" +longDesc = u""" +A few surface species adsorbed on Ni(111) to test the coverage-dependent thermo models. +""" + + +entry( + index = 1, + label = "*", + molecule = +""" +1 X u0 p0 c0 +""", + thermo = NASA( + polynomials = [ + NASAPolynomial(coeffs=[0.0,0,0,0,0,0.0,0.0], Tmin=(298,'K'), Tmax=(1000,'K')), + NASAPolynomial(coeffs=[0.0,0,0,0,0,0.0,0.0], Tmin=(1000,'K'), Tmax=(2000,'K')), + ], + Tmin = (298,'K'), + Tmax = (2000,'K'), + ), + shortDesc = u"""library value for a vacant surface site""", + longDesc = u"""Zeros, by definition.""", + metal = "Ni", + facet = "111", +) + +entry( + index = 2, + label = "CO*", + molecule = +""" +1 C u0 p0 {2,D} {3,D} +2 O u0 p2 {1,D} +3 X u0 p0 {1,D} +""", + thermo = NASA( + polynomials = [ + NASAPolynomial(coeffs=[ 3.13851368E+00, 7.37719433E-03, -1.21673211E-05, 1.06231734E-08, -3.55085256E-12, -3.01011015E+04, -1.40684039E+01], Tmin=(298,'K'), Tmax=(1000,'K')), + NASAPolynomial(coeffs=[ 4.39015575E+00, 1.21423223E-03, 2.26543548E-08, -2.74772156E-10, 6.84375847E-14, -3.03339593E+04, -1.99186406E+01], Tmin=(1000,'K'), Tmax=(2000,'K')), + ], + Tmin = (298,'K'), + Tmax = (2000,'K'), + thermo_coverage_dependence = {""" + 1 C u0 p0 {2,D} {3,D} + 2 O u0 p2 {1,D} + 3 X u0 p0 {1,D} + """:{'model': 'polynomial', 'enthalpy-coefficients':[(-17983.61447181034, 'J/mol'), (44587.872022684605, 'J/mol'), (123096.5401042523, 'J/mol')], 'entropy-coefficients':[(0, 'J/(mol*K)'), (0, 'J/(mol*K)'), (0, 'J/(mol*K)')]}}, + ), + shortDesc = u"""CO adsorbed on nickel (?)""", + longDesc = u"""Estimated via CFG-TiC + Unsure of adjacency list.""", + metal = "Ni", + facet = "111", +) diff --git a/input/thermo/libraries/test_thermo_cov.py b/input/thermo/libraries/test_thermo_cov.py deleted file mode 100644 index df982d5d26..0000000000 --- a/input/thermo/libraries/test_thermo_cov.py +++ /dev/null @@ -1,84 +0,0 @@ -name = "test_thermo_cov" -shortDesc = u"test for thermo coverage dependent models" -longDesc = u""" -A few surface species adsorbed on Ni(111), to test the coverage-dependent thermo models. -""" - - -entry( - index = 1, - label = "*", - molecule = -""" -1 X u0 p0 c0 -""", - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[0.0,0,0,0,0,0.0,0.0], Tmin=(298,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[0.0,0,0,0,0,0.0,0.0], Tmin=(1000,'K'), Tmax=(2000,'K')), - ], - Tmin = (298,'K'), - Tmax = (2000,'K'), - ), - shortDesc = u"""library value for a vacant surface site""", - longDesc = u"""Zeros, by definition.""", - metal = "Ni", - facet = "111", -) - -# entry( -# index = 2, -# label = "O_ads", -# molecule = -# """ -# 1 X u0 p0 c0 {2,D} -# 2 O u0 p2 c0 {1,D} -# """, -# thermo = NASA( -# polynomials = [ -# NASAPolynomial(coeffs=[1.79722382E-01, 1.25453156E-02, -2.29924588E-05, 1.94187177E-08, -6.22414099E-12, -1.73402246E+04, -2.22409728E+00], Tmin=(298.0,'K'), Tmax=(1000.0, 'K')), -# NASAPolynomial(coeffs=[2.92050897E+00, -2.70455589E-04, 5.15610634E-07, -2.93911213E-10, 5.54030466E-14, -1.78369003E+04, -1.50940536E+01], Tmin=(1000.0,'K'), Tmax=(2000.0, 'K')), -# ], -# Tmin = (298.0, 'K'), -# Tmax = (2000.0, 'K'), -# thermo_coverage_dependence = {""" -# 1 X u0 p0 c0 {2,D} -# 2 O u0 p2 c0 {1,D} -# """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.04321765,1.04225839,0], 'entropy-coefficients':[0,0,0]}}, -# ), -# longDesc = u"""Calculated by Katrin Blondal at Brown University using statistical mechanics (file: compute_NASA_for_Pt-adsorbates.ipynb). -# Based on DFT calculations by Jelena Jelic at KIT. -# DFT binding energy: -3.586 eV. -# Linear scaling parameters: ref_adatom_O = -3.586 eV, psi = 0.00000 eV, gamma_O(X) = 1.000.""", -# metal = "Pt", -# facet = "111", -# ) - -entry( - index = 2, - label = "CO*", - molecule = -""" -1 C u0 p0 {2,D} {3,D} -2 O u0 p2 {1,D} -3 X u0 p0 {1,D} -""", - thermo = NASA( - polynomials = [ - NASAPolynomial(coeffs=[ 3.13851368E+00, 7.37719433E-03, -1.21673211E-05, 1.06231734E-08, -3.55085256E-12, -3.01011015E+04, -1.40684039E+01], Tmin=(298,'K'), Tmax=(1000,'K')), - NASAPolynomial(coeffs=[ 4.39015575E+00, 1.21423223E-03, 2.26543548E-08, -2.74772156E-10, 6.84375847E-14, -3.03339593E+04, -1.99186406E+01], Tmin=(1000,'K'), Tmax=(2000,'K')), - ], - Tmin = (298,'K'), - Tmax = (2000,'K'), - thermo_coverage_dependence = {""" - 1 C u0 p0 {2,D} {3,D} - 2 O u0 p2 {1,D} - 3 X u0 p0 {1,D} - """:{'model': 'polynomial', 'enthalpy-coefficients':[-0.18638701, 0.46212068, 1.2758056], 'entropy-coefficients':[0,0,0]}}, - ), - shortDesc = u"""CO adsorbed on nickel (?)""", - longDesc = u"""Estimated via CFG-TiC - Unsure of adjacency list.""", - metal = "Ni", - facet = "111", -) From c228d3d8a9788358d7ab6c44c55d9d432e341fc4 Mon Sep 17 00:00:00 2001 From: 12Chao Date: Mon, 9 Dec 2024 21:25:34 -0500 Subject: [PATCH 7/8] Separate the new library from the old --- .../Deutschmann_Ni_full/dictionary.txt | 2 - .../Methane/Deutschmann_Ni_full/reactions.py | 59 +- .../Methane/Herrera_Delgado_Ni/dictionary.txt | 124 +++++ .../Methane/Herrera_Delgado_Ni/reactions.py | 519 ++++++++++++++++++ 4 files changed, 654 insertions(+), 50 deletions(-) create mode 100644 input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/dictionary.txt create mode 100644 input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/reactions.py diff --git a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/dictionary.txt b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/dictionary.txt index dc3a835871..d2d5e364cd 100644 --- a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/dictionary.txt +++ b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/dictionary.txt @@ -120,5 +120,3 @@ CXHO 2 O u0 p2 {1,D} 3 H u0 p0 {1,S} 4 X u0 p0 {1,S} - - diff --git a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py index bc21c29a8b..a549da1f55 100644 --- a/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py +++ b/input/kinetics/libraries/Surface/Methane/Deutschmann_Ni_full/reactions.py @@ -163,7 +163,6 @@ Ea=(157900., 'J/mol'), Tmin = (298, 'K'), Tmax = (2000, 'K'), - coverage_dependence = {'CX': {'a': 0.0, 'm': 0.0, 'E': (-120000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u""" @@ -322,7 +321,6 @@ Ea=(116200.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), - coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R36""", @@ -331,31 +329,15 @@ #skip R37 -# entry( -# index = 38, -# label = "CX + HOX <=> HX + OCX", -# kinetics = SurfaceArrhenius( -# A=(3.88E23, 'm^2/(mol*s)'), -# n = 0.188, -# Ea=(62500.0, 'J/mol'), -# Tmin = (200, 'K'), -# Tmax = (3000, 'K'), -# ), -# shortDesc = u"""Default""", -# longDesc = u"""R38""", -# metal = "Ni", -# ) - entry( index = 38, - label = "HX + OCX <=> CX + HOX", + label = "CX + HOX <=> HX + OCX", kinetics = SurfaceArrhenius( - A=(3.522E14, 'm^2/(mol*s)'), - n = -0.188, - Ea=(105450, 'J/mol'), + A=(3.88E21, 'm^2/(mol*s)'), + n = 0.188, + Ea=(62500.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), - coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R38""", @@ -371,7 +353,6 @@ Ea=(241700.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), - coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-100000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R39 is used instead of R40 to avoid having CO2(s) as reactant""", @@ -389,7 +370,6 @@ Ea=(123600.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), - coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R41. Deutschmann actually uses vdW CO2, but we skip it and use reverse reaction""", @@ -400,39 +380,23 @@ #skip R42 #skip R43 -# entry( -# index = 44, -# label = "HOCXO + Ni <=> OCX + HOX", -# kinetics = SurfaceArrhenius( -# A=(1.46E20, 'm^2/(mol*s)'), -# n = -0.213, -# Ea=(54300.0, 'J/mol'), -# Tmin = (200, 'K'), -# Tmax = (3000, 'K'), -# ), -# shortDesc = u"""Default""", -# longDesc = u"""R44""", -# metal = "Ni", -# ) - -#skip R45 - entry( - index = 45, - label = "OCX + HOX <=> HOCXO + Ni", + index = 44, + label = "HOCXO + Ni <=> OCX + HOX", kinetics = SurfaceArrhenius( - A=(6.003E17, 'm^2/(mol*s)'), - n = 0.213, - Ea=(97630.0, 'J/mol'), + A=(1.46E20, 'm^2/(mol*s)'), + n = -0.213, + Ea=(54300.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), - coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R44""", metal = "Ni", ) +#skip R45 + entry( index = 46, label = "HOCXO + Ni <=> CO2 + HX + Ni", @@ -460,7 +424,6 @@ Ea=(0.0, 'J/mol'), Tmin = (200, 'K'), Tmax = (3000, 'K'), - coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (50000, 'J/mol')}}, ), shortDesc = u"""Default""", longDesc = u"""R48""", diff --git a/input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/dictionary.txt b/input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/dictionary.txt new file mode 100644 index 0000000000..dc3a835871 --- /dev/null +++ b/input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/dictionary.txt @@ -0,0 +1,124 @@ + +Ni +1 X u0 p0 c0 + +O2 +multiplicity 3 +1 O u1 p2 c0 {2,S} +2 O u1 p2 c0 {1,S} + + +CH4 +1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} +2 H u0 p0 c0 {1,S} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} +5 H u0 p0 c0 {1,S} + + +H2 +1 H u0 p0 c0 {2,S} +2 H u0 p0 c0 {1,S} + + + +H2O +1 O u0 p2 c0 {2,S} {3,S} +2 H u0 p0 c0 {1,S} +3 H u0 p0 c0 {1,S} + + + +CO +1 C u0 p1 c-1 {2,T} +2 O u0 p1 c+1 {1,T} + + +CO2 +1 C u0 p0 c0 {2,D} {3,D} +2 O u0 p2 c0 {1,D} +3 O u0 p2 c0 {1,D} + + +CH2O +1 C u0 p0 c0 {2,D} {3,S} {4,S} +2 O u0 p2 c0 {1,D} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} + + + +CH3OH +1 C u0 p0 c0 {2,S} {3,S} {4,S} {5,S} +2 O u0 p2 c0 {1,S} {6,S} +3 H u0 p0 c0 {1,S} +4 H u0 p0 c0 {1,S} +5 H u0 p0 c0 {1,S} +6 H u0 p0 c0 {2,S} + + + +OX +1 X u0 p0 c0 {2,D} +2 O u0 p2 c0 {1,D} + + +CH3X +1 C u0 p0 {2,S} {3,S} {4,S} {5,S} +2 H u0 p0 {1,S} +3 H u0 p0 {1,S} +4 H u0 p0 {1,S} +5 X u0 p0 {1,S} + +CH2X +1 C u0 p0 {2,S} {3,S} {4,D} +2 H u0 p0 {1,S} +3 H u0 p0 {1,S} +4 X u0 p0 {1,D} + +CHX +1 C u0 p0 {2,S} {3,T} +2 H u0 p0 {1,S} +3 X u0 p0 {1,T} + +CX +1 C u0 p0 {2,Q} +2 X u0 p0 {1,Q} + +HX +1 H u0 p0 {2,S} +2 X u0 p0 {1,S} + + +HOX +1 O u0 p2 {2,S} {3,S} +2 H u0 p0 {1,S} +3 X u0 p0 {1,S} + + +OCX +1 C u0 p0 {2,D} {3,D} +2 O u0 p2 {1,D} +3 X u0 p0 {1,D} + +OCXOX +1 C u0 p0 {2,D} {3,S} {4,S} +2 O u0 p2 {1,D} +3 X u0 p0 {1,S} +4 O u0 p2 {1,S} {5,S} +5 X u0 p0 {4,S} + +HOCXO +1 C u0 p0 {2,D} {3,S} {5,S} +2 O u0 p2 {1,D} +3 O u0 p2 {1,S} {4,S} +4 H u0 p0 {3,S} +5 X u0 p0 {1,S} + +CXHO +1 C u0 p0 {2,D} {3,S} {4,S} +2 O u0 p2 {1,D} +3 H u0 p0 {1,S} +4 X u0 p0 {1,S} + + diff --git a/input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/reactions.py b/input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/reactions.py new file mode 100644 index 0000000000..c0842cebf4 --- /dev/null +++ b/input/kinetics/libraries/Surface/Methane/Herrera_Delgado_Ni/reactions.py @@ -0,0 +1,519 @@ +#!/usr/bin/env python +# encoding: utf-8 + +name = "Deutschmann_Ni" +shortDesc = u"" +longDesc = u""" +test surface mechanism: based upon Karla Herrera Delgado's work: +"Surface Reaction Kinetics for Oxidation and Reforming of H2, CO, and CH4 over Nickel-based Catalysts +https://publikationen.bibliothek.kit.edu/1000042474 +""" + + +entry( + index = 1, + label = "H2 + Ni + Ni <=> HX + HX", + kinetics = StickingCoefficient( + A = 3.2E-2, + n = 0, + Ea=(0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R1""", + metal = "Ni", +) + +#skip R2 + +#CFG: O2 is a special case: we need to treat it separately +entry( + index = 3, + label = "O2 + Ni + Ni <=> OX + OX", + kinetics = StickingCoefficient( + A = 4.36E-2, + n = -0.206, + Ea=(1.5E3, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R3""", + metal = "Ni", +) + +#skip R4 +#skip R5 vdW +#skip R6 vdW +#skip R7 vdW +#skip R8 vdW + +#CFG: CO is a special case: we need to treat it separately +entry( + index = 9, + label = "CO + Ni <=> OCX", + kinetics = StickingCoefficient( + A = 5.0E-1, + n = 0, + Ea=(0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R9 """, + metal = "Ni", +) + +#skip R10 +#skip R11 vdW +#skip R12 vdW +#skip R13 + +#entry( +# index = 7, +# label = "CH4 + Ni + Ni <=> CH3X + HX", +# kinetics = StickingCoefficient( +# A = 8.0E-3, +# n = 0, +# Ea=(0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""R11. Deutschmann actually has physisorbed ch4 going to ch3 + h""", +# metal = "Ni", +#) + +#CFG: Modified version of R14: reverse of dissociative adsorption +#since vdW is not yet functioning, we include this reaction in library +entry( + index = 14, + label = "CH3X + HX <=> CH4 + Ni + Ni", + kinetics = SurfaceArrhenius( + A=(1.44E18, 'm^2/(mol*s)'), + n = -0.087, + Ea=(63400.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R14. Deutschmann actually uses vdW CH4 as product, but we skip it and this reaction as the reverse of our adsorption step""", + metal = "Ni", +) + +#skip R15 + +entry( + index = 16, + label = "CH2X + HX <=> CH3X + Ni", + kinetics = SurfaceArrhenius( + A=(3.09E19, 'm^2/(mol*s)'), + n = -0.087, + Ea=(57200.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R16""", + metal = "Ni", +) + +#skip R17 + +entry( + index = 18, + label = "CHX + HX <=> CH2X + Ni", + kinetics = SurfaceArrhenius( + A=(9.77E20, 'm^2/(mol*s)'), + n = -0.087, + Ea=(81000.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R18""", + metal = "Ni", +) + +#Delgado has this reaction as exothermic. However, our own thermo has this reaction as endothermic. removing and replacing with reverse direction, R20. +#entry( +# index = 19, +# label = "CHX + Ni <=> CX + HX", +# kinetics = SurfaceArrhenius( +# A=(9.88E16, 'm^2/(mol*s)'), +# n = 0.5, +# Ea=(21900.0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""R19""", +# metal = "Ni", +#) + +entry( + index = 20, + label = "CX + HX <=> CHX + Ni", + degeneracy = 1, + kinetics = SurfaceArrhenius( + A=(1.70E20, 'm^2/(mol*s)'), + n = -0.5, + Ea=(157900., 'J/mol'), + Tmin = (298, 'K'), + Tmax = (2000, 'K'), + coverage_dependence = {'CX': {'a': 0.0, 'm': 0.0, 'E': (-120000, 'J/mol')}}, + ), + shortDesc = u"""Default""", + longDesc = u""" +"Surface Reaction Kinetics of Steam- and CO2-Reforming as well as Oxidation of Methane over Nickel-Based Catalysts" +Delgado et al +Catalysts, 2015, 5, 871-904. Reaction R20 +""", + metal = "Ni", +) +#skip R21 + +entry( + index = 22, + label = "CH3X + HOX <=> CH4 + OX + Ni", + kinetics = SurfaceArrhenius( + A=(2.98E18, 'm^2/(mol*s)'), + n = 0.101, + Ea=(25800.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R22. Deutschmann actually goes to vdW CH4, but we'll skip that. We input reverse direction""", + metal = "Ni", +) + +#skip R23 + +entry( + index = 24, + label = "CH2X + HOX <=> CH3X + OX", + kinetics = SurfaceArrhenius( + A=(1.39E17, 'm^2/(mol*s)'), + n = 0.101, + Ea=(19000.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R24""", + metal = "Ni", +) + +#skip R25 + +entry( + index = 26, + label = "CHX + HOX <=> CH2X + OX", + kinetics = SurfaceArrhenius( + A=(4.40E18, 'm^2/(mol*s)'), + n = 0.101, + Ea=(42400.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R26""", + metal = "Ni", +) + +#Delgado has this reaction as exothermic. However, our own thermo has this reaction as endothermic. removing and replacing with reverse direction, R28. +#entry( +# index = 27, +# label = "CHX + OX <=> CX + HOX", +# kinetics = SurfaceArrhenius( +# A=(2.47E17, 'm^2/(mol*s)'), +# n = 0.312, +# Ea=(57700.0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""R27""", +# metal = "Ni", +#) + +entry( + index = 28, + label = "HOX + CX <=> OX + CHX ", + degeneracy = 1, + kinetics = SurfaceArrhenius( + A=(2.43E17, 'm^2/(mol*s)'), + n = -0.312, + Ea=(118900.0, 'J/mol'), + Tmin = (298, 'K'), + Tmax = (2000, 'K'), + ), + #rank = 3, + shortDesc = u"""Default""", + longDesc = u""" +"Surface Reaction Kinetics of Steam- and CO2-Reforming as well as Oxidation of Methane over Nickel-Based Catalysts" +Delgado et al +Catalysts, 2015, 5, 871-904. Reaction R28 +""", + metal = "Ni", +) +#skip R29 vdW + + +entry( + index = 30, + label = "HX + HOX <=> H2O + Ni + Ni", + kinetics = SurfaceArrhenius( + A=(1.85E16, 'm^2/(mol*s)'), + n = 0.086, + Ea=(41500.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R30. Deutschmann actually goes to vdW H2O, but we'll skip that. We input reverse direction""", + metal = "Ni", +) + +#skip R31 + +entry( + index = 32, + label = "HOX + Ni <=> HX + OX", + kinetics = SurfaceArrhenius( + A=(2.25E16, 'm^2/(mol*s)'), + n = 0.188, + Ea=(29600.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R32""", + metal = "Ni", +) + +entry( + index = 33, + label = "HOX + HOX <=> H2O + OX + Ni", + kinetics = SurfaceArrhenius( + A=(2.34E16, 'm^2/(mol*s)'), + n = 0.274, + Ea=(92300.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R33""", + metal = "Ni", +) + +#skip R34 vdW +#skip R35 + +entry( + index = 36, + label = "OCX + Ni <=> CX + OX", + kinetics = SurfaceArrhenius( + A=(1.75E9, 'm^2/(mol*s)'), + n = 0.0, + Ea=(116200.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, + ), + shortDesc = u"""Default""", + longDesc = u"""R36""", + metal = "Ni", +) + +#skip R37 + +# entry( +# index = 38, +# label = "CX + HOX <=> HX + OCX", +# kinetics = SurfaceArrhenius( +# A=(3.88E23, 'm^2/(mol*s)'), +# n = 0.188, +# Ea=(62500.0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""R38""", +# metal = "Ni", +# ) + +entry( + index = 38, + label = "HX + OCX <=> CX + HOX", + kinetics = SurfaceArrhenius( + A=(3.522E14, 'm^2/(mol*s)'), + n = -0.188, + Ea=(105450, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, + ), + shortDesc = u"""Default""", + longDesc = u"""R38""", + metal = "Ni", +) + +entry( + index = 39, + label = "OCX + OCX <=> CO2 + Ni + CX", + kinetics = SurfaceArrhenius( + A=(1.62E10, 'm^2/(mol*s)'), + n = 0.5, + Ea=(241700.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-100000, 'J/mol')}}, + ), + shortDesc = u"""Default""", + longDesc = u"""R39 is used instead of R40 to avoid having CO2(s) as reactant""", + metal = "Ni", +) + +#skip R40 + +entry( + index = 41, + label = "OCX + OX <=> CO2 + Ni + Ni", + kinetics = SurfaceArrhenius( + A=(2.00E15, 'm^2/(mol*s)'), + n = 0.0, + Ea=(123600.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, + ), + shortDesc = u"""Default""", + longDesc = u"""R41. Deutschmann actually uses vdW CO2, but we skip it and use reverse reaction""", + metal = "Ni", +) + + +#skip R42 +#skip R43 + +# entry( +# index = 44, +# label = "HOCXO + Ni <=> OCX + HOX", +# kinetics = SurfaceArrhenius( +# A=(1.46E20, 'm^2/(mol*s)'), +# n = -0.213, +# Ea=(54300.0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""R44""", +# metal = "Ni", +# ) + +#skip R45 + +entry( + index = 45, + label = "OCX + HOX <=> HOCXO + Ni", + kinetics = SurfaceArrhenius( + A=(6.003E17, 'm^2/(mol*s)'), + n = 0.213, + Ea=(97630.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (-50000, 'J/mol')}}, + ), + shortDesc = u"""Default""", + longDesc = u"""R44""", + metal = "Ni", +) + +entry( + index = 46, + label = "HOCXO + Ni <=> CO2 + HX + Ni", + kinetics = SurfaceArrhenius( + A=(3.73E16, 'm^2/(mol*s)'), + n = 0.475, + Ea=(33600.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R46""", + metal = "Ni", +) + + +#skip R47 + +entry( + index = 48, + label = "CXHO + Ni <=> OCX + HX", + kinetics = SurfaceArrhenius( + A=(3.71E17, 'm^2/(mol*s)'), + n = 0.0, + Ea=(0.0, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + coverage_dependence = {'OCX': {'a': 0.0, 'm': 0.0, 'E': (50000, 'J/mol')}}, + ), + shortDesc = u"""Default""", + longDesc = u"""R48""", + metal = "Ni", +) + +#skip R49 + +entry( + index = 50, + label = "CHX + OX <=> CXHO + Ni", + kinetics = SurfaceArrhenius( + A=(4.59E16, 'm^2/(mol*s)'), + n = 0.0, + Ea=(109900, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R50""", + metal = "Ni", +) + + +entry( + index = 52, + label = "CXHO + HOX <=> HOCXO + HX", + kinetics = SurfaceArrhenius( + A=(2.28E16, 'm^2/(mol*s)'), + n = 0.263, + Ea=(15900, 'J/mol'), + Tmin = (200, 'K'), + Tmax = (3000, 'K'), + ), + shortDesc = u"""Default""", + longDesc = u"""R52""", + metal = "Ni", +) + + + + +# CFG: I removed this reaction and replaced it with a forbidden structure in the Surface_Adsorption_Single group. +#entry( +# index = 3, +# label = "O2 + Ni <=> O2X", +# kinetics = StickingCoefficient( +# A = 0.0, +# n = 0, +# Ea=(0, 'J/mol'), +# Tmin = (200, 'K'), +# Tmax = (3000, 'K'), +# ), +# shortDesc = u"""Default""", +# longDesc = u"""Prevent O2 non-dissociative adsorption""", +# metal = "Ni", +# ) From 44077f2d9e71f14b96a1e8363fd11d9fb6a56439 Mon Sep 17 00:00:00 2001 From: ssun30 Date: Mon, 27 Jan 2025 20:31:28 -0500 Subject: [PATCH 8/8] TMP: Switch CI to cov_dep_thermo branch of RMG-Py Revert this change after the sister PR is merged. --- .github/workflows/CI.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ab454df990..9c0c3f7493 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -54,8 +54,8 @@ jobs: - name: Checkout RMG-Py uses: actions/checkout@v4 with: - repository: ReactionMechanismGenerator/RMG-Py - ref: ${{ env.RMG_PY_BRANCH }} + repository: 12Chao/RMG-Py + ref: cov_dep_therm path: RMG-Py - name: Checkout RMG-database