杂化泛函相比于DFT方法,在计算带隙方面更加准确,但是HSE06的杂化泛函需要KPOINTS里既有权重不为0的K点进行自洽计算,又要求有权重为0的高对称点计算能带性质。因此操作流程颇为繁琐。
第一步:准备KPATH.in文件,KPATH.in格式与使用PBE计算计算能带的格式完全相同,即为line-mode格式,可使用VASPKIT 303 (体相)或者302(二维)命令产生,也可以自定义生成,例如对于FCC结构,其推荐能带路径如下所如:
KPATH.in
文件内容如下:
Generated by VASPKIT based on Hinuma et al.'s Paper, Comp. Mat. Sci. 128, 140 (2017), DOI: 10.1016/j.commatsci.2016.10.015.
10
Line-Mode
Reciprocal
0.0000000000 0.0000000000 0.0000000000 GAMMA
0.5000000000 0.0000000000 0.5000000000 X
0.5000000000 0.0000000000 0.5000000000 X
0.6250000000 0.2500000000 0.6250000000 U
0.3750000000 0.3750000000 0.7500000000 K
0.0000000000 0.0000000000 0.0000000000 GAMMA
0.0000000000 0.0000000000 0.0000000000 GAMMA
0.5000000000 0.5000000000 0.5000000000 L
0.5000000000 0.5000000000 0.5000000000 L
0.5000000000 0.2500000000 0.7500000000 W
0.5000000000 0.2500000000 0.7500000000 W
0.5000000000 0.0000000000 0.5000000000 X
第二步:调用VASPKT-251命令产生用于杂化密度计算的KPOINTS文件。具体操作如下:重启vaspkit
,输入25
选择功能Hybrid-DFT Band-Structure
,在下一个界面输入251
选择Generate KPOINTS File for Hybrid Band-Structure Calculation
。再输入1
选择Monkhorst-Pack Scheme
用MP方法生成自洽用的K点网格并根据建议输入0.04
选择较密的K点密度(权重不为0的K点用于自恰计算),接下来还需手动指定能带路径上K点的密度,用于能带计算,再次输入0.04
,即可生成HSE06杂化泛函所需的KPOINTS。VASPKIT
最新版支持根据给定k点间隔自动确定不同能带路径上的K点数,从而保证在整个能带计算中均匀撒点。
======================= K-Mesh Scheme ==========================
1) Monkhorst-Pack Scheme
2) Gamma Scheme
0) Quit
9) Back
------------->>
1
+-------------------------- Warm Tips --------------------------+
Input Kmesh-Resolution Value for SCF Calculation:
(Typical Value: 0.02-0.04 is Generally Precise Enough)
------------>>
0.04
Input Kmesh-Resolution Value along K-Path for Band Calculation:
(Typical Value: 0.03-0.05 for DFT and 0.04-0.06 for hybrid DFT)
------------>>
0.04
+---------------------------------------------------------------+
-->> (03) Reading K-Path From KPATH.in File...
+-------------------------- Summary ----------------------------+
K-Mesh for SCF Calculation: 8 8 8
The Number of K-Points along K-Path No.1: 28
The Number of K-Points along K-Path No.2: 10
The Number of K-Points along K-Path No.3: 30
The Number of K-Points along K-Path No.4: 24
The Number of K-Points along K-Path No.5: 20
The Number of K-Points along K-Path No.6: 14
+---------------------------------------------------------------+
-->> (04) Written KPOINTS File!
可通过KPOINTS文件第一行查看产生K点产生信息。0.040 8 8 8 29 0.040 126 6 28 10 30 24 20 14
,第一个决定总能计算K点密度,第二至第四个数字表示8
第三步(可选):使用PBE泛函产生波函数WAVECAR和电子密度CHGCAR文件。这一步完成后可用vaspkit-252命令提取能带数据,注意此时的能带数据是PBE泛函计算得到,主要目的是为了检查能带数据是否异常。如果正常可进行下一步。因为HSE06计算非常耗时,因此本例中采用两步法加速收敛,当然也可以跳过第一步直接用HSE06进行自洽。
第四步:保持KPOINTS不变,读入波函数进行HSE06计算**。注意在INCAR文件中激活杂化密度泛函功能并再次调用VASP计算,等结束结束后再次调用vaspkit-252命令处理结果,运行过程如下图所示:
-->> (1) Reading Input Parameters From INCAR File...
-->> (2) Reading Fermi-Level From DOSCAR File...
-->> (3) Reading Energy-Levels From EIGENVAL File...
-->> (4) Reading Lattices & Atomic-Positions from POSCAR File...
-->> (5) Reading K-Paths From KPATH.in File...
-->> (6) Written BAND.dat File!
-->> (7) Written BAND-REFORMATTED.dat File!
-->> (8) Written KLINES.dat File!
-->> (9) Written KLABELS File!
REFORMATTED_BAND.dat
是修改后生成的能带信息(0.70版本生成的有问题,Band.dat正常!0.71以后的版本以后已修复。),格式如下所示,第一列是K-PATH,相邻的距离为高对称点在倒空间的距离,第二列,第三列等即为所需的不同的能带线。如果开了自旋,第二列和第三列为能带1的spin up和spin down,以此类推。将dat文件拖入Origin软件后,即可得到能带图。
# Kpath Energy-Level (in eV)
0.00000 -14.54063 -0.82009 -0.82009
0.12809 -14.48597 -1.24459 -0.97903
0.25617 -14.32291 -2.13627 -1.37615
0.38426 -14.05442 -3.15793 -1.87258
0.51234 -13.68641 -4.20790 -2.37100
0.64043 -13.22973 -5.24586 -2.81765
0.76851 -12.70500 -6.23748 -3.18362
0.89660 -12.15541 -7.12954 -3.45312
KLABELS
是由读取能带标识的子模块生成的。通过读取KPATH.in
(PBE能带计算时为KPOINTS)高对称点后标识,写入KLABELS文件。
KLABELS
文件如下:
K-Label K-Coordinate in band-structure plots
GAMMA 0.000
X 1.153
U|K 1.560
GAMMA 2.783
L 3.781
W 4.597
X 5.173
* Give the label for each high symmetry point in KPOINTS (KPATH.in) file. Otherwise, they will be identified as 'Undefined' in KLABELS file
因为路径分了两条,所以能带图中第二个高对称点位置的标识为U|K
。
用户在Origin软件中处理了BAND-REFORMATTED.dat
后,需要按照KLABELS
文件中的位置在能带图中标识高对称点位置。下一版本的版本将会加入生成绘制能带图的python
脚本的功能,需要用户安装了Matplotlib
库。例子里有一个band_plot.py
脚本,只要执行这个python
脚本,就能在文件夹下生成一个band.png
。
注意该方法是普适的,同样适用于DFT和MetaGGA方法计算能带,并且也不需要从静态计算中读取费米能级。
如果您使用VASPKIT,请记得引用哦!
V. Wang, N. Xu, J.-C. Liu, G. Tang, W.-T. Geng, VASPKIT: A User-Friendly Interface Facilitating High-Throughput Computing and Analysis Using VASP Code, Computer Physics Communications 267, 108033, (2021), https://doi.org/10.1016/j.cpc.2021.108033
欢迎关注VASPKIT公众号。
「感觉有帮助?一键投喂 牛奶/咖啡/冰阔乐!」
(๑>ڡ<)☆哇~太棒了!
使用微信扫描二维码完成支付
请问第四步需要ICGARG=11吗?
杂化密度泛函能带计算无需设置ICGARG=11。
请问这是直接用REFORMATTED_BAND.dat中的前两列数据绘制的图吗?需要减去费米能级吗
默认输出已减去费米能级。
文章里提到 “HSE06的杂化泛函需要KPOINTS里既有权重不为0的K点进行自洽计算,又要求有权重为0的高对称点计算能带性质”,但是我不理解什么是权重不为0的k点,权重为0的k点。哪位能解释一下吗?