Implementing the Haldane model
Hi all, I'm trying to implement the Haldane model but for some reason my code seems to be incorrect. I implemented a zigzag edge graphene ribbon at the parameters (M = 0.2, t=1.0,t2 = 0.5, phi = pi/2) but my result is really different from what it is shown at topocondmat https://topocondmat.org/w4_haldane/haldane_model.html. Thank you for the time and help. Regards
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
participants (2)
-
pablo.perez.piskunow@gmail.com
-
Victor Regis