Hi, hope you are doing well.
Given an op in the form of OpSum, I would like to obtain its whole set of eigenstates and turn them into MPSs to compute separately the overlaps between each eigenstate of op with a given MPS psi, thus \langle\text{each eigst of op}|\psi\rangle. I have been following different posts regarding exact diagonalization with ITensor
but, unfortunately, they apparently do not answer my question.
Here there is a snippet of code where the op to diagonalize is prepared and exact diagonalized using eigen, returning an 2^N\times 2^N matrix V for the eigenstates, as expected.
using ITensors
let
  N = 4 # number of sites
  s = siteinds("Qubit", N)
  op = OpSum()
  for i in 1:N
    op += "σy", i
  end
  cb=combiner(dag(s)...)
  cbp=combiner(s'...)
  H = prod(MPO(op, s))*cb*cbp
  E, V = eigen(H,combinedind(cb),combinedind(cbp), ishermitian=true)
  psi = randomMPS(s;linkdims=2)
  return
end
The problem comes when I try to access each individual eigenstate of V, since I do not know how to manipulate the NDTensors.Dense object. As I said, I would also like to convert them into MPSs to extract each inner(each eigst of op', psi).
Thanks a lot for your time devoted!