Dear Victor,
In your script, you use
```
lat = kwant.lattice.honeycomb(a0, norbs=1, name=['a', 'b'])
```
and then,
```
lat.a.neighbors()
lat.b.neighbors()
```
to generate the Haldane complex hoppings.
However, in the Haldane model the complex hoppings must have a definite
orientation and order, if you keep
the complex phase constant. That is, the phase changes sign if you define the
hopping in the opposite direction.
Check that the orientation of the hoppings in `lat.a.hoppings()` is a bit
arbitrary, and not what you want.
Currently it is
```
lat.a.neighbors() = [
HoppingKind((1, 0), kwant.lattice.Monatomic([[1.0, 0.0], [0.5,
0.8660254037844386]], [0.0, 0.0], '0', None)),
HoppingKind((1, -1), kwant.lattice.Monatomic([[1.0, 0.0], [0.5,
0.8660254037844386]], [0.0, 0.0], '0', None)),
HoppingKind((0, 1), kwant.lattice.Monatomic([[1.0, 0.0], [0.5,
0.8660254037844386]], [0.0, 0.0], '0', None))
]
```
and you should define something like
```
second_neighbors_a = [
HoppingKind((0, 1), honeycomb_a, honeycomb_a),
HoppingKind((1, -1), honeycomb_a, honeycomb_a),
HoppingKind((-1, 0), honeycomb_a, honeycomb_a)
]
second_neighbors_b = [
HoppingKind((1, 0), honeycomb_b, honeycomb_b),
HoppingKind((0, -1), honeycomb_b, honeycomb_b),
HoppingKind((-1, 1), honeycomb_b, honeycomb_b)
]
```
Best,
Pablo