diff --git a/rmgpy/data/thermo.py b/rmgpy/data/thermo.py index 6e4362aace..a0ebe6a371 100644 --- a/rmgpy/data/thermo.py +++ b/rmgpy/data/thermo.py @@ -1272,11 +1272,11 @@ def setDeltaAtomicAdsorptionEnergies(self, bindingEnergies): # this depends on the two metal surfaces, the reference one # used in the database of adsorption energies, and the desired surface # These are the reference ones, Ni(111), from Blaylock's supplementary material - deltaAtomicAdosrptionEnergy = { - 'C': rmgpy.quantity.Energy(-5.997, 'eV/molecule'), - 'H': rmgpy.quantity.Energy(-2.778, 'eV/molecule'), - 'O': rmgpy.quantity.Energy(-4.485, 'eV/molecule') - } + # deltaAtomicAdosrptionEnergy = { + # 'C': rmgpy.quantity.Energy(-5.997, 'eV/molecule'), + # 'H': rmgpy.quantity.Energy(-2.778, 'eV/molecule'), + # 'O': rmgpy.quantity.Energy(-4.485, 'eV/molecule') + # } # These are for Pt, from Katrin deltaAtomicAdosrptionEnergy = { 'C': rmgpy.quantity.Energy(-6.750, 'eV/molecule'), @@ -1284,7 +1284,7 @@ def setDeltaAtomicAdsorptionEnergies(self, bindingEnergies): 'O': rmgpy.quantity.Energy(-3.586, 'eV/molecule'), 'N': rmgpy.quantity.Energy(-4.352, 'eV/molecule'), } - for element in 'CHO': + for element in 'CHON': deltaAtomicAdosrptionEnergy[element].value_si = bindingEnergies[element].value_si - deltaAtomicAdosrptionEnergy[element].value_si self.deltaAtomicAdsorptionEnergy = deltaAtomicAdosrptionEnergy @@ -1332,7 +1332,7 @@ def correctBindingEnergy(self, thermo, species): findCp0andCpInf(species, thermo) ## now edit the adsorptionThermo using LSR - for element in 'CHO': + for element in 'CHON': changeInBindingEnergy = self.deltaAtomicAdsorptionEnergy[element].value_si * normalizedBonds[element] thermo.H298.value_si += changeInBindingEnergy thermo.comment += " Binding energy corrected by LSR." @@ -1381,6 +1381,9 @@ def getThermoDataForSurfaceSpecies(self, species): elif bond.isTriple(): bondedAtom.incrementRadical() bondedAtom.incrementLonePairs() + elif bond.isQuadruple(): + bondedAtom.incrementRadical() + bondedAtom.incrementLonePairs() else: raise NotImplementedError("Can't remove surface bond of type {}".format(bond.order)) diff --git a/rmgpy/rmg/input.py b/rmgpy/rmg/input.py index 92d0f0956a..2ccb81e489 100644 --- a/rmgpy/rmg/input.py +++ b/rmgpy/rmg/input.py @@ -117,14 +117,15 @@ def convertBindingEnergies(bindingEnergies): :return: the processed and checked dictionary """ if bindingEnergies is None: - bindingEnergies = { # default values for Ni(111) - 'C':(-5.997, 'eV/molecule'), - 'H':(-2.778, 'eV/molecule'), - 'O':(-4.485, 'eV/molecule'), + bindingEnergies = { # default values for Pt(111) + 'C':(-6.750, 'eV/molecule'), + 'H':(-2.479, 'eV/molecule'), + 'O':(-3.586, 'eV/molecule'), + 'N':(-4.352, 'eV/molecule'), } if not isinstance(bindingEnergies, dict): raise InputError("bindingEnergies should be None (for default) or a dict.") newDict = {} - for element in 'CHO': + for element in 'CHON': try: newDict[element] = Energy(bindingEnergies[element]) except KeyError: