In [1]:
import quimb as qu
H = qu.ham_heis(12)
In [2]:
%%timeit
el, ev = qu.eigh(H)
This is already quite slow, and will not be sustainable for larger lengths.
The Heisenberg Hamiltonian however has an abelian $Z_2$ subgroup symmetry,
conserved Z-spin, that manifests itself in the computational basis.
Thus if instead we specify autoblock=True:
In [3]:
%%timeit
el, ev = qu.eigh(H, autoblock=True)
In [4]:
psi = qu.eigvecsh(H, k=1, which='sa')