利用DFT计算材料的光学性质
基于DFT理论计算材料的光学性质(光吸收和发光等)的基本方法和步骤
发光
- bulk材料结构优化
- 基于第一步生成的
WAVECAR
,CHGCAR
以及DOSCAR
等得到相关属性- 能带需要再进行一步静态计算
- DOS不需要额外的计算,基于第一步的
DOSCAR
即可
- 将优化后的结构文件
CONTCAR
复制为新的POSCAR
,用vaspkit
或者disorder生成超胞,基于超胞用disorder
生成缺陷结构(需要SPOSCAR
和INDSOD
输入文件);或者使用vaspkit进行超胞生成和原子替换1
2
3
4
5
6
7
8
9
10
11
12
13
14## INDSOD
&input
nsub = 3
subs = 2,1,13
symb = 'Eu','Kw','Ca' ! The quotes is unnecessary for the ifort compiler
site = 1
prec = 1D-5
lpro = .true.
lpos = .true.
leqa = .true.
lspg = .true.
lcfg = .true.
/ - 从第三步中选取一个POSCAR-*文件做结构优化,相关属性计算同第二步
- 基于第四步的
CONTCAR
文件做constrain-DFT计算: 对激发态结构进行结构优化以及相关属性计算 - 用Phonopy基于第四步的
CONTCAR
文件做声子谱计算
密度泛函微扰理论/线性响应方法(DFPT)
- 扩胞并生成小位移
1 | # -d 表示生成小位移 |
- VASP计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22## 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根据超胞大小适当减小
A
0
M
3 3 3
0 0 0 - phonopy计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23## band.conf
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 #直接读取DFPT给出的力常数
#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轴上的坐标
Finite difference
扩胞并生成小位移
1
2
3
4
5
6
7
8
9
10
11# -d 表示生成小位移
# --dim='2 2 2'表示'x y z'方扩的大小
phonopy -d --dim="2 2 2" -c POSCAR-unitcell
#会得到一系列POSCAR-001,POSCAR-002,... 数量由对称性决定。
# 建立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/KPOINTSVASP计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19## 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根据超胞大小适当减小
A
0
M
3 3 3
0 0 0phonopy计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30## band.conf
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轴上的坐标
- 基于第四步生成的基态结构
CONTCAR_GS
和第五步生成的激发态结构CONTCAR_ES
,以及第一步得到的bands.yaml
,利用pyphotonics计算HR因子和PL光谱(\(\color{Red}{在该方法中,近似认为激发态和基态的振动模式相同,但实际体系中并不一致}\))
相关文章