结合拓扑量子化学判断Bi$_2$Se$_3$的拓扑性质
这篇博客整理一下怎么利用拓扑量子化学的方法来判断一个材料是拓扑还是半金属还是平庸的。{:.info} 前言在之前的学习中,判断一个材料是否为拓扑的,主要还是通过是否存在表面态以及拓扑不变量进行研究的,当然还有新的方案,比如拓扑量子化学的方法,通过能带在高对称点的不可约表示来直接判断是否为拓扑的,这里就想利用这个方法来研究Bi$_2$Se$_3$的拓扑性质。 利用VASP计算高对称点的能带不可约表示主要有下面的一些步骤 自洽计算的到收敛的CHGCAG 利用自洽的到的CHGCAG在高对称点计算波函数WAVECAR 利用高对称点的WAVECAR结合irvsp来得到高对称点对称操作的本征值信息 利用vasp2trace来得到trace.txt文件,上传到BCS网站上面来判断拓扑与否不考虑SOC首先进行自洽计算自洽计算 POSCAR 12345678910111213141516171819http://materials.springer.com/isp/crystallographic/docs/sd_0541504 4.138 4.138 28.640 .28867513459481288225 -0.50000 0.333333333 .28867513459481288225 0.50000 0.333333333 -.57735026918962576450 0.00000 0.333333333 Bi Se 2 3Cart 0.0 0.0 0.399 0.0 0.0 -0.399 0.0 0.0 0.206 0.0 0.0 -0.206 0.0 0.0 0.0 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 ...
$\mathcal{Z}_2$和$\mathcal{Z}_4$拓扑不变量计算
这里博客整理一下如何利用反演操作的本征值来计算$\mathcal{Z}_2$和$\mathcal{Z}_4$拓扑不变量。 {:.info} 当一个体系同时存在时间反演和空间反演对称性的时候,可以通过只计算时间反演不变动量点占据态对应的反演算符的本征值来快速计算体系的$\mathcal{Z}_2,\mathcal{Z}_4$拓扑不变量,这里就先说明一下反演算符的性质。 之前做过一下关于BHZ模型,通过只计算高对称点的宇称计算$\mathcal{Z}_2$拓扑不变量的文章利用Wannier90的hr数据构建动量空间能带并计算高对称点宇称 ,这里就是直接通过读取紧束缚的hr数据,计算了拓扑不变量,这篇博客可以和上一篇结合起来一起看,加深自己的理解。 反演算符考虑一个量子态$\rvert\mathbf{r},\sigma\rangle$,假设反演算符为$\mathcal{I}$,那么这个量子态在反演算符下的变换为 \mathcal{I}\rvert\mathbf{r},\sigma\rangle=\rvert\mathbf{-r},\sigma\rangle反演算符只对空间部分产生作用,自旋是不会发生变化的。对于动量空间中的量子态$\rvert\mathbf{k},\sigma\rangle$,其反演操作变化为 \mathcal{I}\rvert\mathbf{k},\sigma\rangle=\rvert\mathbf{-k},\sigma\rangle在动量空间中将哈密顿量表示为 H=\sum_{\mathbf{k},\sigma,\sigma^\prime}\rvert\mathbf{k},\sigma\rangle H(\mathbf{k})_{\sigma,\sigma^\prime}\langle\mathbf{k},\sigma\rvert将空间反演操作作用上去就可以得到 \begin{equation}\begin{aligned}\mathcal{I}H\mathcal{I}^{-1}&=\sum_{\mathbf{k},\sigma,\sigma^\prime}\mathcal{I}\rvert\mathbf{k},\sigma\rangle...
第一性计算Bi的拓扑性质
这篇Blog整理一下自己学习使用irvsp并结合拓扑量子化学计算元素Bi的拓扑性质时候的一些笔记,其实主要就是整理计算过程。{:.info} irvsp 关于irvsp的安装和使用可以参考Irvsp学习笔记这篇博客,这里就不再重复提及了。不过唯一 需要多说的是,在这里不止要使用src_irvsp_v2_release,还需要用到src_trace_v1,所以可以在安装的时候,将这个文件夹下面的也一起安装。安装完成之后 可以在文件夹下面看到vasp2trace这个可执行文件,如下图所示 将这个可执行文件增加到你的路径中就可以1export PATH=yourpath/src_trace_v1/:$PATH 到这里准备工作就完成了,下面开始vasp的计算。 Bi第一性计算 这里就不计算晶格弛豫了,直接进行自洽计算 自洽计算 首先是控制文件INCAR123456789101112131415161718192021222324SYSTEM = BiISTART = 0ICHARG = 2IALGO = 38EDIFF = 1E-7#EDIFFG = 1E-6LREAL = FalseENCUT = 500#NBANDS= 50 ISMEAR = 0 # -5---> metal 0,1--->semiconductor 0 for allSIGMA = 0.05 #spin orbit couplingLSORBIT =.TRUE.SAXIS = 0 0 1#ISPIN = 2MAGMOM = 100*0.0LORBIT = 11LWAVE = .FALSE.LMAXMIX = 4#NPAR = 4 POSCAR 12345678910generated by phonopy 1.0 2.2665000000000002 1.3085643851182867 3.9323333333333332 -2.2665000000000002 1.3085643851182867 3.9323333333333332 0.0000000000000000 -2.6171287702365733 ...
MagneticTB软件包学习
这篇博客准备整理一下自己最近一段时间学习MagneticTB这个构建紧束缚模型的软件包时候的一些理解。{:.info} 前言 在通常的研究中,总是会借助到利用紧束缚近似的方法,来研究一个体系在费米面附近的性质,其实也就是利用一个模型,在费米面附近的能带结构和真实的能带结构近似吻合,而在我之前的学习和计算中,其实主要是结合Wannier90来获得一个紧束缚模型,不过这里所说的这个模型,我一直理解的就是他是一个数值上的模型,也就是没有一个具体的函数表达形式,只是一个单纯的wannier90_hr.dat数据,虽然这个模型也可以很好的反映体系在费米面附近的性质,而且能带上拟合的也是很好,但是如果我想从解析上研究一点东西,这个数据看起来就不行了(虽然有时候一些解析的东西同样可以用数值的方法来计算)。 在前面的学习中,也整理了如何从解析的推导一个紧束缚模型,Graphene 紧束缚模型推导,这篇博客就是整理了怎么推导紧束缚模型,虽然其中的交叠积分仍然是一个参数,但是对于理论研究来说,既然是个参数,那么总是可以调节的么,只要在合理的范围内和真实的能带吻合的较好就可以。 MagneticTB这个软件包将构建紧束缚(TB)模型的过程变的更加的简化,我们只需要给出材料的晶格结构以及原子在实空间中占据的Wyckoff position就可以得到一个带有参数的TB模型,下面我就结合自己所学的知识,学习一下软件包例子中给出的Graphene的案例来整理一下学习笔记。 Graphene 这里需要的主要信息有 晶格的空间群 msgpo[gray[191]] 晶格矢量 lattice 晶格常数 lattpar 原子所处的Wyckoff position wyckoffposition 基函数 basisFunction 如果是在有POSCAR文件的时候,可以通过phonopy来确定晶体的空间群和原子所处的Wyckoff position 1phonopy --symmtery >syinfo & 通过这个命令就可以在syinfo文件中找到晶体结构对应的空间群号,对称操作,Wyckoff...
Python实现文件夹中文件批量处理
Python实现文件夹中问价批量复制并移动到其他位置。{:.info} 问题描述一个文件中有许多个子文件夹,而子文件夹下面又有名称相同的一个文件夹,形成了一层多余的结果,所以想把最下面的文件提取出来,只保留最外层的这个文件夹下面就可以,实现代码如下,这里比较懒,没有进行函数化1234567891011121314151617181920212223242526272829303132333435363738394041import osimport shutil#--------------------------------------------------------filelist = os.listdir(os.getcwd() + "/" + "new") # 获取当前文件夹中的所有文件名称(包括文件夹)flist2 = []i0 = 0for filename in filelist: i0 += 1 f1 = filename + "/" + filename f2 = os.getcwd() + "/" + "new" + "/" + f1 # 文件夹下面还有名称相同的文件夹,这里进行拼接,组合成正确的文件路径,方便后面获取其中的文件 flist2.append(f2)print("原始文件夹数量为 %d"%i0)os.chdir(os.getcwd())# 确定用户执行路径tarfolename = "AFold" # 新建一个文件夹来存储这些文件,消除掉原本有两层的结构folder = os.path.exists(tarfolename)if not folder: os.mkdir(tarfolename) # 在当前路径下新建一个文件夹,用来存放新的文件# else: # print("文件夹已经存在")f11 = os.getcwd() + "/" + tarfolename # 文件复制的目标路径i0 = 0for f1 in flist2:...
ARPES的理论原理
这里整理一下ARPES的理论原理,搞清楚一下到底它测量的是什么物理量。{:.info} 基本原理Angle-resolved photoemission spectroscopy...