3.5.1 计算bcc-Li的能带结构#

能带图是电子能量-波矢色散关系的二维可视化。能带计算主要步骤:scf计算+nscf计算+数据提取+作图(主要前两个,假设已经结构优化)

(a)对优化好的Li-bcc结构做一次静态自洽SCF计算。

这一步的目的是得到CHGCAR和准确的费米能级(DOSCAR文件),用于后续BAND计算的NSCF计算。

POSCAR要采用标准原胞(注意,一定要原胞,可以用vaspkit 602命令寻找原胞PRIMCELL.vasp,再把这个原胞cp成POSCAR)

Primitive Cell
1.000000
-1.71581135776293 1.71581135776293 1.71581135776293
1.71581135776293 -1.71581135776293 1.71581135776293
1.71581135776293 1.71581135776293 -1.71581135776293
Li
1
DIRECT
0.0000000000000000 0.0000000000000000 0.0000000000000000 Li1

SCF计算的INCAR(LCHARG=TRUE,输出CHGCAR用来后续nscf计算)

# Global Parameters
ICHARG = 2
ISPIN = 1
ENCUT = 700
LWAVE = .TRUE.
LCHARG = .TRUE.
ADDGRID = .TRUE.
PREC = Accurate
NCORE = 4

# Lattice Relaxation
NSW = 0
POTIM = 0.5
IBRION = 2
ISIF = 3
EDIFFG = -0.005

# Electron SCF
EDIFF = 1E-6
ISMEAR = 1
SIGMA = 0.2
NEDOS = 2001
LORBIT = 11

先验知识,bcc-Li常压下没有磁性,所以ISPIN=1,金属体系ISMEAR=1,SIGMA=0.2,NEDOS=2001(默认301太少)是为了得到准确的费米能级,用于下一步能带的费米能级读取,LORBIT是输出分波态密度。

KPOINTS取2πx0.025的spacing,要在整个布里渊区采样,由vaspkit生成,POTCAR选取3个价电子的赝势。提交任务,确保计算收敛。

(b)选取高对称点路径做非自洽NSCF计算。

这一步目的是得到布里渊区高对称点路径上的电子能量-波矢色散关系,即能带结构。

新建工作目录band,把前面SCF计算的INCAT、POSCAR和POTCAR复制过来;INCAR需要在前面SCF的参数基础上把ICHARG由2改为11,11的含义是读取当前路径下的CHGCAR文件做非自洽计算。INCAR其余参数不变,记住,算band时,ISMEAR建议取0,而非-5.

NSCF这一步计算一定要和前一步SCF用的POSCAR一样,否则电荷密度信息不匹配,会算出不物理的结果。且要保证这一步INCAR中的PREC参数和SCF中设置一致。

能带计算的关键是KPOINTS的取法:先借助vaspkit生成KPATH.in文件,具体做法是vaspkit-3-303(3D材料303,2D材料302)

                     Point Group: 32  Oh
                    International: Im-3m
              Symmetry Operations: 48
                Suggested K-Path: (shown in the next line)
 GAMMA-H-N-GAMMA-P-HP-N
->>  (02) Written HIGH_SYMMETRY_POINTS File for Reference.
->> (03) Written PRIMCELL.YaSp file.
->> (04) Written KPATH.in File for Band-Structure Calculation.
                          WARNTNG-
Do NoT forget to copy PRIMCELL.vasp to POSCAR unlesS you know
  what you are doing. Otherwise you might get wrong results!

再次自己确认POSCAR是vaspkit生成的原胞(阅读蓝色框内容),以及空间群没错(bcc-Li的空间群是Im-3m),并且vaspkit给出的能带路径是G-H-N-G-P-H|P-N,关于路径问题后面会进一步解释。以及路径信息的文件KPATH.in

K-Path Generated by VASPKIT.
20
Line-Mode
Reciprocal
0.0000000000 0.0000000000 0.0000000000  GAMMA
0.5000000000 -0.5000000000 0.5000000000  H

0.5000000000 -0.5000000000 0.5000000000  H
0.0000000000 0.0000000000 0.5000000000  N

0.0000000000 0.0000000000 0.5000000000  N
0.0000000000 0.0000000000 0.0000000000  GAMMA

0.0000000000 0.0000000000 0.0000000000  GAMMA
0.2500000000 0.2500000000 0.2500000000  P

0.2500000000 0.2500000000 0.2500000000  P
0.5000000000 -0.5000000000 0.5000000000  H

0.2500000000 0.2500000000 0.2500000000  P
0.0000000000 0.0000000000 0.5000000000  N

然后把KPATH.in复制为KPOINTS。这里看到一共有6条路径,每条路径之间插点20个,所以一共计算了约120个k点的信息。相比于一般静态自洽计算的不可约k点多了一些。在能带计算中,可以适当减少一些不必要的路径,以及降低插点数(20改成10),以提高计算速度。但如果要获得某些局域位置精细的能带结构,这个数字建议提高到50甚至100以上。

于是现在有个五个输入文件(INCAR,POSCAR,POTCAR,KPOINTS,CHGCAR)+一个任务提交脚本。随后提交计算,确保计算成功结束。

(c)寻找正确的费米能级,并vaspkit用提取能带数据

这时候band文件夹会有一个DOSCAR文件,我们看最前面几行

  111
 0.2020545E+02  0.2971872E-09  0.2971872E-09  0.2971872E-09  0.5000000E-15
 1.000000000000000E-004
 CAR
unknown system
    33.18675627    -49.65245765 2001      1.23279552       1.00000000
   -49.652  0.0000E+00  0.0000E+00
   -49.611  0.0000E+00  0.0000E+00
   -49.570  0.0000E+00  0.0000E+00
   -49.528  0.0000E+00  0.0000E+00
   -49.487  0.0000F+00  0.0000F+00

2001就是INCAR中的NEDOS,控制能量步长,1.2327就是当前计算给出的费米能级。下方第一列就是能量(没有进行费米能shift),第二列是total-DOS,第三列是价电子数(在费米能级处的价电子数要与体系总价电子数一致),这个文件的内容请自行查阅vasp的wiki官网对DOSCAR文件的说明。

注意,band计算时因为只对布里渊区高对称点以及路径上的k点采样了,因此得到的费米能级1.23是不准确的,并且用改KPOINTS下算得的体系能量、力和压强也是不对的。正确的费米能级需要查看前面一步SCF计算时的DOCAR,那里的费米能级是0.6734。

在vaspkit提取能带数据时,为了确保取到正确的费米能级,有两种办法:

(1)在当前band计算路径下用vim编辑器写一个名为FERMI_ENERGY.in的文件,里面两行内容,如下:

#Fermi  energy fromD DoscAR in scf not band calculation iii
12

第一行用注释符号开头,后面内容不重要。

第二行就是指定的费米能级,从scf计算或者dos计算的DOSCAR中读取。

或者

(2)把SCF计算的DOSCAR复制到band目录,把band目录的DOCAR覆盖掉。或者直接手动修改band计算下DOSCAR文件中的费米能级数据。

这里,优先建议采用第一种写一个FERMI_ENEARGY.in文件的方法。后面的演示采用的是第二种(不建议)

然后运行vaspkit-21-211(从EIGENVAL文件中提取能带数据)

   -->> (01) Reading Input Parameters From INCAR File...
                >>> The Fermi Energy will be set to zero eV <<<
            (02)      Reading Fermi-Energy from DoSCAR File.
            (03)      Reading Structural Parameters from PoSCAR File.
            (04)      Reading Energy-Levels From EIGENVAL File..
            (05)      Reading K-Path From KPOINTS File..
   ->>      (06) Written KLABELS File!
                                                        Warm Tips
If You Want to Get Fine Band Structrue by Interpolating Method.
You CAN set GET_INTERPOLATED_DATA = .TRUE. in /.vaSpkit file.
   ->>      (07) Written BAND.dat File!
   -->> (O8) Written REFORMATTED_BAND.dat File!
   ->>    (09) Written KLINES.dat File!

这时候能带数据就在BAND.dat和REF_BAND.dat文件里了。这里我们采用BAND.dat,KLINES.dat以及KLABELS数据画图,可以自行查看这几个文件的数据情况。

(d)origin画能带图

把BAND.dat和KLINES.dat文件用orgin打开

bcc-li-band 配图 image119.png
bcc-li-band 配图 image120.png

右边是KLINES.dat数据,先选中这两列A(X), B(Y),绘制折线图如下(可能orgin版本或者模板不同,画出来略有差别,不重要),这是高对称路径的划分

bcc-li-band 配图 image121.png

然后选“图——图层内容”

bcc-li-band 配图 image122.png

在弹窗中选中左边的能带数据BAND,并点击中间的右箭头,把能带数据导入,并“应用-确定”

bcc-li-band 配图 image123.png

于是得到了能带数据和高对称路径划分

bcc-li-band 配图 image124.png

现在开始调整图像参数,提升图片可读性。

把能带曲线调整为红色(或者其它你觉得好看的,且不阴间的颜色);横轴范围调整为0- 8.507153(8.507源于KLINES.dat数据第一列最大值);纵轴能量范围调整为-5~3eV(我们只关心费米能附近的能带结构,因为远低于费米能的那些电子不会参与成键或者相互作用,所以深能级那个-45eV的能级不用管,实际上它是Li的1s2电子能级)

bcc-li-band 配图 image125.png

接下来将高对称点导入横轴位置:

还记得band计算输出的KLABLE文件么,把那个文件里面的高对称点符号以及对应的x坐标copy到origin的工作目录book1(下左图)

bcc-li-band 配图 image126.png
bcc-li-band 配图 image127.png

并把GAMMA替换为Γ(双击GAMMA那个格子,右键选择“字符表”,里面就有)

这时候回到刚才绘制的能带图,双击坐标轴

水平——刻度——按自定义位置——Sheet1B——确定/应用,这时候得到

(book1中col(B)是高对称点在x轴的坐标)

bcc-li-band 配图 image128.png
bcc-li-band 配图 image129.png
bcc-li-band 配图 image130.png

然后刻度线标签——类型(数据集文本)——数据集名称(Sheet1A)——应用确定,得到下右方的能带图(将字体调整为times new roman或者Arial)

bcc-li-band 配图 image131.png

绘制能带图的步骤也可以b站搜索“origin绘制能带图和导入高对称点”关键词。目前为止,我们成功得到了Li-bcc的能带结构(取体系的费米能级为0eV)。

再次强调,能带计算时,最为关键的就是要从scf计算的DOCAR中读取准确的费米能级。直接取band计算的DOSCAR中的能量作为费米能级,会得到错误的能带图,尤其是对于金属体系,这个点十分重要。

关于能带图的分析在最后会详细介绍,