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.