wannierTools研究Topological Insulator
这里我想继续通过WannierTools来计算Topological insulator的一些性质,来让自己对输入文件中的一些参数有一个更加深刻的认识,并通过这个实例来学习新的一些控制参数的作用.
{:.info}
Topological insulator
这个博客中学习的实例同样来自于源代码中examples
文件夹中
首先解压文件得到这个体系的紧束缚模型的数据1
tar xzvf wannier90_hr.dat.tar.gz
wt.in
已经准备好了,接下来就主要分析学习一下里面的参数设置
1 | &TB_FILE |
Results
将上面的两个文件内容准备好之后,就可以进行计算了1
mpirun -np 10 wt.x
计算完成之后对结果进行可视化处理1
gnuplot surfdos_l.gnu
Bi$_2$Se$_3$
这里对3D拓扑绝缘体Bi$_2$Se$_3$进行一些计算
首先解压紧束缚数据1
tar xzvf wannier90_hr.dat.tar.gz
接下来分析一下控制计算的wt.in
文件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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134&TB_FILE
Hrfile = 'wannier90_hr.dat'
Package = 'VASP' ! obtained from VASP, it could be 'VASP', 'QE', 'Wien2k', 'OpenMx'
/
LATTICE
Angstrom
-2.069 -3.583614 0.000000 ! crystal lattice information
2.069 -3.583614 0.000000
0.000 2.389075 9.546667
ATOM_POSITIONS
5 ! number of atoms for projectors
Direct ! Direct or Cartisen coordinate
Bi 0.3990 0.3990 0.6970
Bi 0.6010 0.6010 0.3030
Se 0.0000 0.0000 0.5000
Se 0.2060 0.2060 0.1180
Se 0.7940 0.7940 0.8820
PROJECTORS
3 3 3 3 3 ! number of projectors
Bi px py pz ! projectors
Bi px py pz
Se px py pz
Se px py pz
Se px py pz
SURFACE ! Specify surface with two vectors, see doc
1 0 0
0 1 0
!> bulk band structure calculation flag
&CONTROL
BulkBand_calc = T ! 计算体态能带
BulkBand_points_calc = T ! Flag for bulk energy band calculation for some k points
DOS_calc = T ! Flag for density of state calculation
SlabBand_calc = T ! Flag for 2D slab energy band calculation
SlabBandWaveFunc_calc = T ! Flag for 2D slab band wave function
SlabBand_plane_calc = T ! Flag for 2D slab energy band calculation
WireBand_calc = T ! Flag for 1D wire energy band calculation
SlabSS_calc = T ! Flag for surface state ARPES spectrum calculation
SlabArc_calc = T ! Flag for surface state fermi-arc calculation
SlabQPI_calc = T ! Flag for surface state QPI spectrum calculation in a given k plane in 2D BZ
Z2_3D_calc = T ! Flag for Z2 number calculations of 6 planes(强TI需要有4个indeces来判断)
SlabSpintexture_calc = T ! Flag for surface state spin-texture calculation(计算表面态上的spin分布变化)
Wanniercenter_calc = T ! Flag for Wilson loop calculation
/
&SYSTEM
NSLAB = 4 ! Number of slabs for 2d Slab system
NSLAB1= 2 ! Number of slabs for 1D wire system
NSLAB2= 2 ! Number of slabs for 1D wire system
NumOccupied = 18 !> Number of occupied bands for bulk unit cell
SOC = 1 ! A parameter to control soc; Soc=0 means no spin-orbit coupling; Soc>0 means spin-orbit coupling
E_FERMI = 4.4195 ! Fermi energy, search E-fermi in OUTCAR for VASP, set to zero for Wien2k
surf_onsite= 0.0 !> surface onsite energy shift
/
&PARAMETERS
Eta_Arc = 0.001 ! infinite small value, like brodening, used to calculate dos epsilon+i eta
E_arc = 0.0 ! energy level for contour plot of spectrum, Fermi energy for arc calculation
OmegaNum = 400 ! omega number
OmegaMin = -0.6 ! energy interval
OmegaMax = 0.5 ! energy interval
Nk1 = 101 ! number k points odd number would be better(如果这个数值过小,结果会非常粗糙)
Nk2 = 101 ! number k points odd number would be better
Nk3 = 101 ! number k points odd number would be better
NP = 1 ! number of principle layers
Gap_threshold = 0.01 ! threshold for FindNodes_calc output, threshold value for output the the k points data for Gap3D
/
KPATH_BULK ! k point path(动量空间能带计算路径)
4 ! number of k line only for bulk band
G 0.00000 0.00000 0.0000 Z 0.00000 0.00000 0.5000
Z 0.00000 0.00000 0.5000 F 0.50000 0.50000 0.0000
F 0.50000 0.50000 0.0000 G 0.00000 0.00000 0.0000
G 0.00000 0.00000 0.0000 L 0.50000 0.00000 0.0000
KPATH_SLAB ! 半开边界计算能带时的路径选择
2 ! numker of k line for 2D case
K 0.33 0.67 G 0.0 0.0 ! k path for 2D case
G 0.0 0.0 M 0.5 0.5
KPLANE_SLAB
-0.1 -0.1 ! Original point for 2D k plane(2D半开边界计算时能带计算的位置选择)
0.2 0.0 ! The first vector to define 2D k plane
0.0 0.2 ! The second vector to define 2D k plane for arc plots
KPLANE_BULK
0.00 0.00 0.50 ! Original point for 3D k plane
1.00 0.00 0.00 ! The first vector to define 3d k space plane
0.00 0.50 0.00 ! The second vector to define 3d k space plane
KCUBE_BULK
-0.50 -0.50 -0.50 ! Original point for 3D k plane
1.00 0.00 0.00 ! The first vector to define 3d k space plane
0.00 1.00 0.00 ! The second vector to define 3d k space plane
0.00 0.00 1.00 ! The third vector to define 3d k cube
WANNIER_CENTRES ! copy from wannier90.wout
Cartesian
-0.000040 -1.194745 6.638646
0.000038 -1.196699 6.640059
-0.000032 -1.192363 6.640243
-0.000086 -3.583414 2.908040
0.000047 -3.581457 2.906587
-0.000033 -3.585864 2.906443
-0.000001 1.194527 4.773338
0.000003 1.194538 4.773336
-0.000037 1.194536 4.773327
0.000006 -1.194384 1.130261
-0.000018 -1.216986 1.140267
0.000007 -1.172216 1.140684
0.000011 -3.583770 8.416406
-0.000002 -3.561169 8.406398
-0.000007 -3.605960 8.405979
0.000086 -1.194737 6.638626
-0.000047 -1.196693 6.640080
0.000033 -1.192286 6.640223
0.000040 -3.583406 2.908021
-0.000038 -3.581452 2.906608
0.000032 -3.585788 2.906424
0.000001 1.194548 4.773330
-0.000003 1.194537 4.773332
0.000037 1.194539 4.773340
-0.000011 -1.194381 1.130260
0.000002 -1.216981 1.140268
0.000007 -1.172191 1.140687
-0.000006 -3.583766 8.416405
0.000018 -3.561165 8.406400
-0.000007 -3.605935 8.405982
将两个主要文件准备好之后,就可以开始计算了1
mpirun -np 2 wt.x &
对计算结果进行可视化1
2
3
4
5
6gnuplot bulkek.gnu # 体态能带计算
gnuplot wanniercenter3D_Z2.gnu-tutorial # Wilson loop计算
gnuplot surfdos_l.gnu # 表面态密度计算
gnuplot arc_l.gnu # 计算费米弧
gnuplot spintext_l.gnu # 计算费米弧上的spin分布
gnuplot slabek.gnu # 计算边界态
上面就是这个实例的一些参数设置和计算得到的一些结果.
练习
在这里做个小练习,改动参数来计算一下不同表面上的能带以及谱函数,这里主要通过修改SURFACE
这个参数下的内容来计算其它表面上的边界态以及能谱,将这个参数修改为1
2
3SURFACE ! Specify surface with two vectors, see doc
0 1 0
0 0 1
计算的结果如下
公众号
相关内容均会在公众号进行同步,若对该Blog感兴趣,欢迎关注微信公众号。
{:.info}
![]() |
yxliphy@gmail.com |