矩阵对角化与Bogoliubov对角化的联系
在前面已经做过了对二次型哈密顿量进行Bogoliubov对角化的操作,但平时在做计算的时候,通常都是通过数值的方法来对哈密顿量矩阵进行对角化.在这里正好就将这两种方式求解之间的关系进行一下梳理.{:.info} 矩阵对角化设M是一个任意的矩阵$(n\times n)$,假设它的本征值为$\lambda_1,\lambda_2,\dots,\lambda_n$,本征矢量为$\boldsymbol{V_1},\boldsymbol{V_2},\dots,\boldsymbol{V_n}$,这些本征矢量之间是相互正交的,形成线性无关的集合,利用这些本征矢量来构建一个矩阵 \boldsymbol{A} = [\boldsymbol{V_1},\boldsymbol{V_2},\dots,\boldsymbol{V_n}]可以通过作用$\boldsymbol{A}$矩阵到$\boldsymbol{M}$上对其进行对角化 \boldsymbol{A}^{-1} \boldsymbol{M} \boldsymbol{A}=\left(\begin{array}{cccc} \lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_{n} \end{array}\right)上面这也是一个相似变换过程,将这个过程反过来可以得到$\boldsymbol{M} = \boldsymbol{A}\boldsymbol{D}\boldsymbol{A^{-1}}$,这里$\boldsymbol{D}$是只有对角线元素的矩阵,每个对角元素正好对应着$\boldsymbol{M}$的本征值. 哈密顿量矩阵\bar{H} \approx \sum_{k} \varepsilon_{k}\left(C_{k}^{+} C_{k}+C_{-k}^{+} C_{-k}\right)-\Delta \sum_{k}\left(C_{k}^{+} C_{-k}^{+}+C_{-k} C_{k}\right)+\Delta^{2} / V对于这个哈密顿量,选取$\psi^\dagger =...
VASP输入文件POSCAR简单设置以及两种坐标间联系
最近忙里偷闲的在学习VASP,在看到POSCAR这个输入文件时,对两种不同的原子坐标表示方式有点搞不清楚,在这里就顺便写笔记,对这两种不同的坐标之间的联系进行整理.同时也对这个输入文件里面的参数做一些自己的理解.{:.info} POSCAR输入参数直角坐标1234567891011121314Cubic BN # 这里就是给你要计算的体系起个名字3.57 # 这是一个缩放系数,会对所有的格矢和原子坐标进行缩放0.0 0.5 0.5 # 这三行就是组成格子的三条边的矢量坐标信息,缩放系数就在这里起作用0.5 0.0 0.5 # 利用缩放系数可以得到,格子第二条边的矢量为(0.5*3.57,0,0.5*3.57)0.5 0.5 0.0 # 这三个矢量就是用来确定元胞的基矢1 1 # 计算的系统中每个原子的数量,譬如FeSe就表示体系统有一个Fe原子,一个Se原子Selective dynamics # 这个选项用来设置在离子弛豫过程中原子的位置是否要保持不动(这个一个可选参数,默认下也可以不设置)Cartesian # 接下来的三行是关于分子动力学的设置,我不懂0.00 0.00 0.00 T T F0.25 0.25 0.25 F F FCartesian # 这里就是来设置坐标是直角坐标,通常都只是识别第一个字母,但是为了明确一般就写成Cartesian这个易懂的单词0.01 0.01 0.01 # 第一个原子在元胞中的位置0.00 0.00 0.00 # 第二个原子在元胞中的位置#...
PythonTB学习笔记
最近在看一本Berry Phase的书,上面的很多实例都是利用Pythtb这个有python写的包进行计算的,自己之前也接触过这个包,但是没有进一步学习,这里就把自己在学习这个包过程中一些自己的理解记录一下,这个内容还是会更新的,因为我觉得自己一遍并没有很好的对里面的内容完全理解.下面所有的内容都是官网上面的例子,我只是照抄过来运行,然后自己看代码理解一些参数以及函数的用途.{:.info} 简单一维模型求解12345678910111213141516171819202122232425262728293031#!/usr/bin/env python# one dimension chainfrom pythtb import * # 导入紧束缚类import matplotlib.pyplot as plt # 导入作图包# 定义模型lat = [[1.0]] # 元胞的基矢orb = [[0.0]] # 紧束缚模型中紧束缚轨道的位置,也就是要选择的原子轨道,其原子在元胞内的位置,它是会和元胞基矢相乘后计算的my = tb_model(1,1,lat,orb) # 1:k空间中是1维的 1: 实空间中是一维的my.set_hop(-1,0,0,[1]) # 设置从0-->0 + 1 这个位置的hopping大小是 -1(k_vec,k_dist,k_node)=my.k_path('full',100) # 在全布里渊区中取100个点,knode是一些高对称点k_label=[r"$0$",r"$\pi$", r"$2\pi$"]evals=my.solve_all(k_vec) # 在由上面得到的布里渊区中的点上计算能带本征值# plot band structurefig, ax = plt.subplots()ax.plot(k_dist,evals[0])ax.set_title("1D chain band structure")ax.set_xlabel("Path in k-space")ax.set_ylabel("Band...
德.哈斯-范.阿尔芬(De Hass-Van Alphen)效应
在固体物理的学习过程中,始终都要接触费米面这个概念,经常在学习理论知识,对实验的关注还是有些少,这里就整理一下实验上通过De Hass-Van Alphen效应测量费米面的一些理论知识,正好也梳理一下实验上的一些手法.{:.info} 电子在磁场中的运动准经典分析这里先从准经典角度整理一下电子点外加磁场中是如何运动的. \mathbf{v}(\mathbf{k})=\frac{1}{\hbar}\nabla_\mathbf{k}E(\mathbf{k})\\ \hbar\frac{d\mathbf{k}}{dt}=(-q)\mathbf{v}_k\times \mathbf{B}从上面的两个方程中可以有两个结论: 电子波矢$\mathbf{k}$沿着磁场方向是不随时间改变的,这点从第二个方程中可以得到,因为方程右端是速度和磁场的叉乘,结果中矢量的方向一定会同时垂直与速度和磁场的方向. 电子的能量$E(\mathbf{k})$是不会随时间变化的,也就是说电子始终在等能面上运动,这是因为磁场给电子的力是洛伦兹力,它是不会做功的,那么自然能量不会变化,电子就一直在等能面上运动. 量子分析在不加磁场时,自由电子哈密顿量为$H=\frac{\mathbf{p}}{2m}=-\frac{\hbar^2}{2m}\nabla^2$,加入磁场之后,只要把动量$\mathbf{p}$替换成正则动量$\mathbf{p}+q\mathbf{A}$即可 H=\frac{1}{2m}(\mathbf{p}+q\mathbf{A})假设磁场是沿着z方向的,取朗道规范$\mathbf{A}=(-By,0,0)$,则哈密顿量可以写成 H=\frac{1}{2m}[(\hat{p}_x-qBy)^2+\hat{p}_y+\hat{p}_z]关于这个哈密顿量的求解可以参考固体物理$P_259$这也是一个标准的量子力学问题,最后可以求解得到随y变化部分波函数为 \varphi_n(y-y_0)\sim...
Tunable Weyl Points in Periodically Driven Nodal Line Semimetals 内容推导
疫情期间在家看了很多方向的文章,由于主要是在做数值,就主动的去找了一篇解析相关的文章阅读了一下,并对其中的一些东西自己动手做了一些推导,我看的是一篇和输运有关系的文章,其实内容也不是很难,文章的想法很不错,而且很容易让人读懂,这里就把一些结果整理一下,虽然有些东西自己还是没有搞懂,但是我还是准备先把自己解决了的内容先整理出来,毕竟我本来的方向也不是这个,只是凭兴趣而已.{:.info} 哈密顿量加光场文章主要就是在Nodal line半金属中加入一个光场,可以通过其调节系统变成Weyl 半金属,想了解具体内容可以去参考文章中看这篇文章,我这里主要就是整理推导过程. 起点哈密顿量$\hat{H}=\sum_{k} \hat{\Psi}_{\mathbf{k}}^{\dagger} \mathcal{H}(\mathbf{k}) \hat{\Psi}_{\mathbf{k}} \text { with } \hat{\Psi}_{\mathbf{k}}=\left(\hat{c}_{\mathbf{k}, a}, \hat{c}_{\mathbf{k}, b}\right)^{T}$,在自然单位制下 \mathcal{H}(\mathbf{k})=\left[m-B k^{2}\right] \tau_{x}+v k_{z} \tau_{z}+\epsilon_{0}(\mathbf{k}) \tau_{0}加入一个光场 \mathrm{A}(t)=A_0[0,\cos(\omega t),\sin(\omega t + \phi)]光场以失势的形式进入哈密顿量$\mathcal{H}(\mathbf{k})\rightarrow\mathcal{H}(\mathbf{k}+e\mathbf{A}(t))$,此时哈密顿量是时间的周期函数,可以展开为$\mathcal{H}(t,\mathbf{k})=\sum_n\mathcal{H}_n(\mathbf{k})e^{in\omega t}$,将光场形式代入之后可得 \begin{aligned} \mathcal{H}(\mathbf{K}+e\mathbf{A}) &=(m-Bk_x^2-B(k_y+eA_0\cos(\omega t))^2 - B(k_z + eA_0\sin(\omega...
松原(Matsubara)格林函数与推迟(Retaeded)格林函数联系
格林函数的计算是在零温下进行的,但是实验却是再非零温下进行,那么就意味着实验观测中一定包含了热力学涨落,而这时候热力学统计物理这个工具就可以发挥作用了,自然的就需要利用松原格林函数来对有限温系统的格林函数进行计算,而零温时候的结果仅仅就是松原格林函数进行解析延拓即可,这里就主要展示一下松原格林函数的一些推导以及它与零温格林函数的联系是如何建立起来的.{:.info} 热力学平均首先定义关联函数 C_{AB}(t,t')=-\langle A(t)B(t')\rangle在这里$\langle\dots\rangle$是求期望值,如果是在非零温的情况下,那么求其统计平均为 C_{A B}\left(t, t^{\prime}\right)=-\frac{1}{Z} \operatorname{Tr}\left(e^{-\beta H} A(t) B\left(t^{\prime}\right)\right)\label{eq1}$Tr\equiv\sum_n\langle n\rvert\dots\rvert n\rangle$是一组完备基矢上的求和,接下来将(\ref{eq1})改写到相互作用绘景下,相互作用绘景的内容可以参考Schrodinger,Heisenberg,Interaction绘景的区别与联系这篇博客 C_{A B}\left(t, t^{\prime}\right)=-\frac{1}{Z} \operatorname{Tr}\left[e^{-\beta H} \hat{U}(0, t) \hat{A}(t) \hat{U}\left(t, t^{\prime}\right) \hat{B}\left(t^{\prime}\right) \hat{U}\left(t^{\prime}, 0\right)\right]在Schrodinger,Heisenberg,Interaction绘景的区别与联系中也提及到,利用相互作用绘景可以把有相互作用系统的基态与它无相互作用时的基态通过演化算符联系起来,从而达到在无相互作用基态上对物理量的求解,而这里进行这样的操作也是为了同样的目的. 虚时Heisenberg/Interaction...