声子谱是描述晶体中晶格振动模式(声子)的频谱分布,反映了不同波矢(q)对应的振动频率。声子是晶格振动的量子化表现形式,其能量和动量关系通过声子谱直观呈现,与材料的热力学性质(如热容、热导率)和动力学行为(如相变、稳定性)密切相关。
Phonopy是目前计算声子谱的主流工具,通过过超胞有限位移法或密度泛函微扰理论(DFPT)计算力常数,支持一次性移动多个原子方向,显著减少了计算量,并与第一性原理软件(如VASP、QuantumESPRESSO)无缝对接,可直接读取输出文件(如vasprun.xml)生成力常数,以下是详细的操作步骤。
一、密度泛函微扰理论/线性响应方法 (DFPT)
必要的输入文件:
INCAR
KPOINTS
POSCAR-unitcell # 优化得到的初始晶胞
POTCAR
band.conf
1.扩胞得到计算所需的POSCAR
#在Linux终端直接运行命令
#1. 生成超胞
phonopy -d –dim=”2 2 2″ -c POSCAR-unitcell #–dim=’2 2 2’表示’x y z’方扩的大小
#2. 将生成的SPOSCAR拷贝成POSCARcp SPOSCAR POSCAR
2.提交VASP计算INCAR设置如下: ISMEAR = 0 (Gaussian smearing)SIGMA = 0.05 (Smearing value in eV)IBRION = 8 (determines the Hessian matrix using DFPT)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 = .FLASE. (Write WAVECAR or not)LCHARG = .FLASE. (Write CHGCAR or not)ADDGRID= .TRUE. (Increase grid; helps GGA convergence)NSW = 1NELM = 100NELMDL = -5KPOINTS需适当减小,可以的话最好再进行一次收敛测试;A0M3 3 30 0 0提交VASP计算mpirun -np 16 vasp_std > vasp.log 3.计算声子谱准备band.conf文件,如下所示:(参数含义详见phonopy官网) ATOM_NAME =SiDIM = 2 2 2PRIMITIVE_AXES=AutoMP = 24 24 24BAND =0.0 0.0 0.0 0.5 0.0 0.5 0.625 0.25 0.625, 0.375 0.375 0.75 00 0.0 0.0 0.5 0.5 0.5BAND_POINTS = 101FORCE_CONSTANTS= READ获取声子谱后处理步骤; #直接在终端运行#1. 提取力常数,得到FORCE_CONSTANTS文件。phonopy –fc vasprun.xml
#2. 计算声子谱并保存为pdf格式phonopy -c POSCAR-unitcell band.conf -p -s
#3. 将声子谱进一步输出为数据文件,用于其它软件画图。
#旧版本phonopybandplot –gnuplot> phonon.out#新版本phonopyphonopy-bandplot –gnuplot > phonon.out#phonon.out文件中首行是高对称点在x轴上的坐标
二、有限位移方法必要的输入文件:INCAR KPOINTSPOSCAR-unitcell # 优化得到的初始晶胞POTCARband.conf1. 扩胞得到计算所需的POSCAR#在Linux终端直接运行命令#1. 生成超胞phonopy -d –dim=”2 2 2″ -c POSCAR-unitcell #–dim=’2 2 2’表示’x y z’扩胞的大小#会得到一系列POSCAR-001,POSCAR-002,… 数量由对称性决定。#2. 建立disp-*文件夹,具体数量以生成POSCAR-*的数量决定。将POSCAR-POTCAR, INCAR, KPOINTS放入disp-*文件夹mkdir disp-001cp POSCAR-001 ./disp-001/POSCARcp POTCAR ./disp-001/POTCARcp INCAR ./disp-001/INCARcp KPOINTS ./disp-001/KPOINTS 2. 提交VASP计算INCAR设置如下(静态计算): PREC = AccurateIBRION = -1ENCUT = 500EDIFF = 1.0e-08EDIFFG = -0.001ISMEAR = 0SIGMA = 0.05ALGO = 38LREAL = .FALSE.LWAVE = .FALSE.LCHARG = .FALSE.KPOINTS需适当减小,可以的话最好再进行一次收敛测试A0M3 3 30 0 0提交VASP计算mpirun -np 16 vasp_std > vasp.log 3.计算声子谱准备band.conf文件,如下所示:(参数含义详见phonopy官网) ATOM_NAME =SiDIM = 2 2 2PRIMITIVE_AXES=AutoMP = 24 24 24BAND =0.0 0.0 0.0 0.5 0.0 0.5 0.625 0.25 0.625, 0.375 0.375 0.75 0.0 0.0 0.0 0.5 0.5 0.5BAND_POINTS = 101FULL_FORCE_CONSTANTS = .TRUE.FORCE_CONSTANTS= WRITE #生成FORCE_CONSTANTS准备mesh.conf文件,如下所示:ATOM_NAME = SiDIM = 2 2 2MP = 24 24 24获取声子谱后处理步骤bash #直接在终端运行#1. 提取动力学矩阵,进入disp-*的上一级文件夹phonopy -f ./disp-*/vasprun.xml #会生成FORCE_SET
#2. 计算声子谱并保存为pdf格式,同时生成FORCE_CONSTANTSphonopy -c POSCAR-unitcell band.conf -p -s
#3. 将声子谱进一步输出为数据文件,用于其它软件画图。#旧版本phonopybandplot –gnuplot> phonon.out#新版本phonopyphonopy-bandplot –gnuplot > phonon.out#phonon.out文件中首行是高对称点在x轴上的坐标
来源|耿华运科学网博客 如果侵权,请及时告知我们,我们将在最短的时间内删除。
声明:如需转载请注明出处(华算科技旗下资讯学习网站-学术资讯),并附有原文链接,谢谢!