Does ITensor support quantum chemistry (molecular) Hamiltonian?

If not, any plan to develop quantum chemistry capabilities?

I started a very experimental package here: GitHub - ITensor/ITensorChemistry.jl: Add-on package to ITensors.jl for chemistry. for exploring that, basically to get an idea for what issues we might come across in ITensor and what new features we might have to add. There are still issues that have to be addressed to go beyond very small quantum chemistry problems, see the warning at the top of the README.

It is definitely on our radar, we have plans to fix some of the issues related to constructing MPOs for larger chemistry systems (EDIT: an issue which for now is addressed in a separate package ITensorMPOConstruction.jl, as @miles mentions below, though we plan to incorporate a similar improvement in the main codebase at some point), explore using tensor network structures beyond 1D using ITensorNetworks.jl, as well as perform parallelization to improve performance (which we were experimenting with in ITensorParallel.jl but that implementation needs some improvement and further development), but we don’t know the timeline for having those as more official and solid implementations in ITensor yet.

Another thing coming up is implementing non-abelian symmetries, which helps with the performance quantum chemistry DMRG, but that is still a work in progress (see Non-Abelian Quantum Number).

1 Like

Also just wanted to say if you had a specific set of tasks you wanted to try to do using ITensor, such as compressing a quantum chemical Hamiltonian to an MPO and use DMRG to find the ground state, that is in principle possible right now at a fairly state of the art level. But we could help guide you about the best way to do it. (E.g. our current OpSum system’s backend is too slow for really big chemical Hamiltonians and there is a separate package you could use that is a drop-in replacement that is much more efficient.)

1 Like