import numpy as np
import kwant
import matplotlib.pyplot as plt
rt3 = np.sqrt(3)
a1 = np.array([2*rt3, 0])/2/rt3
a2 = np.array([rt3/2, -1.5])/2/rt3
A_POS = np.array([0, 0])/2/rt3
B_POS = np.array([rt3/2, -0.5])/2/rt3
C_POS = np.array([np.sqrt(3), 0])/2/rt3
D_POS = np.array([np.sqrt(3)*3/2, -0.5])/2/rt3
graphene = kwant.lattice.general([a1, a2], # lattice vectors
[A_POS, B_POS, C_POS, D_POS]) # Coordinates of the sites
A, B, C, D = graphene.sublattices
zigzag_ribbon = kwant.Builder(kwant.TranslationalSymmetry([1, 0]))
zigzag_ribbon[graphene.shape((lambda pos: pos[1] > -30 and pos[1] <= 0), (0, 0))] = 0
hoppings0 = (((0, 0), A, B),
((0, 0), B, C),
((0, 0), C, D),
((0, -1), B, A),
((-1, 0), D, A))
t = 1
hopping_pi = ((0, -1), D, C)
zigzag_ribbon[[kwant.builder.HoppingKind(*hopping) for
使用Kwant建模计算一维开边界能带
最新推荐文章于 2024-06-14 11:06:42 发布