声子谱计算


声子谱计算

主要使用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轴上的坐标

文章作者: 天帝君豪
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 天帝君豪 !
 上一篇
截断能测试 截断能测试
截断能测试必要输入文件: encut.sh POTCAR KPOINTS和POSCAR可以在encut.sh里设置,也可以独立给出。 encut.sh脚本参考 #!/bin/bash #生成KPOINTS文件,KPOINTS不
下一篇 
晶格常数计算 晶格常数计算
晶格常数测试 (Equation of state method)必要输入文件 run_a0.sh POTCAR INCAR 和 KPOINTS可在run_a0.sh中直接设置,也可以单独给出。 EOS.in 三维立方晶格脚本示例:Si #
  目录