声子谱计算
主要使用phonopy软件计算声子谱。版本:phonopy-2.1.3
密度泛函微软理论/线性响应方法 (DFPT)
必要的输入文件:
INCAR
KPOINTS
POTCAR-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拷贝成POSCAR
cp 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 = 1
NELM = 100
NELMDL = -5
KPOINTS需适当减小,可以的话最好再进行一次收敛测试
注:KPOINTS文件每行一定要顶格写,不能前面不能空格,不然可能会报错。
A
0
M
3 3 3
0 0 0
提交VASP计算
#若未安装作业管理程序,可直接运行下段命令。若安装了作业管理程序,请参考作业理手册。例如PBS作业管理系统。
mpirun -np 16 vasp_std > vasp.log
PBS作业管理系统提交计算脚本 (根据需要命名,最好以.pbs 或者 .sh结尾)
#!/bin/bash
#PBS -N phono
#PBS -j oe
#PBS -l nodes=1:ppn=16
cd ${PBS_O_WORKDIR}
mpirun -n 16 vasp_std >& vasp.log
将所有文件放到一个文件夹,在终端运行qsub *.pbs
or qsub *.sh
3 计算声子谱
准备band.conf文件,如下所示:(参数含义详见phonopy官网)
ATOM_NAME =Si
DIM = 2 2 2
PRIMITIVE_AXES=Auto
MP = 24 24 24
BAND =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.5
BAND_POINTS = 101
FORCE_CONSTANTS= READ
获取声子谱后处理步骤
#直接在终端运行
#1. 提取力常数,得到FORCE_CONSTANTS文件。
phonopy --fc vasprun.xml
#2. 计算声子谱并保存为pdf格式
phonopy -c POSCAR-unitcell band.conf -p -s
#3. 将声子谱进一步输出为数据文件,用于其它软件画图。
#旧版本phonopy
bandplot --gnuplot> phonon.out
#新版本phonopy
phonopy-bandplot --gnuplot > phonon.out
#phonon.out文件中首行是高对称点在x轴上的坐标
有限位移方法
必要的输入文件:
INCAR
KPOINTS
INCAR-unitcell #优化得到的初始晶胞
POTCAR
band.conf
扩胞得到计算所需的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-001
cp POSCAR-001 ./disp-001/POSCAR
cp POTCAR ./disp-001/POTCAR
cp INCAR ./disp-001/INCAR
cp KPOINTS ./disp-001/KPOINTS
提交VASP计算
INCAR设置如下(静态计算):
PREC = Accurate
IBRION = -1
ENCUT = 500
EDIFF = 1.0e-08
EDIFFG = -0.001
ISMEAR = 0
SIGMA = 0.05
ALGO = 38
LREAL = .FALSE.
LWAVE = .FALSE.
LCHARG = .FALSE.
KPOINTS需适当减小,可以的话最好再进行一次收敛测试
注:KPOINTS文件每行一定要顶格写,不能前面不能空格,不然可能会报错。
A
0
M
3 3 3
0 0 0
提交VASP计算
#若未安装作业管理程序,可直接运行下段命令。若安装了作业管理程序,请参考作理手册。例如PBS作业管理系统。
mpirun -np 16 vasp_std > vasp.log
PBS作业管理系统提交计算脚本 (根据需要命名,最好以.pbs 或者 .sh结尾)
#!/bin/bash
#PBS -N phono
#PBS -j oe
#PBS -l nodes=1:ppn=16
cd ${PBS_O_WORKDIR}
mpirun -n 16 vasp_std >& vasp.log
将所有文件放到一个文件夹,在终端运行qsub *.pbs
or qsub *.sh
3 计算声子谱
准备band.conf文件,如下所示:(参数含义详见phonopy官网)
ATOM_NAME =Si
DIM = 2 2 2
PRIMITIVE_AXES=Auto
MP = 24 24 24
BAND =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.5
BAND_POINTS = 101
FULL_FORCE_CONSTANTS = .TRUE.
FORCE_CONSTANTS= WRITE #生成FORCE_CONSTANTS
准备mesh.conf文件,如下所示:
ATOM_NAME = Si
DIM = 2 2 2
MP = 24 24 24
获取声子谱后处理步骤
#直接在终端运行
#1. 提取动力学矩阵,进入disp-*的上一级文件夹
phonopy -f ./disp-*/vasprun.xml
#会生成FORCE_SET
#2. 计算声子谱并保存为pdf格式,同时生成FORCE_CONSTANTS
phonopy -c POSCAR-unitcell band.conf -p -s
#3. 将声子谱进一步输出为数据文件,用于其它软件画图。
#旧版本phonopy
bandplot --gnuplot> phonon.out
#新版本phonopy
phonopy-bandplot --gnuplot > phonon.out
#phonon.out文件中首行是高对称点在x轴上的坐标