Hello all,

I’m interested in simulating a tight-binding system with matrix elements beyond 
nearest neighbor hopping (which I’ll call extended hopping, for short).

I initially realized that the InfiniteSystem finalizer did not allow this 
construction when I tried to plot the band structure of an infinite lead. It is 
not clear to me why this restriction exists; I can see that the code in 
physics/dispersion.py only accounts for nearest neighbor hopping anyway (which 
could easily be changed), but since the error I encountered occurs in 
builder.py, I suspect that there’s a deeper reason for disallowing extended 
hopping terms.

Forging ahead, it occurred to me that I could simply enlarge the unit cell so 
that all of my hopping terms only extended by a single unit cell away. 
Unfortunately, this also has the effect of band folding (quite a lot in my 
case), so the dispersion plot generated by Kwant is somewhat useless for me. 
But that’s of little consequence, because I’m more interested in transport.

Now, since the error I encountered happens during finalization, I imagine I 
cannot even attach a lead with extended hopping to my finite sample. I *could* 
enlarge the unit cell (i.e. enlarge the translational symmetry vector) like I 
did for the band structure calculation, and I suspect that Kwant would happily 
(i.e. without runtime errors) carry out the calculation in this case.

However, I worry that my artificial restriction of the leads’ translational 
symmetry could have some unintended consequences in the transport calculation.

I’d appreciate any comments on the codebase or from experience that might 
suggest whether this is a safe manipulation to make or not. I’m also somewhat 
curious why this restriction exists, if anyone has insight to that.

Thanks!

Cheers,

Matthew Daniels

Reply via email to