用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
?
解決方案有四種:
-
使用NLCC贗勢。http://arxiv.org/abs/1212.6011?不過,NLCC贗勢很不完整,只有B-Cl的元素有,且只提供了PBE泛函的贗勢。
-
增大CUTOFF,使用600 Ry以上的CUTOFF。
-
在XC_GRID部分使用平滑參數SMOOTING。不推薦使用。
-
在XC_GRID部分使用USE_FINER_GRID。加上這個參數后,XC部分的格點的精度提高為4*CUTOFF
本文轉載自zevan,轉載目的在于知識分享,本文觀點不代表V-suan云平臺立場。
原創文章,作者:菜菜歐尼醬,如若轉載,請注明來源華算科技,注明出處:http://www.zzhhcy.com/index.php/2023/12/01/747457ee5f/