wannierTools研究Topological Insulator

您所在的位置:网站首页 insultlator wannierTools研究Topological Insulator

wannierTools研究Topological Insulator

2023-04-01 01:24| 来源: 网络整理| 查看: 265

这里我想继续通过WannierTools来计算Topological insulator的一些性质,来让自己对输入文件中的一些参数有一个更加深刻的认识,并通过这个实例来学习新的一些控制参数的作用.

Topological insulator

这个博客中学习的实例同样来自于源代码中examples文件夹中

首先解压文件得到这个体系的紧束缚模型的数据

tar xzvf wannier90_hr.dat.tar.gz

wt.in已经准备好了,接下来就主要分析学习一下里面的参数设置

&TB_FILE Hrfile = 'wannier90_hr.dat' ! 存储紧束缚能带数据的文件 Package = 'VASP' / !> bulk band structure calculation flag &CONTROL BulkBand_calc = T ! 选择是否计算体态能带 SlabBand_calc = F ! Flag for 2D slab energy band calculation SlabSS_calc = T ! Flag for surface state ARPES spectrum calculation wanniercenter_calc = T ! 计算体系能带的Wilson loop,可用来判断体系拓扑性质 / &SYSTEM NSLAB = 10 ! Number of slabs for 2d Slab system NumOccupied = 28 ! 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 = -2.9600 ! Fermi energy, search E-fermi in OUTCAR for VASP, set to zero for Wien2k / &PARAMETERS OmegaNum = 301 ! The number of energy slices between OmegaMin and OmegaMax OmegaMin = -1.0 ! energy interval OmegaMax = 0.5 ! energy interval Nk1 = 61 ! number k points(k点数目增加,计算细节可以体现更好,相应的计算时间也变长) Nk2 = 101 ! number k points NP = 1 ! Number of princple layers for surface green's function(控制表面格林函数计算) / LATTICE ! 元胞信息设置(可参考VASP) Angstrom 3.2981915 0.0000000 0.0000000 0.0000000 5.9443957 -0.0465052 0.0000000 -0.0987512 28.0482181 ATOM_POSITIONS 6 ! number of atoms for projectors Cartisen ! Direct or Cartisen coordinate W 1.6490957 2.3786520 16.4406451 W 0.0000000 0.1332231 16.6311989 Se 1.6490957 0.7737841 18.4325241 Se 0.0000000 3.7846718 17.9156060 Se 0.0000000 1.7381028 14.6392263 Se 1.6490957 4.6716096 15.1096395 PROJECTORS !设置投影轨道 2*6 4*3 ! number of projectors(每个W原子贡献6个轨道,每个Se原子贡献3个轨道) W s dz2 dxz dyz dx2-y2 dxy ! 分别在这里写出是哪些轨道要进行投影(这部分内容我不太懂,还在学习中) W s dz2 dxz dyz dx2-y2 dxy Se pz px py Se pz px py Se pz px py Se pz px py SURFACE ! 控制表面态计算 0 1 0 ! 第一个表面的方向 0 0 1 ! 第二个表面的方向 1 0 0 ! 第三个表面的方向 ! 当这里计算slab表面态计算的时候,只有前两个矢量方向是有用的,第三个方向默认是开边界的,所以如果向求解不同方向开边界的能谱图只需要对这个参数的顺序进行调整即可,或者就只写出两个周期方向的矢量,比如像看a方向开边界,那么b,c方向就是周期的,这里默认a,b,c是直角坐标的三个基矢. !-------------------------------------- !SURFACE !0 1 0 !0 0 1 !--------------------------------------- KPATH_BULK ! k point path(在进行体态能带计算时候,控制计算的高对称路径) 4 ! number of k line only for bulk band X 0.50000 0.00000 0.00000 G 0.00000 0.00000 0.00000 G 0.00000 0.00000 0.00000 Y 0.00000 0.50000 0.00000 Y 0.00000 0.50000 0.00000 M 0.50000 0.50000 0.00000 M 0.50000 0.50000 0.00000 G 0.00000 0.00000 0.00000 KPATH_SLAB ! 表面态能谱计算时候的路径选择 2 ! numker of k line for 2D case X 0.5 0.0 G 0.0 0.0 ! k path for 2D case G 0.0 0.0 M 0.5 0.5 ! 从上面可以分析出,在进行表面态计算时选择的路径是X--->G--->M KPLANE_BULK ! 这个参数暂时并不清楚是控制什么计算的 0.00 0.00 0.00 ! 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 Results

将上面的两个文件内容准备好之后,就可以进行计算了

mpirun -np 10 wt.x

计算完成之后对结果进行可视化处理

gnuplot surfdos_l.gnu

Bi$_2$Se$_3$

这里对3D拓扑绝缘体Bi$_2$Se$_3$进行一些计算

首先解压紧束缚数据

tar xzvf wannier90_hr.dat.tar.gz

接下来分析一下控制计算的wt.in文件

&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

将两个主要文件准备好之后,就可以开始计算了

mpirun -np 2 wt.x &

对计算结果进行可视化

gnuplot 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这个参数下的内容来计算其它表面上的边界态以及能谱,将这个参数修改为

SURFACE ! Specify surface with two vectors, see doc 0 1 0 0 0 1

计算的结果如下



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3