我们在往期内容里讨论过了绘制声子声学支的问题
欢迎讨论:如何正确绘制声子谱声学支
这里非常感谢 云里悟理不能自理 和 振振有声子 两个公众号的运营者对前期相关问题的探讨。
自VASP6.3.2版开始中更新了对于声子色散计算的功能,可以不再需要PHONOPY即可直接计算得到声子谱,同时VASPKIT也同步更新了功能支持处理获得声子谱的数据。
参考:不调用Phononpy也能得到声子谱?
本文同样以Si为例,准备最小原胞结构
Generated by VASPKIT code1.0000000.00000000000000002.73308195786599712.73308195786599712.73308195786599710.00000000000000002.73308195786599712.73308195786599712.73308195786599710.0000000000000000Si2Direct0.50000000000000000.50000000000000000.5000000000000000 Si0010.75000000000000000.75000000000000000.7500000000000000 Si002
然后使用VSAPKIT进行扩胞处理,这里使用400/401功能
同时,将生成的TRANSMAT文件重命名为TRANSMAT.in文件,用于后续数据处理,读出声子谱。
Read transformation matrix from the TRANSMAT.in file if it exists.2 0 0 # must be three integers0 2 0 # must be three integers0 0 2 # must be three integers
计算INCAR可以使用VASPKIT(大于1.5版本)生成的Phonon-Calculation默认模版
INCAR详细内容如下
ISMEAR = 0 (Gaussian smearing)SIGMA = 0.01 (Smearing value in eV)EDIFF = 1E-08 (SCF energy convergence, in eV)PREC = Accurate (Precision level)# ENCUT = 500 (Cut-off energy for plane wave basis set, in eV)IALGO = 38 (Davidson block iteration scheme)LREAL = .FALSE. (Projection operators: false)LWAVE = .FALSE. (Write WAVECAR ornot)LCHARG = .FALSE. (Write CHGCAR ornot)ADDGRID= .TRUE. (Increase grid, helps GGA convergence)IBRION = 6 (Calculate phonon frequencies using finite differences approach)LPHON_DISPERSION = T (Calculate phonon dispersion along the q-point path supplied in file QPOINTS)PHON_NWRITE = -3 (Both phonon eigenvectors and phonon frequencies are written for each q point)
同时准备需要的QPOINTS文件,可以直接使用VASPKIT的303功能生成KPATH.in文件,对的是之前用于计算能带的高对称点路径的文件,这时候直接把KPATH.in复制为QPOINTS文件就好了
K-Path Generated by VASPKIT.20Line-ModeReciprocal0.0000000000 0.0000000000 0.0000000000 GAMMA0.5000000000 0.0000000000 0.5000000000 X0.5000000000 0.0000000000 0.5000000000 X0.6250000000 0.2500000000 0.6250000000 U0.3750000000 0.3750000000 0.7500000000 K0.0000000000 0.0000000000 0.0000000000 GAMMA0.0000000000 0.0000000000 0.0000000000 GAMMA0.5000000000 0.5000000000 0.5000000000 L0.5000000000 0.5000000000 0.5000000000 L0.5000000000 0.2500000000 0.7500000000 W0.5000000000 0.2500000000 0.7500000000 W0.5000000000 0.0000000000 0.5000000000 X
使用VASP(大于6.3.2版本)计算后(计算量与之前的IBRION = 6下的任务基本一样,增加的QPOINTS并不会增加太多计算量。)
在OUTCAR的最下方,会生成声子的频率信息以及QPOINTS路径下每个声子的色散。
GAMMA点频率信息
Q点路径下所有声子的频率信息(包含THz、meV、cm-1等单位)以及振动模式
使用VASPKIT处理数据前,要通过TRANSMAT.in文件告诉VASPKIT 对于VSAP计算的POSCAR和要处理获得的原胞的对应矩阵关系,这里使用扩胞过程中的输入文件,可以直接获得原胞的声子谱,这样也省去了phonopy中声子谱折叠的过程,同时如果需要对于不同基元的声子谱,可自行调整为TRANSMAT.in文件。
使用VASPKIT里的95功能来实现声子谱的数据导出,这里VSAPKIT会严格依据声子的编号进行读取和输出每个声子谱的路径和频率。
同时也可照旧使用phonopy进行一次数据处理。
phonopy默认产生的声子谱的PDF如图
再用vaspkit进行声子谱每个声子的的拆分(怎么都少不了VASPKIT)
从完整的声子谱的对比来说并没有太大的区别。
往期我们讨论过声学支的画法,这里我们怀疑过在处理phonopy的声子谱的时候,VASPKIT并不能完全做好声子谱的连续
事实上也的确如此
phonopy+VASPKIT的789功能依旧不能正确处理声学支在布里渊区边界处的连续的问题。
而VASP在计算声子谱的时候已经将单个声子在整个路径中完全连续的计算过了,所以每个声子再通过VASPKIT的952功能就可以正确处理出来。
同时,结合OUTCAR里每个声子在路径上的振动模式,可以更准确的对每个声子的表示进行区分。