Dear Qingtian,
kwant.lattice.honeycomb() creates a honeycomb lattice that as you noted
lets you also access easily next-nearest neighbors via neighbors(2).
There are two things to note here:
1. kwant.lattice.honeycomb() just creates a lattice - this is not a
Hamiltonian yet. For this you need to specify values that you do with
kwant.Builder() - this always the same in kwant. (Please check the
tutorial
examples). That said, you can implement any Hamiltonian that lives on the
honeycomb lattice using kwant.lattice.honeycomb().
2. Note that if all next-nearest-neighbor hoppings have the same value,
things are easy and you can just write for example
sys[lat.neighbors(2)] = 0.1
However, you can also specify each type of hopping (i.e. all hoppings that
go in a certain direction) separately, using kwant.HoppingKind. Note that
in fact lat.neighbors() returns a *list* of kwant.HoppingKinds. How to set
individual hoppings in kwant is demonstrated on the simpler example of a
square lattice and spin-orbit in tutorial 2.3.1.
Pleae note that we cannot give specific advice on how to implement a
particular physical model, although you are welcome to ask questions if
you have specific problems with code in kwant.
Best,
Michael
> Dear all,
> I note that we can easily consider the next-nearest-neighbor hopping in
> honeycomb, however, what is the model (Hamiltonian) for this code? In
> graphene, the intrinsic SOI is included in the reference:PRL 95, 226801
> (2005) and we also have that in silicene: PRL 110, 026603 (2013). Is the
> model for Kwant the same as the two reference papers? Moreover,can we
> consider the Rashba SOI using the Tinyarray package in honeycomb? the
> hoppings along x and y direction are more complicated in honeycomb.
> Regards,
> Qingtian Zhang
>