Origin画能带图

本文章为原创,版权归作者刘锦程所有,文章转载请先取得作者的同意,非常欢迎转发文章链接!严禁以任何方式挪用本文内容,用于以盈利为目的各种活动。

一句话提要:用VASPKIT是计算能带结构图最简单的方式,计算结果可以用Origin画图,也可以用Pymatgen画图。本文讲解用Origin画图方法。

相关内容

深入分析能带结构(一)

深入分析能带结构(二) VASPKIT能带图计算

pymatgen画能带图方法-高通量计算初探

使用VASPKIT 21功能得到的PBAND_.dat文件可以直接用origin画图得到投影能带,PBAND_.dat的文件格式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#K-Path    Energy     s     py     pz     px    dxy    dyz    dz2    dxz  x2-y2    tot
#Band-index 1
0.000 -14.278 0.275 0.000 0.005 0.000 0.000 0.000 0.000 0.000 0.000 0.281
0.060 -14.268 0.276 0.000 0.005 0.000 0.000 0.000 0.000 0.000 0.000 0.281
0.120 -14.239 0.276 0.000 0.005 0.000 0.000 0.000 0.000 0.000 0.000 0.281
0.180 -14.190 0.277 0.000 0.005 0.000 0.000 0.000 0.000 0.000 0.000 0.282
0.240 -14.123 0.278 0.000 0.005 0.000 0.000 0.000 0.000 0.000 0.000 0.284
0.300 -14.039 0.280 0.000 0.005 0.001 0.000 0.000 0.000 0.000 0.000 0.285
0.360 -13.938 0.281 0.000 0.005 0.001 0.000 0.000 0.000 0.000 0.000 0.288
0.420 -13.823 0.283 0.000 0.005 0.001 0.000 0.000 0.000 0.000 0.000 0.290
...
#Band-index 2
3.114 -13.063 0.315 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.316
3.045 -13.056 0.315 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.316
...
#Band-index 3
0.000 -5.798 0.018 0.000 0.125 0.000 0.000 0.000 0.000 0.000 0.000 0.143
0.060 -5.787 0.018 0.000 0.125 0.000 0.000 0.000 0.000 0.000 0.000 0.143
...

第一列是k-Path走过的距离,即能带图的横坐标,有几条能带(NBANDS)就会有几套数据。

第二列是能带的能量。

第三列到第九列是,每个轨道在能带上的投影。

最后一列是原子/元素在能带上的投影。(211)是原子的投影,(212)是元素的投影,相当于体系中该元素的所有原子,(213)可以按照自己的需求指定几个原子或几种元素的集合。

这个文件可以直接导入到origin里:

unfold band

选中前两行画先模型就能得到标准的能带图:

unfold band

在能带图上找到高对称点的位置,可以通过VASPKIT生成的KLABELS文件中得到,

1
2
3
4
5
K-Label    K-Coordinate in band-structure plots 
GAMMA 0.000
M 1.139
K 1.797
GAMMA 3.113

1.139是M点,1.797是K点,3.113是Gamma点。单位都是埃-1,在origin里添加如下几行,标记出高对称点位置。

1
2
3
4
5
1.14	-20
1.14 10

1.798 -20
1.798 10

也可以通过数line-mode的点的个数标记高对称点的位置,比如KPOINTS的第二行50,代表每两个高对称点之间插入50个点。在origin里每50行就有一个高对称点。

1
2
3
4
5
6
7
8
9
10
11
12
K-Path Generated by VASPKIT
50
Line-Mode
Reciprocal
0.0000000000 0.0000000000 0.0000000000 GAMMA
0.5000000000 0.0000000000 0.0000000000 M

0.5000000000 0.0000000000 0.0000000000 M
0.3333333333 0.3333333333 0.0000000000 K

0.3333333333 0.3333333333 0.0000000000 K
0.0000000000 0.0000000000 0.0000000000 GAMMA
unfold band unfold band unfold band

得到能带图效果如下:

unfold band

在plot setup里可以加入指定的 轨道成分/原子/元素 的投影到能带图上,俗称projected band structure或fat band structure.

unfold band

选中 Bubble,然后 A 列和 B 列数据作为 x 轴和 y 轴的数据, 最后一列作为元素的权重,点击 add->ok。然后调整bubble点的scaling和颜色即可。

unfold band unfold band

这样即画出满足文章要求的投影能带图。但是想要批量绘制投影能带图用origin就不方便了,这就需要程序化实现能带图绘制了,可以用pymatgen中pymatgen.electronic_structure.plotter的模块实现。

这张图是深入分析能带结构(二)-VASPKIT能带计算 文中计算的MoS2的Mo的投影能带,可见在VBM和CBM处,Mo元素所占权重很大,相应的S占的权重就少。注意这里的能带是没考虑自旋轨道耦合(SOC)的,如果考虑SOC,能带结构会发生改变。

如果想要看在VBM和CBM处的轨道图形,可以用VASP自带的parital charge功能,也可直接运行VASPKIT 511功能得到这两个位置的实空间波函数。

我们需要输入的信息是这两个位置的K点序号和band序号,这两个信息可以从 IBZKPT 文件和 EIGENVAL 文件中读取,从能带图上可以读出这个点正好是 K ,前面有两条线的路径$\Gamma$ -> M -> K,每条线上有20个点(KPOINTS文件的第二行),所以VBM和CBM处在第41个点的位置。Band的序号要根据占据数来读取,EIGENVAL 文件中该点的最高占据能带是13号,最低非占据能带是14号。在运行VASPKIT的时候依次选择 511 -> 41 -> 13 和 511 -> 41 -> 14 即可。

EIGENVAL :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0.3333333E+00  0.3333333E+00  0.0000000E+00  0.1666667E-01
1 -62.527256 1.000000
2 -36.782055 1.000000
3 -36.739875 1.000000
4 -36.624610 1.000000
5 -13.641115 1.000000
6 -13.567346 1.000000
7 -7.084097 1.000000
8 -6.272123 1.000000
9 -5.748132 1.000000
10 -5.251686 1.000000
11 -4.558188 1.000000
12 -3.850084 1.000000
13 -1.714496 1.000000
14 -0.037148 0.000000
15 1.372039 0.000000
16 1.842932 0.000000
17 3.168293 0.000000
18 5.547570 0.000000
19 5.927476 0.000000
20 7.925026 0.000000

运行VASPKIT:

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
511
+-------------------------- Warm Tips --------------------------+
Open Real-Space WaveFunction Files with VESTA/VMD Package.
+---------------------------------------------------------------+
Which K-POINT do you want to plot? (1<= ikpt <=60)

------------>>
41
Which BAND do you want to plot? (1<= iband <=20)

------------>>
13
+-------------------------- Warm Tips --------------------------+
Current Version Only Support the Stardard Version of VASP code.
+---------------------------------------------------------------+
-->> (01) Reading the header information in WAVECAR file...
+--------------------- WAVECAR Header --------------------------+
SPIN = 1
NKPTS = 60
NBANDS = 20
ENCUT = 500.00
Coefficients Precision: Complex*8
Maximum number of G values: GX = 6, GY = 6, GZ = 34
Estimated maximum number of plane-waves: 5127
+---------------------------------------------------------------+
-->> (02) Start to Post-Process Wavefunctions...
-->> (03) Reading Structural Parameters from POSCAR File...
-->> (04) Written WF_REAL_B0013_K0041.vasp File!
-->> (05) Written WF_IMAG_B0013_K0041.vasp File!

得到的文件WF_REAL_B0013_K0041.vasp,WF_REAL_B0014_K0041.vasp 拖入VESTA里作图。这里看到CBM主要是横向分布的,而VBM波函数是横向和纵向分布都有的:

unfold band
欢迎在评论区讨论问题、补充内容、指出错误。请勿发送占楼、沙发、点赞等无意义的回复。
目录