From 30c3d08a83f08053e1cdc7f19d5f588f2e354176 Mon Sep 17 00:00:00 2001 From: Christoph Groth <christoph.groth@cea.fr> Date: Tue, 7 May 2013 11:12:30 +0200 Subject: [PATCH] make examples/advanced_construction.py work again --- examples/advanced_construction.py | 37 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/examples/advanced_construction.py b/examples/advanced_construction.py index deb35103..a1d17f1f 100644 --- a/examples/advanced_construction.py +++ b/examples/advanced_construction.py @@ -1,38 +1,39 @@ """An example of advanced system creation.""" from __future__ import division -import kwant -import tinyarray as ta from math import tanh +import tinyarray as ta +import kwant + +sigma_0 = ta.identity(2) +sigma_x = ta.array([[0, 1], [1, 0]]) +sigma_y = ta.array([[0, -1j], [1j, 0]]) +sigma_z = ta.array([[1, 0], [0, -1]]) -def make_system(R=50): - sigma_0 = ta.identity(2) - sigma_x = ta.array([[0, 1], [1, 0]]) - sigma_y = ta.array([[0, -1j], [1j, 0]]) - sigma_z = ta.array([[1, 0], [0, -1]]) +def make_system(R): def in_ring(pos): - return R ** 2 / 4 < pos[0] ** 2 + pos[1] ** 2 < R ** 2 + x, y = pos + return R**2 / 4 < x**2 + y**2 < R**2 + + def in_lead(pos): + x, y = pos + return -R / 4 < y < R / 4 def pot(site): x, y = site.pos return (0.1 * tanh(x / R) + tanh(2 * y / R)) * sigma_z - def in_lead(pos): - return -1 < pos[0] < 1.3 and -R / 4 < pos[1] < R / 4 - - lat = kwant.lattice.Honeycomb() + lat = kwant.lattice.honeycomb() sys = kwant.Builder() sys[lat.shape(in_ring, (3 * R / 4, 0))] = pot - for hopping in lat.nearest: - sys[sys.possible_hoppings(*hopping)] = sigma_y + sys[lat.neighbors()] = sigma_y lead = kwant.Builder(kwant.TranslationalSymmetry(lat.vec((-1, 0)))) lead[lat.shape(in_lead, (0, 0))] = sigma_0 - for hopping in lat.nearest: - lead[lead.possible_hoppings(*hopping)] = sigma_x + lead[lat.neighbors()] = sigma_x sys.attach_lead(lead) sys.attach_lead(lead.reversed()) @@ -40,8 +41,8 @@ def make_system(R=50): def main(): - fsys = make_system(100) - print kwant.solve(fsys, 0.1).transmission(0, 1) + sys = make_system(100) + print kwant.solve(sys, 1.1).transmission(0, 1) if __name__ == '__main__': -- GitLab