Hi,
Hello,
I encountered an issue when dealing with a semi-infinite ribbon: when defining a 1D translationnal invariance, I end up with a unit cell with unwanted and unexpected additionnal degrees of freedom.
I ran your script an indeed the plotter only plots 24 sites, and when I inspect 'haldane_f2.cell_size' I get 24, as I would expect. To get the unit cell Hamiltonian you should use the 'cell_hamiltonian()' method of your system; 'inter_cell_hopping()' will get you (unsurprisingly) the inter unit cell Hamiltonian. In your code you call the 'hamiltonian_submatrix()' method which does *not* (in general) return just the unit cell Hamiltonian, it actually returns all matrix elements for the unit cell Hamiltonian, in addition to matrix elements from the unit cell to the neighboring cell in the direction of the translational symmetry. In your case the first 24 rows/columns of the matrix correspond to the unit cell, and the next 12 correspond to the sites in the next unit cell that are connected to those first 24 sites. I will freely admit that this is not at all intuitive behaviour! I will open an issue for this on the issue tracker; probably we should emit a warning if someone calls 'hamiltonian_submatrix()' for an infinite system and does not explicitly provide to/from sites. Happy Kwanting, Joe