cfgoldsmith / RMG-Py

Python version of the amazing Reaction Mechanism Generator (RMG).
http://reactionmechanismgenerator.github.io/RMG-Py/
Other
1 stars 4 forks source link

Estimate Cp(inf) for adsorbates #5

Open cfgoldsmith opened 8 years ago

cfgoldsmith commented 8 years ago

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

mazeau commented 6 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

rwest commented 6 years ago

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.

mazeau commented 6 years ago

CH3OH:X methanol VdW-bonded to a surface Before merging in the Master: screen shot 2018-07-06 at 10 37 27 am

After merging in the Master: screen shot 2018-07-06 at 10 37 36 am

The gas phase CH3OH (from the rmg website, probably equivalent to after the merge): screen shot 2018-07-06 at 10 37 46 am

cfgoldsmith commented 6 years ago

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.