java与python结合使用用于加工石墨电_石墨烯哈密顿量与能带图(附Python代码)...

本文介绍了如何使用Python计算二维和准一维石墨烯的能带结构,通过Haldane模型,展示了画出能带图的完整代码,涉及numpy、matplotlib和傅里叶变换等技术。
摘要由CSDN通过智能技术生成

石墨烯长这样:

该图片来源于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()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值