Dear KWANT community,
Recently I have used KWANT to simulate electronic transport in T-junction with the perpendicular magnetic field applied to the nanostructure. As well known, the inclusion of the orbital effects in this case (by the peierls substitution) is not easy due to appropriate gauge which should be applied for the vertical leads. So I decided to use the newest functionality of KWANT included in kwant.physics.magnetic_gauge.

I started testing this function from a simple nanowire (NW) with two leads applied on both sides of NW and the magnetic field perpendicular to NW. When calling ham=sys.hamiltonian_submatrix(params=params), similarly as in documentation, everything works OK. The problem appears when I am trying to calculate transport and call the function smatrix = kwant.smatrix(sys, energy=energy, params=params). Then, an following error occurs
i = syst.id_by_site[a]
j = syst.id_by_site[b]
# We only store *either* (i, j) *or* (j, i). If not present
KeyError: Site(kwant.lattice.Monatomic([[75.58904535685008, 0.0], [0.0, 75.58904535685008]], [0.0, 0.0], '', None), array([-1, -9]))
The above exception was the direct cause of the following exception:
And I don't know how is the reason of this error.
Below I paste my code

nw = SimpleNamespace(\
                     W = 10,
                     L = 100,
                     dx = nm2au(4),
                     m = 0.015,          
                     B = T2au(.5),
                     )

def make_system_transport_gauge(nw):
    W=nw.W
    L=nw.L
    dx=nw.dx
    m=nw.m
    B=nw.B


    def onsite(sitei,peierls):
        x,y=sitei.pos
        t=1.0/(2.0*nw.m*nw.dx*nw.dx)
        return 4*t

   
    def hopping(sitei, sitej, peierls):
        xi,yi=sitei.pos
        xj,yj=sitej.pos
        t=1.0/(2.0*nw.m*nw.dx*nw.dx)
        return -t*peierls(sitei,sitej)

   
    lat=kwant.lattice.square(dx)
    sys = kwant.Builder()
    sys[(lat(i,j) for i in range(L) for j in range(-W+1,W))]=onsite
    sys[lat.neighbors()] = hopping
   

    syml = kwant.TranslationalSymmetry((-dx, 0))
    l_lead=kwant.Builder(syml)
    l_lead[(lat(0,y) for y in range(-W+1,W))]=onsite
    l_lead[lat.neighbors()]=hopping
    l_lead.substituted(peierls='peierls_llead')
    sys.attach_lead(l_lead)
   
    symr = kwant.TranslationalSymmetry((dx, 0))
    r_lead=kwant.Builder(symr)
    r_lead[(lat(0,y) for y in range(-W+1,W))]=onsite
    r_lead[lat.neighbors()]=hopping
    r_lead.substituted(peierls='peierls_rlead')
    sys.attach_lead(r_lead)
   
    sys = sys.finalized()
   
    return sys

def B_syst(pos):
    return nw.B

sys=make_system_transport_gauge(nw)
gauge = kwant.physics.magnetic_gauge(sys)
peierls_sys, peierls_llead, peierls_rlead = gauge(B_syst, B_syst, B_syst)
params = dict(t=1, peierls=peierls_sys, peierls_llead=peierls_llead, peierls_rlead=peierls_rlead)
ham=sys.hamiltonian_submatrix(params=params) #this works
#I tried to calculate transport
energy=eV2au(3e-3)
smatrix = kwant.smatrix(sys, energy=energy, params=params) #this generates an error

I would be grateful for any help or hint what is wrong.
Best regards,
Pawel Wojcik