Open cfgoldsmith opened 8 years ago
A brief note that when merging the official master, the treatment of default or omitted Cp0 and CpInf values during conversion from NASA polynomials changed. Just in case it makes a difference
This isn't exactly the problem @mazeau is working on, but it's pretty close, and she hasn't opened an issue in the tracker for her problem, so I'm posting here.
I think your culprit is here: https://github.com/mazeau/RMG-Py/blob/catmerge2/rmgpy/data/thermo.py#L1379
Where adsorbates estimated via adding an adsorption correction to a gas phase molecule currently have their Cp0 and CpInf set to None
.
Whether you fix it there, or perhaps around https://github.com/mazeau/RMG-Py/blob/catmerge2/rmgpy/data/thermo.py#L1125
We have a calculateCp0()
and calculateCpInf()
methods on both Species and Molecule eg. https://github.com/mazeau/RMG-Py/blob/catmerge2/rmgpy/molecule/molecule.py#L1637
and also a findCp0andCpInf(species, heatCap)
function at https://github.com/mazeau/RMG-Py/blob/catmerge2/rmgpy/data/thermo.py#L2349. Probably we should be using that one. See where else it is called from, to give you ideas as to where is an appropriate place for us to call it from.
CH3OH:X methanol VdW-bonded to a surface Before merging in the Master:
After merging in the Master:
The gas phase CH3OH (from the rmg website, probably equivalent to after the merge):
During our conference call on 18.Sept.2018, I suggested that we adopt the classical limit, which I am pretty sure is what RMG does anyway (for gas phase, that would be (3/2 + 3/2 + 3 N -6)R, where N is the number of atoms. I suggested that our original approach of 3 N R for adsorbates was fine and wasn't likely to cause problems. However, I don't think that is true. Specifically, some of our adsorbates -- pretty much all of the vdW, but really anything with a weak binding energy -- use a 2D gas approximation for the vibrational modes that correspond to frustrated translation. In this case, the correct classical limit would be (3 N -1)R. If the molecule is so weakly bound that we use the 2D gas approximation for frustrated rotation, then the limit becomes (3 N -2)R. So right now RMG-Cat will somehow increase the Cp by 1 or 2 R for those cases. We need to figure out how to avoid this.
RMG estimates Cp(0) and Cp(inf). For adsorbates, our current Cp(inf) is 3_N_R. This is not correct. The adsorbate can have internal rotors, and the four surface-adsorbate modes that are parallel to the surface will limit to 2D gas. A better estimate is: Cp(inf) = 3_NR - R * N{rotors in gas phase} * Cp{free rotors} - 2 * R * Cp(inf){2D translation} - 2 * R * Cp(inf){2D rotation} - R * Cp(inf){helicopter} where: Cp{free rotors} = 1/2 Cp(inf){2D translation} = 1/2 Cp(inf){2D rotation} = 1/2 Cp(inf){helicopter} = 1/2 or 1, depending upon the molecule and bond type. (e.g. 1/2 for single bonded polyatomic species, 1 otherwise)
We will fix this later. See Issue #1