update
This commit is contained in:
parent
32d11b84bf
commit
22b0b98c21
@ -48,13 +48,13 @@ def matrix_center(width=10, length=300): # 中心区哈密顿量
|
|||||||
# 中间加势垒
|
# 中间加势垒
|
||||||
for j0 in range(6):
|
for j0 in range(6):
|
||||||
for i0 in range(6):
|
for i0 in range(6):
|
||||||
hamiltonian[width*(np.int(length/2)-3+j0)+np.int(width/2)-3+i0, width*(np.int(length/2)-3+j0)+np.int(width/2)-3+i0]= 1e8
|
hamiltonian[width*(int(length/2)-3+j0)+int(width/2)-3+i0, width*(int(length/2)-3+j0)+int(width/2)-3+i0]= 1e8
|
||||||
return hamiltonian
|
return hamiltonian
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
fermi_energy = 1
|
fermi_energy = 0
|
||||||
width = 60
|
width = 60
|
||||||
length = 100
|
length = 100
|
||||||
h00 = matrix_00(width)
|
h00 = matrix_00(width)
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
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/3888
|
||||||
|
"""
|
||||||
|
|
||||||
|
import kwant
|
||||||
|
|
||||||
|
|
||||||
|
def make_system():
|
||||||
|
a = 1
|
||||||
|
lat = kwant.lattice.square(a, norbs=1) # 创建晶格,方格子
|
||||||
|
syst = kwant.Builder()
|
||||||
|
t = 1.0
|
||||||
|
W = 60 # 中心体系宽度
|
||||||
|
L = 100 # 中心体系长度
|
||||||
|
# 给中心体系赋值
|
||||||
|
for i in range(L):
|
||||||
|
for j in range(W):
|
||||||
|
syst[lat(i, j)] = 0
|
||||||
|
if j > 0:
|
||||||
|
syst[lat(i, j), lat(i, j-1)] = -t # hopping in y-direction
|
||||||
|
if i > 0:
|
||||||
|
syst[lat(i, j), lat(i-1, j)] = -t # hopping in x-direction
|
||||||
|
if 47<=i<53 and 27<=j<33: # 势垒
|
||||||
|
syst[lat(i, j)] = 1e8
|
||||||
|
# 电极
|
||||||
|
lead = kwant.Builder(kwant.TranslationalSymmetry((-a, 0)))
|
||||||
|
lead[(lat(0, j) for j in range(W))] = 0
|
||||||
|
lead[lat.neighbors()] = -t # 用neighbors()方法
|
||||||
|
syst.attach_lead(lead) # 左电极
|
||||||
|
syst.attach_lead(lead.reversed()) # 用reversed()方法得到右电极
|
||||||
|
# 制作结束
|
||||||
|
kwant.plot(syst)
|
||||||
|
syst = syst.finalized()
|
||||||
|
return syst
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
syst = make_system()
|
||||||
|
psi = kwant.wave_function(syst)(0)[29]
|
||||||
|
current = kwant.operator.Current(syst)(psi)
|
||||||
|
kwant.plotter.current(syst, current)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
x
Reference in New Issue
Block a user