Excited states with DMRG and TEBD with non-local hamiltonian
What is your issue?
Hi, I am a new user to quimb. Amazing package ! I have a couple of questions which I wanted answered if possible . Here they are :
-
I have a hamiltonian in 1D (say H) which has non-local terms like $Sx_i Sz_j Sy_k Sx_l$ (this a 4-local one). I also have 3-local terms like ($Sx_i Sz_j Sx_l$) added to the same and usual two-local ones ($Sz_i Sz_j$) where $S_{alpha}$ are spin operators for qutrits (S=1). Right now I am building each term by storing the individual tensors in a list like $[I,I,I...Sx_i, I, I, ...Sz_j, I, I, I ....Sy_k, I, I, I,....Sx_l,....I,I]$ where each individual tensor in the list is reshaped to (1,1,3,3). The entire list is then fed to MatrixProductOperator( ) to convert to an MPO and all the MPOs of different localities are added and compressed to get the final H. While this method is good, I am also aware of the FSA technique where W tensors are constructed showing transitions from states. I know how to do them for each term and proceed as above. However if I have to construct W tensors for different terms of different locality together, I am not sure how to go about doing that in quimb . Any pointers will help
-
If I use the hamiltonian in 1) and do DMRG, I can easily get the ground state energy and MPS. However I am also looking for excited states. I saw quimb has DMRG-X , but its functionality involves finding an excited state which has high overlap with a given MPS. Thats not what I want, what I am looking for is once the ground state is estimated, what are the next higher excited states (say p of them) above in energy ? One easy way would be to use the ground state $|\psi \rangle$ MPS and make an effective Hamiltonian $H_{eff} = H + \lambda |\psi\rangle \langle \psi|$ but making an outer product of an MPS is also going to likely blow-up storage. So is there a simpler thing which I can do get access to excited states or simpler scalable ways of making outer products of MPS as above would also help ? I have seen some DMRG packages allows weights to be supplied too, is such a feature there ?
-
Can the hamiltonian constructed in 1) be fed to a fourth order TEBD routine for time evolving a given MPS and computing dynamic correlators like $\langle Sx_i (t) Sx_j \rangle$ in the standard way or are there any specific adjustments that needs to be made for non-locality that I am not aware of ?
Any help with the above questions will be greatly appreciated. Thanks a lot in advance .
Hi @sajjan02purdue.
-
For general multi term MPOs you can look at
quimb.experimental.operatorbuilder. Unfortunately it currently only supports $d=2$ i.e. spin-1/2 or qubits, but it would be very easy to modify the mpo building method to support higher $d$. It uses a greedy kind of finite state machine which is not totally optimal for very complicated hamiltonians, e.g. qu chemistry, but pretty decent. -
I have not implemented excited state DMRG myself, though I recall some people have some
quimbimplementations of this. It's not a high priority to add myself, simply because DMRG and 1D algorithms have lots of options elsewhere. Similarly for weights. However, I would very gladly see such things contributed! -
For TEBD you typically don't construct the MPO, since you apply the terms in there trotterization individually, you would just need to find a trotterization of the relevant terms, exponential your gates, and apply each to your state using probably this core function:
mps.gate_nonlocal. A better option might be to find a TDVP implementation, which does take the MPO, and can be more suited to non-nearest-neighbor hamiltonians.
Ok, thank you so much for the reply @jcmgray . These pointers will be quite useful