Hi, I have a question regarding the equation you use to calculate the conductance (Eq. (10)) in the Kwant paper, and how it relates to Eq. (47) in this paper (https://arxiv.org/pdf/cond-mat/9910158v2.pdf) by Büttiker et al I tried to use both methods to calculate the conductance in a simple 2D two-terminal geometry. As far as I understand, you calculate the conductance assuming that the two leads only differ infinitesimally (so for low temperatures I guess it is safe to assume that the fermi-function is a delta-function around the fermi energy). My system is so that I have 2 modes in each lead. So, assume that I want the conductance in lead 0 Your formula G_00 = S_00^2 + S_01^2 S_10^2 + S_11^2 = 1.9 (the result I get from doing this is consistent with transmission(0,0)) Büttiker G_00 = - ( N_0 - S_00^2 - S_11^2) = -0.1 Where N_0 = 2 (number of modes). Now, the numerical values I got from running my program, which I include as well below. Should these results not be the same? Or is my interpretation of their meaning wrong? Before I include the script I would just like to say thank you for making Kwant, and also I am very gratefull that you take your time to answer all my questions so quickly. I really appreciate it. Thank you! Best, Camilla # Tutorial 2.2.3. Building the same system with less code # ======================================================= # # Physics background # ------------------ # Conductance of a quantum wire; subbands # # Kwant features highlighted # -------------------------- # - Using iterables and builder.HoppingKind for making systems # - introducing `reversed()` for the leads # # Note: Does the same as tutorial1a.py, but using other features of Kwant. import kwant # For plotting from matplotlib import pyplot from math import pi, sqrt, tanh import numpy as np from numpy import ndarray import scipy from scipy.constants import * def modes(energy): return 0 def plot_bandstructure(flead, momenta): bands = kwant.physics.Bands(flead) energies = [bands(k) for k in momenta] pyplot.figure() pyplot.plot(momenta, energies) pyplot.xlabel("momentum [(lattice constant)^-1]") pyplot.ylabel("energy [t]") pyplot.show() def make_system(a=1.0, t=1.0, W=2, L=3): # Start with an empty tight-binding system and a single square lattice. # `a` is the lattice constant (by default set to 1 for simplicity. lat = kwant.lattice.square(a) sys = kwant.Builder() #### Define the scattering region. #### sys[(lat(x, y) for x in range(L) for y in range(W))] = 4 * t + 2 sys[lat.neighbors()] = -t #### Define and attach the leads. #### # Construct the left lead. lead = kwant.Builder(kwant.TranslationalSymmetry((-a, 0))) lead[(lat(0, j) for j in range(W))] = 4 * t lead[lat.neighbors()] = -t # Attach the left lead and its reversed copy. sys.attach_lead(lead) lead2 = kwant.Builder(kwant.TranslationalSymmetry((a, 0))) lead2[(lat(L, j) for j in range(W))] = 4 * t lead2[lat.neighbors()] = -t sys.attach_lead(lead2) return sys, lead def plot_conductance(sys, energies): # Compute conductance data = [] for energy in energies: smatrix = kwant.smatrix(sys, energy) data.append(smatrix.transmission(1, 0)) pyplot.figure() pyplot.plot(energies, data) pyplot.xlabel("energy [t]") pyplot.ylabel("conductance [e^2/h]") pyplot.show() def main(): sys, lead = make_system() # Check that the system looks as intended. # kwant.plot(sys) # Finalize the system. sys = sys.finalized() en = 3 sm = kwant.smatrix(sys, en) print('transmission by kwant: ',sm.transmission(0,0)) smatrix = sm.data sdags = (smatrix.conj().T) # As from Eq. (10) in kwant paper print((sdags[0,0]*smatrix[0,0] + sdags[0,1]*smatrix[0,1] + sdags[1,1]*smatrix[1,1]+ sdags[1,0]*smatrix[1,0])) # As from Eq. (47) in buttiker print(sdags[0,0]*smatrix[0,0]+sdags[1,1]*smatrix[1,1] - 2) # Call the main function if the script gets executed (as opposed to imported). # See <http://docs.python.org/library/__main__.html>. if __name__ == '__main__': main()