From ac2cc758d00c59add46528d6ff38b815691b1726 Mon Sep 17 00:00:00 2001 From: Sevy Harris Date: Tue, 7 Apr 2026 16:09:33 -0400 Subject: [PATCH] Add coverage-dependent thermo lib for example use There is a PR in progress to enable RMG to read coverage dependent thermo from libraries https://github.com/ReactionMechanismGenerator/RMG-Py/pull/2646, but we have none in RMG-database to use as examples, so this adds a library with Jongyoon's CO coverage dependence corrections on Pt applied on top of the current surfaceThermoPt111 entry for XCO. This will make it much easier to share examples of using coverage dependent thermo in RMG. --- .../libraries/surfaceThermoCovDepPt111.py | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 input/thermo/libraries/surfaceThermoCovDepPt111.py diff --git a/input/thermo/libraries/surfaceThermoCovDepPt111.py b/input/thermo/libraries/surfaceThermoCovDepPt111.py new file mode 100644 index 0000000000..1d58ad9f38 --- /dev/null +++ b/input/thermo/libraries/surfaceThermoCovDepPt111.py @@ -0,0 +1,76 @@ +name = "Coverage Dependent Thermo for Pt(111)" +shortDesc = u"thermo with coverage dependence for Pt(111) surface species" +longDesc = u""" +COX coverage dependence as calculated by Jongyoon Bae, Bjarne Kreitz, Andrew A. Peterson, and C. Franklin Goldsmith +Journal of Chemical Information and Modeling 2025 65 (7), 3461-3476 +DOI: 10.1021/acs.jcim.4c02167 +Polynomial coeffients taken from global minimum Pt Table S3. See Supplemental Material. +""" + + +entry( + index = 1, + label = "X", + 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 = "Pt", + facet = "111", +) + + +entry( + index = 2, + label = "XCO", + molecule = +""" +1 X u0 p0 c0 {2,D} +2 C u0 p0 c0 {1,D} {3,D} +3 O u0 p2 c0 {2,D} +""", + thermo=NASA( + polynomials=[ + NASAPolynomial(coeffs=[1.42895000E+00, 1.40374509E-02, -2.21178920E-05, 1.78659581E-08, -5.71478802E-12, + -3.45688484E+04, -7.78265517E+00], Tmin=(298.0, 'K'), Tmax=(1000.0, 'K')), + NASAPolynomial(coeffs=[5.48656312E+00, -1.68118543E-03, 3.09030310E-06, -1.71186643E-09, 3.15864598E-13, + -3.54815495E+04, -2.76788365E+01], Tmin=(1000.0, 'K'), Tmax=(2000.0, 'K')), + ], + Tmin=(298.0, 'K'), + Tmax=(2000.0, '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.312, 'eV/molecule'), (-0.323, 'eV/molecule'), (0.890, 'eV/molecule')], + 'entropy-coefficients': [(1.11e-4, 'eV/(molecule*K)'), (-6.48e-5, 'eV/(molecule*K)'), (-1.63e-4, 'eV/(molecule*K)')] + } + }, + ), + longDesc=u"""Calculated by Bjarne Kreitz at Brown University using statistical mechanics (file: ThermoPt111.py). + Based on DFT calculations by Bjarne Kreitz from Brown University. DFT calculations were performed with Quantum Espresso + using PAW pseudopotentials and the BEEF-vdW functional for an optimized 3x3 supercell (1/9ML coverage) + following the procedure outlined by Blondal et al (DOI:10.1021/acs.iecr.9b01464). The following settings were applied: + kpoints=(5x5x1), 4 layers (2 bottom layers fixed), ecutwfc=60 Ry, smearing='mazari-vanderbilt', mixing_mode='local-TF', + fmax=2.5e-2. DFT binding energy: -1.415 eV. + COX coverage dependence calculated by Jongyoon Bae, Bjarne Kreitz, Andrew A. Peterson, and C. Franklin Goldsmith + Journal of Chemical Information and Modeling 2025 65 (7), 3461-3476 + DOI: 10.1021/acs.jcim.4c02167 + Polynomial coeffients taken from global minimum Pt Table S3. See Supplemental Material. + """, + metal="Pt", + facet="111", +)