计算化学公社

标题: 相同计算水平下,通过数值差分计算的频率比解析hessian方法多出几个振动模式 [打印本页]

作者
Author:
921927965    时间: 2023-3-3 15:50
标题: 相同计算水平下,通过数值差分计算的频率比解析hessian方法多出几个振动模式
本帖最后由 921927965 于 2023-3-3 15:56 编辑

各位老师们好,最近在学习用python去做normal mode采样,目前的思路是调用ASE第三方库中的Vibrations函数去计算分子的振动模式,然后沿着每个振动模式的方向进行位移。在验证计算结果是否准确的时候,选取了一个分子结构,在HF/Def2-SVP的计算水平下,用高斯和代码都算了一遍,发现由于ase进行振动分析时采用的是数值差分的方法计算hessian,即对体系中的每个原子分别进行各个方向0.01埃的移动,计算原子力的变化,所以在数值上与高斯的计算结果有所差异,同时ase输出的振动模式中,还存在一些很小的实频和虚频(一般在100i-100cm^-1),我不太清楚这些多出来的频率是由于数值计算所带来的误差,还是高斯通过某种规则忽略了这些频率,希望有老师可以为我解惑。
(, 下载次数 Times of downloads: 6)
作者
Author:
dantevinsky    时间: 2023-3-3 17:59
有可能是数值误差的原因,也有可能是没有投影掉平动转动的原因,具体得看ASE package代码中间有没有这一步。
作者
Author:
ahxb    时间: 2023-3-3 19:11
本帖最后由 ahxb 于 2023-3-3 19:20 编辑

在Gaussian输出文件中给出频率及振动模式之前的部分可以看到如下信息:
  1. Full mass-weighted force constant matrix:
  2. Low frequencies --- -576.0604  -13.2694   -5.9568   -3.0655    0.0009    0.0012
  3. Low frequencies ---    0.0013  186.9810  331.0460
复制代码

而计算出的频率却是:
  1. Frequencies --   -576.0603               186.9797               331.0456
  2. Frequencies --    348.3210               396.3831               454.3103
复制代码

因此对应于平动和转动的6个自由度被忽略了。具体是用什么算法忽略的我不清楚。




作者
Author:
921927965    时间: 2023-3-3 20:11
ahxb 发表于 2023-3-3 19:11
在Gaussian输出文件中给出频率及振动模式之前的部分可以看到如下信息:

而计算出的频率却是:

谢谢!我又去算了几个体系,确实都是少了平动和转动项。
作者
Author:
921927965    时间: 2023-3-3 20:13
dantevinsky 发表于 2023-3-3 17:59
有可能是数值误差的原因,也有可能是没有投影掉平动转动的原因,具体得看ASE package代码中间有没有这一步 ...

我去看了下代码,应该是ASE没有去掉平动转动项。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3