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
smime.p7s
Description: S/MIME cryptographic signature