Defining hoppings between two lattices, each with a set of sublattices - Outputting list of hoppings

Hello, I have set up a system in which I want to define hoppings in a lead between sites that originate from two sublattices: LatticeA has sublatices a and b, LatticeB has sublattices c and d. Currently, I believe I am achieving this via: for site in lead2.sites(): (x,y) = site.pos if str(site.family) == "<Monatomic lattice e0>": lead2[c(x,y),a(x,y)] = Delta if str(site.family) == "<Monatomic lattice e1>": lead2[d(x,y),b(x,y)] = Delta and thereby connecting sublattices c and a, and d and b. Is this accurate? Can this be done with HoppingKind? And is there a way for me to list all the hoppings created to check if this was successful?

Hi Henry, You can access the sublattices of the polyatomic lattice via `.sublattices` attribute. What kind of lattices are you dealing with? You seem to be using the site position (x, y) as a site tag, which will only work with a square lattice with lattice constant one. Assuming you are indeed doing that, you can indeed use HoppingKind: lead2[HoppingKind((0, 0), c, a)] = lead2[HoppingKind((0, 0), d, b)] = Delta. However, I rather suggest identifying all degrees of freedom at the same position into a single site, and use small matrices for the onsite values. This is demonstrated for example in the tutorial: https://kwant-project.org/doc/1/tutorial/superconductors Best, Anton On Thu, 14 Jan 2021 at 09:51, <henry.axt@physik.rwth-aachen.de> wrote:
Hello,
I have set up a system in which I want to define hoppings in a lead between sites that originate from two sublattices: LatticeA has sublatices a and b, LatticeB has sublattices c and d. Currently, I believe I am achieving this via:
for site in lead2.sites(): (x,y) = site.pos if str(site.family) == "<Monatomic lattice e0>": lead2[c(x,y),a(x,y)] = Delta if str(site.family) == "<Monatomic lattice e1>": lead2[d(x,y),b(x,y)] = Delta
and thereby connecting sublattices c and a, and d and b.
Is this accurate? Can this be done with HoppingKind? And is there a way for me to list all the hoppings created to check if this was successful?

Hey Anton, Thank you for the reply. It is indeed a honeycomb lattice I am working with, and I attempting to connecting the two sublattices the honeycomb lattices to create a superconducting lead. Since the site.pos of honeycomb(electron)-sublattice-a is the same as the site.pos of honeycomb(hole)-sublattice-c, should this method not also work for this lattice? Maybe I will just rewrite it in the orbital method. Regards, Henry

Since the site.pos of honeycomb(electron)-sublattice-a is the same as the site.pos of honeycomb(hole)-sublattice-c, should this method not also work for this lattice?
The problem with this is that lat(a, b) isn't a site with coordinates a & b, but rather a site that belongs to the unit cell (a, b). That you could fix in your code by using site.tag instead of site.pos. But even then the orbital approach is better. Best, Anton On Thu, 14 Jan 2021 at 10:36, <henry.axt@physik.rwth-aachen.de> wrote:
Hey Anton,
Thank you for the reply.
It is indeed a honeycomb lattice I am working with, and I attempting to connecting the two sublattices the honeycomb lattices to create a superconducting lead.
Since the site.pos of honeycomb(electron)-sublattice-a is the same as the site.pos of honeycomb(hole)-sublattice-c, should this method not also work for this lattice?
Maybe I will just rewrite it in the orbital method.
Regards, Henry
participants (2)
-
Anton Akhmerov
-
henry.axt@physik.rwth-aachen.de