Hi all,

My name is Connor. I'm a PhD student at Brock University. As an introduction to 
using Kwant, I want to simulate the transmission though a slab of 
Bernal-stacked graphene layers with a potential barrier (that is, all 4 basis 
atoms in a single unit cell, denoted {A1, B1, A2, B2}, have an on-site energy 
denoted g, while all other atoms have onsite energy zero. The first-neighbour 
hopping parameter (between {A1,B1} and {A2,B2}) is denoted t1, and the 
second-neighbour hopping parameter (between {B1,A2} in Bernal graphite) is 
denoted t2. I treat the barrier as my scattering region, and the rest of slab 
as the two leads. Periodic boundary conditions are applied along both in-plane 
primitive directions.

My code (below) runs without error. However, when I plot my scattering region 
after attaching one lead (the one pointing in the positive stacking direction, 
taken to be the z-axis), the lead does not appear in the plot (i.e. in this 
Kwant tutorial:  https://kwant-project.org/doc/dev/tutorial/first_steps, the 
lead appears as a faded red region, which is absent in my plot). Could someone 
tell me how to go about attaching the leads to my scattering region? 

Thank you for your time. Please let me know if I've left out any information,

Connor

----- Code below -----

import numpy as np
import kwant
from matplotlib import pyplot

# unit cell extrusion
La = 1
Lb = 1
Lc = 1

# lattice parameters
a0 = 1.42
c0 = 3.35

# hopping parameters / defect on-site energy
t1 = 1.0
t2 = 0.5
g  = 0.7

# lattice vectors
a1 = a0 * np.array([1.5,  0.5*np.sqrt(3), 0.0])
a2 = a0 * np.array([1.5, -0.5*np.sqrt(3), 0.0])
a3 = c0 * np.array([0.0,  0.0,            2.0])

# basis atoms
b1 = a0 * np.array([0.0, 0.0, 0.0]) + c0 * np.array([0.0, 0.0, 0.0]) #A1
b2 = a0 * np.array([1.0, 0.0, 0.0]) + c0 * np.array([0.0, 0.0, 0.0]) #B1
b3 = a0 * np.array([1.0, 0.0, 0.0]) + c0 * np.array([0.0, 0.0, 1.0]) #A2
b4 = a0 * np.array([2.0, 0.0, 0.0]) + c0 * np.array([0.0, 0.0, 1.0]) #B2

# Bernal graphite lattice
lat = kwant.lattice.general([a1, a2, a3], basis=[b1, b2, b3, b4], norbs=1)
A1, B1, A2, B2 = lat.sublattices

# left lead
lead = kwant.Builder(kwant.TranslationalSymmetry(lat.vec([La, 0, 0]), 
lat.vec([0, Lb, 0]), lat.vec([0, 0, 1]) ))
lead[lat.neighbors(1)] = -t1
lead[lat.neighbors(2)] = -t2
for i in range(La):
  for j in range(Lb):
    lead[A1(i,j,0)] = 0
    lead[B1(i,j,0)] = 0
    lead[A2(i,j,0)] = 0
    lead[B2(i,j,0)] = 0
lead = kwant.wraparound.wraparound(lead, keep=2)

# scattering region
sr = kwant.Builder(kwant.TranslationalSymmetry(lat.vec([La, 0, 0]), lat.vec([0, 
Lb, 0])))
sr[lat.neighbors(1)] = -t1
sr[lat.neighbors(2)] = -t2
for i in range(La):
  for j in range(Lb):
    for k in range(Lc):
      sr[A1(i,j,k)] = g
      sr[B1(i,j,k)] = g
      sr[A2(i,j,k)] = g
      sr[B2(i,j,k)] = g
sr = kwant.wraparound.wraparound(sr)

# attach leads
sr.attach_lead(lead)
kwant.plot(sr);
exit()

Reply via email to