
Dear Kwant users and developers, Is there a way to calculate the integral(< u_nk | d_k(u_nk)>dk) across the 1D BZ of a system periodic in one direction. Here u_nk is the periodic part of the Bloch wave function corresponding to band n. I am trying to compute this for a simple system of graphene nanoribbon. I am trying compute the gauge independent value of the above integral using a "1D Wilsoon loop" where the integral is approximately equal to the product of <u_nk|u_n(k+1) > for all k across the BZ. I defined the unit cell of the nanoribbon as a lead and tried to get the u_nk as the propagating modes using leads.modes() method (I have pasted the code below) but the resolution in k is too large - only 4 momenta across the BZ. How can we get u_n(k) with a good resolution of k, say for 100 points in the BZ ? Is this something which can be easily done in Kwant ? Code: def make_1D_zigzag(N=7,t=1): syst = kwant.Builder(kwant.TranslationalSymmetry(Zigzag.prim_vecs[0])) syst[Zigzag.shape((lambda pos: pos[1] >0 and pos[1] < get_width(N)),(0,0))] = 2*t syst[Zigzag.neighbors()] = -t return syst lead = make_1D_zigzag(N=N,t=2); lead = lead.finalized() prop_modes=lead.modes()[0] u_nk = prop_modes.wave_functions Thanks a lot for your help! Srilok Srinivasan Graduate Student Mechanical Engineering Iowa State University, Ames, IA