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

Reply via email to