indirect hopping
Dear all, Is there a way to implement indirect hopping in Kwant? I have a cubic system and I want to add to the term describing the direct hopping between site i and j, an indirect hopping term via an intermediate site k, for all the sites in my system. I appreciate any help Bests Chung
Hi Chung,
Is there a way to implement indirect hopping in Kwant? I have a cubic system and I want to add to the term describing the direct hopping between site i and j, an indirect hopping term via an intermediate site k, for all the sites in my system.
Kwant does not have a concept for "indirect" hoppings; you will have to implement something yourself, adding two hoppings to the system. You can use similar logic to the existing HoppingKind object; just iterate over all sites "i" of the system, check for the existence of sites "j" and "k" in the system. If they both exist, add the 2 hoppings, if either does not exist, do not add the hoppings. Somthing like the following should work: lat = kwant.lattice.cubic() syst = … delta_j = … # tag offset i → j delta_k = … # tag offset j → k sites = set(syst.sites()) def second_hops(): for i in sites: j = lat(i.tag + delta_j) k = lat(j.tag + delta_k) if j in sites and k in sites: yield (i, j, k) for i, j, k in second_hops(): syst[i, j] = hop1 syst[j, k] = hop2 Happy Kwanting, Joe
Dear all, I was wondering if there is a way to calculate the voltage drop between sites i and j (Vj-Vi) for any given site in the system? I appreciate any help Bests Chung
participants (2)
-
Chung Tsai
-
Joseph Weston