重学凝聚态拓扑(Class 2)
最近正好有些空闲的时间,发现自己对拓扑中的一些理解并不深刻,正好借这个机会重新学习一下,加深自己对其中内容的理解,也能让自己之后的研究走的更远。{:.info} Zero-dimensional quantum systems假设一个量子系统具有$N$个量子态,那么这个系统的哈密顿量$H$就可以表示为一个$N\times N$的矩阵,同时这个矩阵要满足厄米$H^\dagger=H$,其对应的本征值是实数,满足的本征方程为 H\rvert n\rangle = E_n\rvert n\rangle这里的$\rvert n\rangle$就是系统的本征态。现在考虑$H$描述的是一个很小的量子点,它只有少数的几个能级,我们可以考虑它与一个金属导体存在弱耦合,如下图所示 当存在金属电极之后就可以测量量子点中的能级$E_n$,此时能量参考点是金属电极的费米能$E_f$,因此量子点中所有$E_n0$的则表示空态,如上图所示,在金属电极和量子点之间存在着势垒,所以电极和量子点之间的耦合很弱,此时仍然可以将量子点看作是一个孤立的系统,这是一个不错的近似。{:.info} Topology and gapped quantum systems拓扑研究的是物体在连续变化的性质。在凝聚态物理中,如果两个量子系统可以连续的相互演化,那么就称它们是拓扑等价的,否则就是拓扑不等价。如果此时考虑的哈密顿量不存在任何的限制,每一个哈密顿量都可以连续的演化,那么所有的量子系统都是拓扑等价的。此时如果我们只考虑具有能隙的系统(比如绝缘体),此时系统的占据态和空态之间存在激发能隙,此时哈密顿量在能量为零处就不会存在本征值,此时就可以对物理中的拓扑给出判据:如果两个系统的哈密顿量可以在不关闭能隙的前提下相互演化,那么就称这两个系统是拓扑等价的。In the following, we will see that often one is interested in some more specific criterion: for instance, that some symmetry may be preserved throughout the continuous path which connects two...
重学凝聚态拓扑(Class 1)
最近正好有些空闲的时间,发现自己对拓扑中的一些理解并不深刻,正好借这个机会重新学习一下,加深自己对其中内容的理解,也能让自己之后的研究走的更远。{:.info} 能带结构在量子力学描述电子运动的时候,电子波函数满足薛定谔方程 i\hbar\partial_t \Psi = H\Psi,这里的$\Psi$就是电子在某一位置上的波函数,$H$则是系统的哈密顿量,如果可以严格的求解这个方程,那么就可以预测电子在运动。不过对于一般的系统,这个方程很难有解析解,但是可以通过数值的方式对其进行求解。比如将波函数$\Psi$通过一组完备的本征基矢展开 \Psi=\sum_i\phi_i此时方程的求解就变成了求解一个矩阵的本征值问题。但是这个完备基矢的维度可能会很大,有可能是无限维的,这个时候通过矩阵对角化同样不能对薛定谔方程进行求解。 在求解薛定谔方程的时候,可以将其和经典运动的波动方程进行类比,比如最常见的弦振动方程为 \partial_t^2 h-c^2\partial_x^2 h=0,这里的$h(x,t)$就是弦在空间中某一时刻某一位置偏离其平衡态的位移,可以看到方程中存在对其的二阶导数,但是在薛定谔方程中包含的则是对时间的一阶导数,这个时候可以通过变量代换的方式,令方程在形式上看起来是一个一阶方程,定义 h_1(x,t)=c^{-1} \partial_t h(x,t)\qquad h_2(x,t)=\partial_x h(x,t)利用新定义的$h_1(x,t),h_2(x,t)$之后,就可以将上面的二阶波动方程,变成两个一阶的方程。这个操作在学习数值计算的时候遇到过,将高阶方程变成低阶的时候,方程的数量是会翻倍的,此时低阶方程可以通过数值或者解析的方式得到精确解,再回带到定义式中,就可以得到高阶方程的解。 为了将波动方程在形式上和薛定谔方程类似,此时可以定义 \Psi(x,t)=\left(\begin{array}{c}h_1(x,t)\\h_2(x,t)\end{array}\right)\quad H=c\left(\begin{array}{cc}0& 1\\1 &...
$\LaTeX$中插入代码
最近在适用自己的$\LaTeX$模版整理笔记的时候,想要把自己的笔记和代码整理到一起,这样就不会时间久了笔记找得到反而代码找不到了,整理到一起就更方便了,这里就找到了一个在$\LaTeX$中插入代码的包。{:.info} 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061\documentclass[11pt]{article} \usepackage{pythonhighlight}\begin{document}这里插入python代码\begin{python}import numpy as npimport matplotlib.pyplot as pltfrom matplotlib import rcParamsimport osconfig = {"font.size": 30,"mathtext.fontset":'stix',"font.serif": ['SimSun'],}rcParams.update(config) # Latex 字体设置#---------------------------------------------------------def scatterplot1(cont): dataname = "band-theta=" + format(cont,'.2f') + ".dat" # dataname = "band-theta=1.05.dat" tit = "Twist angele is " + format(cont,'.2f') + "$^\degree$" # da1 = "did-short.dat" picname =...
分数约瑟夫森效应(Fraction Josephson Effect)
拓扑超导中存在Majorana费米子时,因为其满足非阿贝尔统计,会出现$4\pi$-Josephson效应。这里就研究Kitaev模型中的Josephson效应。{:.info} 前言这里是想实现一个有Kitaev模型构成的Josephson结,在结的两侧分别具有Majorana费米子,在中间加入一个绝缘体,从而系统中会存在零能Andreev束缚态,Josephson电流也会出现$4\pi$的周期。具体的物理内涵在这里先不解释了,我自己暂时对其中的内容理解不是很透彻,等之后完全理解了再重新整理一份笔记详细讨论关于拓扑超导体中的Josephson效应。 直接上代码计算Josephson效应123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167# 构造Josephson junction@everywhere using SharedArrays, LinearAlgebra,Distributed,DelimitedFiles,Printf,Arpack# --------------------------------------@everywhere function pauli() s0 = zeros(ComplexF64,2,2) s1 = zeros(ComplexF64,2,2) s2 = zeros(ComplexF64,2,2) s3 = zeros(ComplexF64,2,2) #---- ...
Vortex Majorana
马上轮到大组会了,整理了一下自己关于vortex Majorana的一些基本知识和实验内容,先把PPT放在这里吧,整理过程中自己也把一些事情搞明白了,算是小有收获。{:.info} 公众号相关内容均会在公众号进行同步,若对该Blog感兴趣,欢迎关注微信公众号。{:.info} Email yxliphy@gmail.com
稀疏矩阵少量本征值求解踩坑
最近这两天对角化矩阵本征值的时候踩了大坑,这里必须整理一下。使用的是Julia的Arpack库中,求解少量本征值的函数eigs。本来以为是自己程序写错了,认真检查了两天了,结果是这个函数自身的问题。{:.warning} 烦一直以来做计算都是要对矩阵进行对角化,通常也只是关注低能附近的情况,所以这个时候是没必要进行全矩阵对角化的,只需要得到低能的一些本征值即可。通常我是用的是Julia的Arpack这个库,函数为1val,vec = eigs(ham,nev = 100,mt1iter = 30,which = :SM) # 取最小的100个本征值因为此时好像是利用迭代的方法来求解本确定数量的本征值的,所以此时就会有一个迭代数量设置,我在之前的问题中一直都是设置mt1iter = 30,也没出什么问题,得到的结果也都是正确的,但是最近在计算超导vortex中的低能激发的时候就出问题了,得到的结果会震荡的很厉害,而且将mt1iter = 100同样发现和文献中的结果有出入,最终不得不使用直接对角化的方法,得到全部的本征值1val = eigvals(ham)此时得到的结果才和文章是符合的。 我推测是因为此时我关注的本来就是低能激发,所以首先可能要得到精确的结果就需要迭代很多次,但是如果将迭代次数设置更大,计算时间可能就会大过直接对角化所需要的时间,所以如果我们关心的问题本身就是能量特别小的,此时可能就需要直接对角化来计算(在哈密顿量维度不是特别大的时候)。如果矩阵维度很大,那么能想到的方法就是将所有的参数都同时扩大同样的倍数,然后使用eigs(ham,nev = 100,mt1iter = 30,which = :SM)来计算结果。{:.warning} 公众号相关内容均会在公众号进行同步,若对该Blog感兴趣,欢迎关注微信公众号。{:.info} Email yxliphy@gmail.com