Processing math: 100%


科勒尼希-彭尼模型

Kronig-Penny Model

Thank you Anish for the introduction about electron-phonon Monte Carlo methods.

克勒尼希-彭尼模型描述了势能周期性对电子能级的影响,实际上就是求解了单一电子、一维矩形周期势的能量本征方程。

二阶常系数齐次线性微分方程的通解

对于二阶常系数线性方程, y+py+qy=0 特征根为 r1,2=p±p24q2 若有两个不相等的实根,则齐次方程的通解为, y=C1er1x+C2er2x 若有两个相等的实根,则齐次方程的通解为, y=C1er1x+C2xer1x 若有一对共轭复根,r1=α+iβ,r2=αiβ,则齐次方程的通解为, y=C1er1x+C2er2x 或者可以写成, y=eαx(C1cosβx+C2sinβx)

一维周期势能模型

一维定态薛定谔方程(能量本征方程)具有如下形式, (22md2dx2+U)ψ=Eψd2ψdx2+2m2(EU)ψ=0 左边是哈密顿算符,右边是哈密顿算符的本征值-能量,无论是一维无限深方阱、有限势垒导致的量子隧穿还是周期性势场,方程及通解的形式都是一样的,只是边界条件对解的具体表达式有些影响。

在Kronig-Penny模型中,势能具有如下形式:

势能函数U(x)为, U(x)={0,0<xaU0,b<x0 同时服从周期性要求, U(x+a+b)=U(x) 在势垒外部,U=0,此时解的形式是向左及向右传播的自由行波解, ψ=AeiKx+BeiKx,K=2mE 在势垒内部, ψ=CeQx+DeQx,Q=2m(EU0) 需要四个边界条件来确定A,B,C,D

根据波函数及其导数在x=0处的连续性,可以得到两个边界条件, A+B=C+DiK(AB)=Q(CD)

Block Theorem

布洛赫定理,对于含有周期势的薛定谔方程,其解必然具有如下形式, ψ(r+R)=ψ(r)exp(ikR) 其中R是原胞点阵的格矢,原胞中可能包含多个离子,比如纤锌矿GaN一个晶胞中包含两对离子。不管原胞里面的东西,把原胞抽象成质点,可以研究晶格的周期性排列情况。 R就代表从一个原胞格点指向另一个原胞格点的矢量,通过对R的定义,我们可以从一个格点出发,确定任何其他原胞格点的位置,rr+R代表晶体内部的两个等价格点。其中k代表晶格的波矢,它与晶格振动和声子能量有关,电子薛定谔方程中的传播矢量K与电子能量有关,这两个是不同的概念。

布洛赫定理指出,在晶体内部两个等价点(rr+R)的波函数值只差一个相位因子exp(ikR),于是我们只要知道了一个单胞内的波函数,就可以得到整个晶体的波函数了。这实际上意味着晶体中的原胞排列是周期性的,其波函数也具有同样的周期性。

对于一维线性晶格,存在 ψ(x+a+b)=ψ(x)exp(ik(a+b)) 由布洛赫定理可知,如果波函数在区间b<x<0,可由上面推导的方程的形式给出;如果波函数在区间a<x<a+b,可由b<x<0区间的波函数乘以相位因子给出。利用波函数及其导数在x=a处的连续性,可以得到另外两个边界条件, AeiKa+BeiKa=(CeQb+DeQb)exp[ik(a+b)]iK(AeiKaBeiKa)=Q(CeQbDeQb)exp[ik(a+b)] 于是现在共得到了四个边界条件, A+B=C+DiK(AB)=Q(CD)AeiKa+BeiKa=(CeQb+DeQb)exp[ik(a+b)]iK(AeiKaBeiKa)=Q(CeQbDeQb)exp[ik(a+b)] 根据Cramer法则,系数行列式为0时方程有非平凡解, |1111iKiKQQeiKaeiKaeQbexp[ik(a+b)]eQbexp[ik(a+b)]iKeiKaiKeiKaQeQbexp[ik(a+b)]QeQbexp[ik(a+b)]|=0 得到, Q2K22KQsinh(Qb)sin(Ka)+cosh(Qb)cos(Ka)=cos[k(a+b)] 对于给定的波矢k,上式只有电子能量E未知,其隐含在KQ中,上式可以用来确定Ek之间的关系。这个方程的形式是比较复杂的,为了简化这个结果,取极限b0,U00,即势垒无限窄、无限高,保持Q2ba/2=P为常数。在这种近似下,QK,Qb1,于是sinh(Qb)0,cosh(Qb)1,上式简化为, PKasinKa+cosKa=coska

cos(ka)永远小于1,所以只有上式左侧小于1的时候,这个方程才可能有解,上图是方程在P=3π/2时方程左侧随Ka变化的情况,在阴影区域,K没有解,因而没有能量与该K值对应的电子存在。

电子能带的简单计算

从图中可以看到,对于同一个晶格常数和波矢kcoska和方程左侧存在多个交点,即一个ka对应着多个电子Ka,而Ka就对应着电子能量: 2K22m=E 通过选取不同的初值,可以计算出电子能带,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fsolve

P = 3 * np.pi / 2
func = lambda x: P / x * np.sin(x) + np.cos(x)

def f(x, ka):
return func(x) - np.cos(ka)

ka_list = np.linspace(-4, 4, 200)
Ka_list = []
for initial_guess in [np.pi, 1.5*np.pi, 2.5*np.pi, 3.5*np.pi]:
Ka_list.append(np.array([fsolve(f, initial_guess, args = (ka * np.pi))[0] for ka in ka_list]))

for Ka in Ka_list:
plt.plot(ka_list, Ka)