From cd7f5ae382533d77609bdd384a89dcca5563eba6 Mon Sep 17 00:00:00 2001
From: Anton Akhmerov <anton.akhmerov@gmail.com>
Date: Wed, 11 Sep 2013 08:21:41 +0200
Subject: [PATCH] add kwant_workflow script and shape

---
 content/kwant_workflow.py |  42 ++++++++++++++++++++++++++++++++++++++
 content/shape.png         | Bin 0 -> 10646 bytes
 2 files changed, 42 insertions(+)
 create mode 100644 content/kwant_workflow.py
 create mode 100644 content/shape.png

diff --git a/content/kwant_workflow.py b/content/kwant_workflow.py
new file mode 100644
index 0000000..62df7be
--- /dev/null
+++ b/content/kwant_workflow.py
@@ -0,0 +1,42 @@
+import kwant
+import matplotlib.pyplot as pyplot
+from scipy import misc
+import numpy as np
+
+# shape.png is an image containing the system shape colored in black.
+im = misc.imread('shape.png')[:, :, 0]
+w, h = im.T.shape
+
+sys = kwant.Builder()
+lat = kwant.lattice.square()
+
+for pos in np.argwhere(im != 255):
+    sys[lat(pos[1], -pos[0])] = 4
+
+def make_wire_shape(period, center, r, ymin, ymax):
+    direction = np.array(period / np.linalg.norm(period))
+    def wire_shape(pos):
+        rel_pos = pos - np.array(center)
+        projection = direction * np.dot(direction, rel_pos) - rel_pos
+        return sum(projection**2) <= r**2 and ymin < pos[1] < ymax
+
+    return wire_shape
+
+wire_dir = [(-1., -1.), (3., -4.), (2., 4.)]
+wire_center = [(h/2 - 50, -w/2 + 50), (h/2, -w/2 + 180),
+               (h/2 + 30, -w/2 + 200)]
+ylims = [(-400, -200), (-440, -100), (-100, 60)]
+
+for direction, center, ylim in zip(wire_dir, wire_center, ylims):
+    sys[lat.shape(make_wire_shape(direction, center, 50, *ylim), center)] = 4
+    lead = kwant.Builder(kwant.TranslationalSymmetry(direction))
+    lead[lat.wire(center, 50)] = 4
+    lead[lat.neighbors()] = -1
+    sys.attach_lead(lead)
+
+sys[lat.neighbors()] = -1
+
+sys = sys.finalized()
+
+wfs = kwant.wave_function(sys, energy=0.14)(0)[0]
+kwant.plotter.map(sys, abs(wfs), oversampling=1, cmap="PuBu")
diff --git a/content/shape.png b/content/shape.png
new file mode 100644
index 0000000000000000000000000000000000000000..250612f5607f96ef197e4ca93e74ad3f71b27daf
GIT binary patch
literal 10646
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
arG4Hzkv(5~tA*eVC5&R@NUlBTf9Zc$0L>i$

literal 0
HcmV?d00001

-- 
GitLab