From 20add673fb8be666422a5a082ab7c06e161906dd Mon Sep 17 00:00:00 2001 From: Richard West Date: Tue, 21 Jun 2016 11:54:25 -0400 Subject: [PATCH] Approximate Cp0 and CpInf for adsorbed species. See https://github.com/cfgoldsmith/RMG-Py/issues/5 for more detailed version. Heat capacity for surface species is 0.01 not 0. Absolute 0 causes problem. --- rmgpy/molecule/molecule.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rmgpy/molecule/molecule.py b/rmgpy/molecule/molecule.py index 457eb34a872..d0d671344ec 100644 --- a/rmgpy/molecule/molecule.py +++ b/rmgpy/molecule/molecule.py @@ -1768,6 +1768,8 @@ def calculateCp0(self): """ Return the value of the heat capacity at zero temperature in J/mol*K. """ + if self.containsSurfaceSite(): + return 0.01 if len(self.atoms) == 1: return 2.5 * constants.R else: @@ -1779,10 +1781,13 @@ def calculateCpInf(self): """ cython.declare(Natoms=cython.int, Nvib=cython.int, Nrotors=cython.int) + if self.containsSurfaceSite(): + # ToDo: internal rotors could still act as rotors + return constants.R * 3 * len(self.vertices) + if len(self.vertices) == 1: return self.calculateCp0() else: - Natoms = len(self.vertices) Nvib = 3 * Natoms - (5 if self.isLinear() else 6) Nrotors = self.countInternalRotors()