hamiltonian_submatrix returns a dense matrix by default
I think that
hamiltonian_submatrix should, by default, return a sparse matrix.
Kwant's design is in several places predicated on the fact that tight-binding Hamiltonians are usually local, and hence their matrices are sparse.
If someone tries to call
hamiltonian_submatrix for a relatively large system they will get a
MemoryError. I believe that this is a problem for Kwant's UX.