石墨烯长这样:
该图片来源于Hideo Aoki Mildred S. Dresselhaus的“Physics of Graphene”
只考虑最近邻跃迁t=1。以下是画二维石墨烯能带的代码:
import numpy as np
import matplotlib.pyplot as plt
from math import * # 引入sqrt(), pi等
import cmath # 要处理复数情况,用到cmath.exp()
import functools # 使用偏函数functools.partial()
def hamiltonian(k1, k2, M, t1, a=1/sqrt(3)): # Haldane哈密顿量(a为原子间距,不赋值的话默认为1/sqrt(3))
# 初始化为零矩阵
h0 = np.zeros((2, 2))*(1+0j) # 乘(1+0j)是为了把h0转为复数
h1 = np.zeros((2, 2))*(1+0j)
h2 = np.zeros((2, 2))*(1+0j)
# 质量项(mass term), 用于打开带隙
h0[0, 0] = M
h0[1, 1] = -M
# 最近邻项
h1[1, 0] = t1*(cmath.exp(1j*k2*a)+cmath.exp(1j*sqrt(3)/2*k1*a-1j/2*k2*a)+cmath.exp(-1j*sqrt(3)/2*k1*a-1j/2*k2*a))
h1[0, 1] = h1[1, 0].conj()