yafanzhao

CP2K入门教程-8:振动频率分析

      用CP2K程序进行振动频率分析,首先需要设置RUN_TYPE为VIBRATIONAL_ANALYSIS。输入文件例子如下:

&GLOBAL

PROJECT cp2k

RUN_TYPE VIBRATIONAL_ANALYSIS

PRINT_LEVEL medium

&END GLOBAL

然后,设置频率分析部分输入文件

&VIBRATIONAL_ANALYSIS

DX 0.01

INTENSITIES F

NPROC_REP 128

FULLY_PERIODIC T

&END VIBRATIONAL_ANALYSIS

CP2K计算频率使用的是数值算法,即对每个原子向+x, -x, +y, -y, +z, -z 6个方向分别进行移动,用数值的方法得到能量的二阶导(即力常数),然后计算频率。所以,如果有N个原子要进行移动,总共要进行6N+1次SCF收敛计算。

关键词

设置示例

解释

DX

0.01

每次移动原子时的步长

INTENSITIES

F

是否计算红外强度。如果设置为T,需要在DFT部分进行偶极矩的计算(关键词MOMENTS)。

NPROC_REP

128

并行计算频率时,每个REPLICA使用的CPU数目

FULLY_PERIODIC

T

避免从Hessian矩阵中消除转动模式。开启该关键词后,对于N个原子的体系会计算出3N-3个频率,其中包含了3个转动自由度。

要计算部分原子的振动频率,有两种办法。一种是直接在MOTION中使用CONSTRAINT对不需要进行频率分析的原子进行固定。一种是使用MODE_SELECTIVE模式。例子如下:

&VIBRATIONAL_ANALYSIS

NPROC_REP 16

DX 0.01

INTENSITIES T

&MODE_SELECTIVE

ATOMS 82 83

INITIAL_GUESS ATOMIC

EPS_NORM 1.0E-5

EPS_MAX_VAL 1.0E-6

&INVOLVED_ATOMS

INVOLVED_ATOMS 82 83

&END INVOLVED_ATOMS

&END &MODE_SELECTIVE

&END VIBRATIONAL_ANALYSIS

上面的例子中,对82 和83两个原子进行了振动频率分子。需要注意的是,使用这种方法计算频率,使用的REPLICA数目不能太少。REPLICA的数目是这样计算的:NREP=总CPU数目/NPROC_REP。上述输入文件,如果使用的总CPU数目为64,则共有NREP=4,即共有4个REPLICA。如果只使用一个REPLICA,使用MODE_SELECTIVE算法计算频率时,就会只跟踪一个频率,无法得到正确的结果。

另外,使用CP2K程序计算一个优化好的结构式的频率时,也常会出现多个虚频。这并非是几何优化出现了问题,而是CP2K计算使用GTH赝势时存在的一个问题。详细内容请参考:

https://groups.google.com/forum/?fromgroups#!topic/cp2k/DVCV0epl7Wo

解决方案有四种:

  1. 使用NLCC赝势。https://arxiv.org/abs/1212.6011 不过,NLCC赝势很不完整,只有B-Cl的元素有,且只提供了PBE泛函的赝势。

  2. 增大CUTOFF,使用600 Ry以上的CUTOFF。

  3. 在XC_GRID部分使用平滑参数SMOOTING。不推荐使用。

  4. 在XC_GRID部分使用USE_FINER_GRID。加上这个参数后,XC部分的格点的精度提高为4*CUTOFF。

评论

热度(14)

  1. 共1人收藏了此文字
只展示最近三个月数据