Sergey Nikolaev wrote:

Could you please explain me how I can put hopping parameters for a multilayered system with  kwant.builder.HoppingKind(). The difficulty is that the intralayer hopping parameters are different for each layer and depend on the layer's position z. T he hopping integrals between neighbouring layers are the same. Thank you in advance.

That should be possible.  Let's say that you use a cubic lattice:

   cubic = kwant.lattice.general(np.identity(3))

The nearest neighbor hoppings (as given by cubic.neigbhors()) are:

   HoppingKind((1, 0, 0), cubic)
   HoppingKind((0, 1, 0), cubic)
   HoppingKind((0, 0, 1), cubic)

You do not have to use these three hopping kinds together. You can separately set the intralayer hoppings:

system[ [HoppingKind((1, 0, 0), cubic), HoppingKind((0, 1, 0), cubic)] ] = intralayer

and the interlayer hoppings:

   system[ HoppingKind((0, 0, 1), cubic) ] = interlayer

“interlayer” should be a function that depends on the z value. “intralayer” can be either a constant, or also a function that formally depends also on z, but in fact ignores this parameter. (In Kwant 1, all value functions of a system must take the same parameters.)

Does this solve your problem?

Christoph

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to