Finding the eigen state of Hamiltonians

Hey all,
What I am trying to do is to find the eigen energies of my H. From what I understand psi_0 from the example below should be the ground state. Is my assumption correct ? If not, how can I extract from my MPO my eigen state in the form of ground state, first excited state, and so on ? and Es are his corresponding eigen energies?

    H = MPO(H_bath,site)
    H_tensor = prod(H)
    eigen_E, Eigen_S = eigen(H_tensor)
    Es = diag(eigen_E)) 
    ground_state = Eigen_S * ITensor(placeOne(1, dim(inds(Eigen_S)[end])), inds(Eigen_S)[end])
    psi_0=MPS(ground_state,site)
#G = Eigen_S * prime(conj.(Eigen_S), inds(Eigen_S)[end]) 

I made a sanity check using G just to see that I am getting the identity, which I got… but, for some reason I not so sure.
Tomer

I understand what you’re doing in terms of the code, but could you give a bit more context about why you want to product all your MPO tensors together and use a full diagonalization? DMRG would be a much for efficient way to find the ground state. Is it because you want to also find a large number of excited states too? Or to debug a DMRG calculation?

To find the excited state. I used the DMRG calculations for excited states, but I noticed that as I enlarged my Hilbert space it becomes more and more difficult to do so.

thanks for the awesome information.