欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VASP计算笔记_声子谱计算

程序员文章站 2022-05-16 18:20:58
...

声子谱计算

主要使用phonopy软件计算声子谱。版本:phonopy-2.1.3

密度泛函微软理论/线性响应方法 (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拷贝成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.x_std >& vasp.log

将所有文件放到一个文件夹,在终端运行qsub *.pbsor 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轴上的坐标

有限位移方法
要的输入文件:

sh
AR
INTS
CAR-unitcell #优化得到的初始晶胞
CAR
d.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
 IALGO = 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 *.pbsor 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轴上的坐标

VASP计算笔记_声子谱计算

相关标签: VASP计算