以方格子条带为例,Python代码如下(用到软件包GUAN:https://py.guanjihuan.com):
"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/37881
"""
import guan
import numpy as np
Nx = 10
Ny = 3
fermi_energy = 0
h00 = guan.hamiltonian_of_finite_size_system_along_one_direction(N=Ny)
h01 = np.eye(Ny)
# 电极和中心区之间的跃迁
h_LC = np.zeros((Ny, Nx*Ny))
h_CR = np.zeros((Nx*Ny, Ny))
for iy in range(Ny):
h_LC[iy, 0+iy] = 1
h_CR[(Nx-1)*Ny+iy, iy] = 1
# 和中心区哈密顿量耦合后的电极自能
right_self_energy, left_self_energy, gamma_right, gamma_left = guan.self_energy_of_lead_with_h_LC_and_h_CR(fermi_energy, h00, h01, h_LC, h_CR)
print(right_self_energy.shape)
print(left_self_energy.shape)
print()
# 找到矩阵元素非零的坐标
num = len(right_self_energy)
for i1 in range(num):
for i2 in range(num):
if abs(right_self_energy[i1, i2])>1e-8:
print((i1, i2))
print()
num = len(left_self_energy)
for i1 in range(num):
for i2 in range(num):
if abs(left_self_energy[i1, i2])>1e-8:
print((i1, i2))
运行结果:
(30, 30)
(30, 30)
(27, 27)
(27, 28)
(27, 29)
(28, 27)
(28, 28)
(28, 29)
(29, 27)
(29, 28)
(29, 29)
(0, 0)
(0, 1)
(0, 2)
(1, 0)
(1, 1)
(1, 2)
(2, 0)
(2, 1)
(2, 2)
可以发现,由于电极和中心区之间的跃迁矩阵大部分的元素为零,因此在和中心区哈密顿量耦合后的电极自能矩阵中,只有在中心区与电极有接触的编号上元素为非零,其他元素均为零。
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】