Skip to content
Snippets Groups Projects
Commit 69ed8907 authored by Anton Akhmerov's avatar Anton Akhmerov Committed by Christoph Groth
Browse files

fix advanced_construction to use tinyarray and new symmetry

parent 474fe4b7
No related branches found
No related tags found
No related merge requests found
...@@ -2,25 +2,25 @@ ...@@ -2,25 +2,25 @@
from __future__ import division from __future__ import division
import kwant import kwant
import numpy import tinyarray as ta
from math import tanh, sqrt from math import tanh
def make_system(R=50): def make_system(R=50):
sigma_0 = numpy.identity(2) sigma_0 = ta.identity(2)
sigma_x = numpy.array([[0, 1], [1, 0]]) sigma_x = ta.array([[0, 1], [1, 0]])
sigma_y = numpy.array([[0, -1j], [1j, 0]]) sigma_y = ta.array([[0, -1j], [1j, 0]])
sigma_z = numpy.array([[1, 0], [0, -1]]) sigma_z = ta.array([[1, 0], [0, -1]])
def in_ring(pos): def in_ring(pos):
return R**2 / 4 < pos[0]**2 + pos[1]**2 < R**2 return R ** 2 / 4 < pos[0] ** 2 + pos[1] ** 2 < R ** 2
def pot(site): def pot(site):
x, y = site.pos x, y = site.pos
return (0.1 * tanh(x / R) + tanh(2 * y / R)) * sigma_z return (0.1 * tanh(x / R) + tanh(2 * y / R)) * sigma_z
def in_lead(pos): def in_lead(pos):
return -1 < pos[0] < 1.3 and - R/4 < pos[1] < R/4 return -1 < pos[0] < 1.3 and -R / 4 < pos[1] < R / 4
lat = kwant.lattice.Honeycomb() lat = kwant.lattice.Honeycomb()
...@@ -29,8 +29,8 @@ def make_system(R=50): ...@@ -29,8 +29,8 @@ def make_system(R=50):
for hopping in lat.nearest: for hopping in lat.nearest:
sys[sys.possible_hoppings(*hopping)] = sigma_y sys[sys.possible_hoppings(*hopping)] = sigma_y
lead = kwant.Builder(kwant.TranslationalSymmetry([lat.vec((-1, 0))])) lead = kwant.Builder(kwant.TranslationalSymmetry(lat.vec((-1, 0))))
lead[lat.shape(in_lead, (0,0))] = sigma_0 lead[lat.shape(in_lead, (0, 0))] = sigma_0
for hopping in lat.nearest: for hopping in lat.nearest:
lead[lead.possible_hoppings(*hopping)] = sigma_x lead[lead.possible_hoppings(*hopping)] = sigma_x
sys.attach_lead(lead) sys.attach_lead(lead)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment