Dear all,

in the tutorial
https://kwant-project.org/doc/1/tutorial/superconductors
one calculates the conductance from left lead to right lead, G_10, as
G_00 = e^2/h (N-R_ee+R_he)
assuming that, due to the current conservation,
G_10 = G_00.

My question is, what happens if we detach the superconducting lead L1. 
Intuitively, I would expect
G_00 = 0. But using the formula above one obtains non-zero values, and making 
the finite superconducting
region (the part of the scattering region) large enough, the subgap transport 
is exactly as if
the lead L1 was attached. This means that the current conservation is violated, 
and something is wrong.

Below is slightly modified code from the tutorial to generate a plot comparing 
G_00 for a system with and
without lead L1. You can see, that if parameter L (the superconducting part of 
the scattering region) is large
enough, the subgap transport is the same whether L1 is attached or not.

Why is this happening, can someone point out the error?

Best,
Tibor



import kwant
import tinyarray
import numpy as np
%matplotlib inline
from matplotlib import pyplot as plt

tau_x = tinyarray.array([[0, 1], [1, 0]])
tau_y = tinyarray.array([[0, -1j], [1j, 0]])
tau_z = tinyarray.array([[1, 0], [0, -1]])

L=80
barrier=1.5
W=10

def make_system(a=1, W=W, L=L, barrier=barrier, barrierpos=(3, 4),
                mu=0.4, Delta=0.1, Deltapos=4, t=1.0, phs=True):
    lat = kwant.lattice.square(norbs=2)
    syst = kwant.Builder()

    syst[(lat(x, y) for x in range(0,Deltapos) for y in range(W))] = (4 * t - 
mu) * tau_z
    syst[(lat(x, y) for x in range(Deltapos, L) for y in range(W))] = (4 * t - 
mu) * tau_z + Delta * tau_x

    # The tunnel barrier
    syst[(lat(x, y) for x in range(barrierpos[0], barrierpos[1])
         for y in range(W))] = (4 * t + barrier - mu) * tau_z

    # Hoppings
    syst[lat.neighbors()] = -t * tau_z
    sym_left = kwant.TranslationalSymmetry((-a, 0))
    lead0 = kwant.Builder(sym_left, conservation_law=-tau_z, 
particle_hole=tau_y)
    lead0[(lat(0, j) for j in range(W))] = (4 * t - mu) * tau_z
    lead0[lat.neighbors()] = -t * tau_z
    sym_right = kwant.TranslationalSymmetry((a, 0))
    lead1 = kwant.Builder(sym_right)
    lead1[(lat(0, j) for j in range(W))] = (4 * t - mu) * tau_z + Delta * tau_x
    lead1[lat.neighbors()] = -t * tau_z
    syst.attach_lead(lead0)
    syst.attach_lead(lead1)
    return syst

syst = make_system()
kwant.plot(syst)
syst = syst.finalized()

data = []
energies=[0.002 * i for i in range(0,100)]
for energy in energies:
    smatrix = kwant.smatrix(syst, energy)
    # Conductance is N - R_ee + R_he
    data.append(smatrix.submatrix((0, 0), (0, 0)).shape[0] -
                smatrix.transmission((0, 0), (0, 0)) +
                smatrix.transmission((0, 1), (0, 0)))

syst = make_system()
del syst.leads[-1]
# Check that the system looks as intended.
kwant.plot(syst)
# Finalize the system.
syst = syst.finalized()
data2 = []
for energy in energies:
    smatrix = kwant.smatrix(syst, energy)
    # Conductance is N - R_ee + R_he
    data2.append(smatrix.submatrix((0, 0), (0, 0)).shape[0] -
                smatrix.transmission((0, 0), (0, 0)) +
                smatrix.transmission((0, 1), (0, 0)))

fig , (ax0) = plt.subplots(1, 1, sharey = True, figsize = [5, 5])
ax0.plot(energies, data, label = 'with lead 1')
ax0.plot(energies, data2, label = 'without lead 1')
ax0.set_xlabel("energy [t]")
ax0.set_ylabel("conductance [e^2/h]")
ax0.set_ylim(0,3.5)
ax0.legend()
fig.savefig('NS_conductance.png')

Reply via email to