|
小弟最近在计算钙钛矿体系的声子谱,在简谐近似下,计算出的声子谱都有一定的虚频,始终无法消除,一开始花了大量的时间去提高结构优化精度,但是都以失败告终,一度都怀疑自己的结构优化靠谱性。后来从各种文献、论坛和视频中了解到钙钛矿体系有很强的非谐性,简谐近似下的声子谱往往都会带有虚频,需要考虑非简谐情形下的计算。目前有三种非简谐计算方法,可以参考这个专栏300 K下的声子谱怎么算? - 知乎 (zhihu.com)。小弟看了教程视频之后,了解到dynaphopy计算高温声子谱的效率比较高,和vasp也十分兼容,就尝试了一下。下面是小弟的计算历程。
1. 简谐声子谱的计算。
dynaphopy的非谐修正是在phonopy的力常数基础上进行的,需要先进行0k声子谱的计算。
这是结构优化的INCAR,力的收敛标准是E-3,大部分的文献也是在这个精度范围内。结构优化的结构是单胞,10个原子。
这是phonopy计算出的声子谱,计算的结构为2*2*2的超胞,80个原子,在gmma点和X点有很强的虚频。这个虚频即使提高收敛精度和扩大超胞也是无法消除的。
2. AIMD计算
dynaphopy通过读取AIMD的计算结构进行拟合(说法不准确),需要预先准备AIMD的outcar或xdatcar。
这是小弟的AIMD的计算设置,基本参考dynaphopy的example中的设置,详细的参数涵义,都有教程介绍。
小弟这里只是采用了3000步的计算,步长是2fs,能量的收敛精度是E-6,不算太高。同样是采用80个原子的超胞。大部分做非谐计算的文献,所采用的都是在80-160原子数范围内的超胞,步长多是1-2fs,总步数大概是3000-6000,总的时长是5ps-10ps。从下面的非谐声子谱结果来看,这个设置对于非谐计算是合适的?
3. dynaphopy非谐声子谱计算。
dynaphopy的官网如下:Dynaphopy (abelcarreras.github.io)。
将结构优化的原始晶胞POSCAR,phonopy输出的力常数,和AIMD的OUTCAR放在一个文件夹内。
设置dynaphopy的输入文件input如下:分别是输入结构文件,力常数文件,原胞和超胞与POSCAR的关系设置,band是声子谱的高对称点路径,设置方式和vasp计算PBE能带一致。
然后输入dynaphopy input OUTCAR -i,进入如下的界面,选择6,进入非谐声子谱计算,再选择1,可以同时输出简谐声子谱和非简谐声子谱,此时会对peak进行拟合。拟合结束后,会输出声子谱。
这是小弟一开始使用默认设置,输出的声子谱,可以看到高温声子谱虚频加重了。从@get-it 大佬处了解到,dynaphopy默认使用最大熵方法拟合,效果可能不如fftw有效。于是小弟将拟合方式改为fftw,通过指令dynaphopy input OUTCAR -i -psm 3,采用快速傅里叶变换拟合。得到300k下的声子谱,可以看到,原来gamma点和X点的虚频,已经被成功消除了。而实验上,这个材料在室温下肯定是稳定的。
当然,如果想要得到更准确的声子谱,需要提高优化精度,采用更大的超胞计算力常数,AIMD需要更多的步数和更小的步长,比如dynaphopy的例子是采用0.7 fs,跑200000步。如果只是想得到一个比较合理的声子谱,小弟觉得适当降低精度是没问题的。比如小弟的这个计算,在24核的机器上,结构优化用时不到3小时,dfpt计算1小时,AIMD计算14小时,差不多用时一天,能够得到一个比较合适的声子谱。如果提高精度,计算用时可能会提升数倍,但是声子谱的提升可能并不会太明显。当然这是小弟的一己之见,供大家批判
|
|