3D 拓扑绝缘体模型对称性分析及推导
虽然一直在利用2D和3D拓扑绝缘体的模型来进行一些研究,但是对这个模型的来源和对称性却并不明白是为什么,这里就来完整的整理一下到底这个模型是如何得到的,以及对应的对称性又是如何表示的。{:.info} 对称性分析Model Hamiltonian for topological insulators这篇文章中就是对模型的详细分析,博客的主要内容也是来源于这篇文章,主要是以Bi$_2$Se$_3$作为主要材料来得到3D拓扑绝缘体的模型,首先来看这个晶体的模型, 这个晶体结构具有如下对称性 $R^z_3$ x\rightarrow x\cos\theta-y\sin\theta,y\rightarrow x\sin\theta+y\cos\theta,z\rightarrow z $R_2^x$ Se2$\rightarrow$Se2,Bi1$\rightarrow$Bi1$^{‘}$,Se1$\rightarrow$Se1$^{‘}$,$z\rightarrow -z,y\rightarrow -y,x\rightarrow x$,从这个对称操作可以看出Bi1(Se1)与Bi1$^{‘}$(Se1$^{‘}$)所在的层交换了位置 Inversion $\mathcal{P}$ Se2$\rightarrow$Se2,Bi1$\rightarrow$Bi1$^{‘}$,Se1$\rightarrow$Se1$^{‘}$,$z\rightarrow -z,x\rightarrow -x,y\rightarrow-y$,这里的反演操作是以Se2原子为反演中心,Bi1(Se1)与Bi1$^{‘}$(Se1$^{‘}$)所在的交换了位置。 Time reversal $\mathcal{T}$在spinfull的系统中,时间反演对称操作的作用满足$c_\uparrow\rightarrow c_\downarrow,c_\downarrow\rightarrow...
利用投影子方法求解Square lattice边界态
在Square lattice上求解沿着$x$或者$y$方向求解边界态的时候,还可以使用另外一种投影子的方法,这里就介绍一下这个方法。{:.info}同样考虑BHZ模型加入Zeeman场这样的一个模型 H(\mathbf{k})=(m_0-t_x\cos k_x-t_y\cos k_y)\sigma_z+\lambda_x\sin k_x\sigma_xs_z+\lambda_y\sin k_y\sigma_y+h_0s_x这里$\Gamma_1=\sigma_zs_0,\Gamma_2=\sigma_xs_z,\Gamma_3=\sigma_ys_0,\Gamma_4=\sigma_0s_x$。将$h_0s_{x}$视为微扰,求解BHZ模型对应的边界态。先沿着$y$方向取开放边界条件,进行Fourier变换到实空间 H(k_{x})=(m_0-t_x\cos k_x-t_y/2(S_{y}+S_{y}^{\dagger}))\sigma_z+\lambda_x\sin k_x\sigma_xs_z+\lambda_y/(2i)(S_{y}-S_{y}^{\dagger})\sigma_y\label{eq8} S_{y}\rvert i\rangle=\rvert i+1\rangle,\quad S_{y}^{\dagger}\rvert i\rangle=\rvert i-1\rangle考虑一个半无限大的系统,考虑$y$轴的正方向满足$S_y^\dagger\rvert 0\rangle=0$,此时可以见平移算符表示为 S_y=\left[\begin{array}{ccccc} 0&0&0&0&\cdots\\ 1&0&0&0&\cdots\\ 0&1&0&0&\cdots\\ 0&0&1&0&\cdots\\ \cdots&\cdots&\cdots&\cdots \end{array}\right],\quad...
2D 环面上的边界态理论计算
最近在学习各种方式的边界态理论求解,这个博客就整理一下如何在一个2D的环面上求解边界态理论。{:.info}这里就采用最熟悉的BHZ模型,再考虑一项Zeeman场$h_0s_x$。 H(\mathbf{k})=(m_0-t_x\cos k_x-t_y\cos k_y)\sigma_z+\lambda_x\sin k_x\sigma_xs_z+\lambda_y\sin k_y\sigma_y+h_0s_x首先分析哈密顿量发生能带反转的位置,将哈密顿量在能带反转点$\Gamma=(0,0)$处展开 H(\mathbf{k})=(m_t-\frac{1}{2}tk_x^2-\frac{1}{2}tk_y^2)\sigma_z+\lambda k_x\sigma_xs_z+\lambda k_y\sigma_y+h_0s_x首先将问题转换到实空间$k_{x,y}\rightarrow -i\partial_{x,y}$,在实空间中,将问题转换到极坐标中进行处理 r=\sqrt{x^{2}+y^{2}},\quad\theta=\arctan\frac{y}{x},\quad x=r\cos\theta,\quad y=r\sin\theta利用函数的链式求导 \begin{aligned} x&=x(r,\theta),\quad\frac{\partial}{\partial x}=\frac{\partial}{\partial r}\frac{\partial r }{\partial x }+\frac{\partial}{\partial\theta}\frac{\partial \theta }{\partial x }\\ y&=y(r,\theta),\quad\frac{\partial}{\partial y}=\frac{\partial}{\partial r}\frac{\partial r }{\partial y }+\frac{\partial}{\partial\theta}\frac{\partial \theta }{\partial y } \end{aligned}最终可以得到 \begin{aligned} \frac{\partial}{\partial...
VASP输出文件内容结构解析(未完成)
这里整理一下最近学习vasp的时候,对一些输出文件中的内容进行一下整理,这样可以让自己再可视化结果的时候,明白需要从哪个文件中寻找什么结果.{:.info} EIGENVAL这个文件中会输出对应$k$点的本征值,如果在KPOINTS中设置了高对称路径,那么就可以从这个数据文件中得到能带图,其数据内容如下 第一行,前三个整数无意义,第四个整数,如果是2,表示是自旋极化的计算,如果是1,表示非自旋极化的计算. 第2至5行的数据含义不大明确,可以不关心. 第6行的数据表示:第一个数表示体系总的价电子数目,第二个数表示的计算能带时总的$k$点数目,第三个数表示的是计算能带时计算了多少条能带.电子数可以通过在设置POSCAR中的原子自己算出来,而$k$点的数目也与在KPOINTS中的设置是有关系的,最后的能带数同样可以从OUTCAR中的到1cat OUTCAR | grep NBANDS 第8行的前三个数是$k$点的坐标,第四个数是相应$k$点的权重. 第9行给出的是该$k$点对应的本征值的序号(即第几条能带),及相应的本征值. 在知道了这个文件中内容结构之后,就可以通过脚本来提取数据绘制能带图.利用下面的程序进行处理1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 program prog real, allocatable :: e(:,:),eup(:,:),edn(:,:) real, allocatable :: k(:,:) real, dimension(3) ::k0,a real, dimension(6) ::xxxx character(len = 32):: xx, yy write(6,*) 'fermi level (eV)' read(5,*) ef open(10,file = 'EIGENVAL', status = 'old') open(11,file = 'band_fermi.dat') ...
群论学习笔记-Part6
根据不变子群的表示来得到群的表示.{:.info} 诱导表示假设\mathbf{K}_1是\mathbf{G}的子群,不一定是不变子群,比如\mathbf{G}是空间群,\mathbf{K}_1是某个波矢\mathbf{k}_1的小群;将\mathbf{K}_1中的元素标记为k_\alpha(\alpha=1,\rvert\mathbf{K}_1\rvert),将群进行陪集分解 \mathbf{G}=\sum_\alpha p_\alpha\mathbf{K}_1这里的p_\alpha就是左陪集表示,\alpha=1,\cdots,\rvert\mathbf{G}\rvert/\rvert\mathbf{K}_1\rvert,这个方程表明群\mathbf{G}中的每一个元素g都可以表示为p_\lambda k_s的形式.这里的p_\lambda是分解中的一个陪集表示,而且p_\lambda.k_s\in\mathbf{K}_1都是由g唯一确定的. 群\mathbf{G}中的每个元素g都可以表示为g=k_bp_\lambda^{-1},这里的b,\lambda都是由g唯一确定的.{:.success} 从上面的陪集分解中可以知道g^{-1}=p_\lambda...
Wannier90学习过程
最近在慢慢接触第一性计算的相关内容,需要补充一些工具,这里就整理记录一下我在学习Wannier90过程中遇到的疑问和自己对其中内容的一些理解.{:.info}我在这里完全就先是重复Wannier90给出的例子,在重复的过程中通过文档边学习边理解. Gallium Arsenide(Example 1)最主要的就是输入控制文件file.win,这个文件来控制要进行什么样的计算.这里需要说明,要计算不同的性质和物理量,除了控制文件之外还需要其他的数据,这第一个实例中的文件如下 123456789101112131415161718192021222324252627282930313233343536373839404142434445! Gallium Arsenide: Tutorial Example 1 num_wann = 4 num_iter = 20 wannier_plot = true! SYSTEMbegin unit_cell_cartbohr-5.367 0.000 5.367 0.000 5.367 5.367-5.367 5.367 0.000end unit_cell_cartbegin atoms_fracGa 0.00 0.00 0.00As 0.25 0.25 0.25end atoms_fracbegin projectionsAs:sp3end projections! KPOINTSmp_grid : 2 2 2begin kpoints0.0 0.0 0.00.0 0.0 0.50.0 0.5 0.00.0 0.5 0.50.5 0.0 0.00.5 0.0 0.50.5 0.5 0.00.5 0.5 0.5end kpoints!We set this flag to read the bloch states from!a formatted file. This is to ensure the example!works on all platforms. The default (.false.) state!should be used on production...