3.7.1 有限位移法(冻声子法)#
有限位移法的计算流程其原理大致为:
• 采用phonopy扩胞的同时生成一系列施加displacement后的POSCAR-n(超胞);
• 分别对这些超胞做静态自洽计算,得到力和能量;
• 收集力常数信息+计算声子色散关系;
(1)首先准备一个relax好的结构的Si的原胞,用vaspkit-602命令寻找标准原胞,并将生成的PRIMCELL.vasp命名为POSCAR,如下
Primitive Cell
1.000000
0.00000000000000 2.73613957608858 2.73613957608858
2.73613957608858 0.00000000000000 2.73613957608858
2.73613957608858 2.73613957608858 0.00000000000000
Si
2
DIRECT
0.2500000000000000 0.2500000000000000 0.2500000000000000 Si1
0.0000000000000000 0.0000000000000000 0.0000000000000000 Si2注意,VASP在计算时实际是通过POTCAR文件来标定原子类型的。换句话说,POSCAR中原子名字是什么对于VASP来说不重要。但是在使用phonopy处理数据时,phonopy会读取POSCAR中的元素符号来赋予其相应的质量以用于后续处理声子频率。因此,强烈建议要确认POSCAR中元素符号是否正确。
查看abc三条轴的长度,vaspkit-601读取原胞POSCAR,显示为3.9Å
(2)phonopy扩胞至三个轴长度接近或者超过10Å
phonopy -d --dim="3 3 3" -c POSCAR此时会生成一个3x3x3方式扩胞的SPOSCAR超胞文件和在超胞基础上做原子位移的一系列POSCAR-xxx文件。
(3)准备静态自洽计算的INCAR,KPOINTS和POTCAR以及任务提交脚本
INCAR采用静态计算的即可。由于单质Si不需要考虑磁性,或者加U等,因此不需要额外加这些参数。如果你的体系有磁性或者需要加U,那么用于算声子时的INCAR也需要加这些参数。
特别强调,有时候某些特殊结构VASP进行计算时,可能会报错并提示修改SYMPREC参数。该参数默认是1E-5,是用于判断结构对称性的。在用有限位移法计算声子时,不能轻易将该参数改到1E-3或者1E-2(或者更宽松的精度),否则会导致VASP对改“原子位移结构”又错误地识别回未位移的结构,导致后续phonopy提取出错误地力常数信息,进而导致声子结果错误。
POTCAR可以用vaspkit-103生成。
KPOINTS在超胞的基础上取Auto40或者2πx0.025密度(也可以Auto30或者2πx0.033)。再次强调,如果你采用vaspkit-102生成KPOINTS的话,需要读取超胞结构来生成。具体做法就是新建文件夹,把SPOSCAR文件复制进去并命名为POSCAR,再用vaspkit-102生成超胞对应的Kmesh.
(4)对每一个POSCAR-xxx文件新建文件夹disp_xxx。强烈建议,文件夹名字最好和POSCAR-后缀相符,如果POSCAR-后缀有001,那么disp_后缀也建议001,而非1,否则这可能影响后面读取文件夹顺序。做静态自洽计算。记得在每个disp_xxx文件夹里面把POSCAR-xxx文件命名为POSCAR,再提交任务。这一步提交可以用shell的for循环实现。请自行GPT学习shell中的for循环语法。
(5)当所有POSCAR-xxx的静态计算成功收敛时(超胞计算通常比较慢),开始提取力常数数据。
phonopy -f disp*/vasprun.xml此时会生成一个FORCE_SETS文件
(6)准备一个KPATH.phonopy文件(名字不重要),用于计算声子色散
用一开始的原胞作为POSCAR,运行vaspkit-305-3(3D结构),生成一个KPATH.phonopy文件。并修改里面部分内容,其中DIM就是前面扩胞的方式,注意红框中的内容。#表示注释,即不起作用。BAND是声子的波矢路径,其物理含义和电子能带的路径类似。可以自行琢磨BAND和BAND_LABELS的写法规律。
DIM = 3 3 3
# BAND 和 BAND_LABELS 在原图右侧被截断,需按实际高对称路径补全。
MP = 30 30 30
TETRAHEDRON = .TRUE.
PDOS = 1 2
BAND_CONNECTION = .TRUE.
#FORCE_CONSTANTS = READ
FORCE_SETS = READ
# IRREPS = 0 0 0
# SHOW_IRREPS = .TRUE.
# LITTLE_COGROUP = .TRUE.请根据实际高对称点设置完整的 BAND 路径。
MP是计算PHDOS时采样的q点,取10~30足够;
BAND_CONNECTION=TRUE时,不同声子曲线会用颜色区分,
其余参数请查阅phonopy说明https://phonopy.github.io/phonopy/setting-tags.html#
(7)处理声子谱并自动画图
phonopy -c POSCAR KPATH.phonopy -p -s声子态密度数据在total_dos.dat和projected_dos.dat(如果设置了PDOS)文件中。
命令指令的含义请查阅:https://phonopy.github.io/phonopy/command-options.html#
该命令运行成功后,生成的band_dos.pdf就是phonopy自动画的图,可以用于快速查看声子谱,观察是否有虚频。
(8)为了得到方便画图的声子谱数据,运行命令,得到phband.dat文件,第一行就是高对称q点坐标。声子谱的画图方式和能带图一样。
phonopy-bandplot --gnuplot > phband.dat