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