How to realize momentum Entanglement spectrum in ITensor.jl

Hi,miles

Following the question Entanglement Spectrum with momentum. I have an some native question, if we consider a periodicity in the y direction, and an open boundary condition in the x direction, there will be a momentum space in the y direction. This can correspond to a momentum entanglement spectrum. For example, a square with Ly=4 and Lx=10 should have 4 Ky evenly distributed. Notice that my Lx here is finite, but the momentum entanglement spectrum in many articles corresponds to idmrg, which Lx is infinite, why is this?

Through my description, you should be able to feel that I am so unfamiliar with the momentum entanglement spectrum, but it is very important in some articles. All, Iā€™m curious whether ITensor has some introduction and example code to implement it? I think this is a very difficult question. And the information in the Forum is very limited.Such as In ā€œElecKā€ ,which is the only code connect with Ky in ITensor.l wonder whether l can get momentum entanglement spectrum in this site?

The above are some of my thoughts.This above question is very naive, but it is really difficult for me.Thanks to ITensor Forum.Thanks to you.

Hi, so the main idea of conserving k_y within a DMRG calculation is that one Fourier transforms the system in the y direction only, then labels the basis by its k_y momentum (each site now representing a single-particle basis state that is some single-particle wavefunction oscillating as it wraps around the cylinder with the wavenumber k_y).

In practice, one just introduces a new quantum number that keeps track of these k_y labels and writes the Hamiltonian correctly in this transformed basis, then does DMRG and getst the result. The benefit is that when you look at the entanglement spectrum for a cut of the system (one that cuts the cylinder between two ā€œrungsā€) the eigenvalues will carry the k_y momentum labels (since the density matrix eigenvalues can always be labeled by the conserved quantum numbers of a system, and our code automatically will do this kind of labeling) so that when you study or plot these eigenvalues you can organize them by these labels.

Hope that helps you get started. I also encourage you to read some of the original literature about this idea of using the momentum basis in the y direction.

Miles

1 Like

Hi, miles
Thanks for your answer, and I still looking forward to share my doubt here. As when we run the code in ITensors.jl/2d_hubbard_conserve_momentum.jl at e7740ebb8df26cbacc1671113656e702030e43bb Ā· ITensor/ITensors.jl Ā· GitHub in ITensor.jl example, we can obtain a state described by 3 quantum numbers, like

[1] ((dim=4|id=69|"ElecK,Site,n=1") <Out>
  1: QN(("Ky",0,3),("Nf",0,-1),("Sz",0)) => 1
  2: QN(("Ky",0,3),("Nf",1,-1),("Sz",1)) => 1
  3: QN(("Ky",0,3),("Nf",1,-1),("Sz",-1)) => 1
  4: QN(("Ky",0,3),("Nf",2,-1),("Sz",0)) => 1, (dim=2|id=444|"Link,l =1") <Out>
  1: QN(("Ky",0,3),("Nf",17,-1),("Sz",1)) => 1
  2: QN(("Ky",0,3),("Nf",17,-1),("Sz",-1)) => 1)

Generally, the processing of the entanglement spectrum in real space is similar to the process of calculating entanglement entropy, reshape the ground state psi into a matrix for svd decomposition, obtain S, and then perform the following operations
real space

If my understanding is correct (and of course it is quite possible to be wrong),
The momentum entanglement spectrum of the finite dmrg, such as Ky=0, is a part of the above ground state psi extracted to perform the above operation in picture?

If so, then one of the difficulties I have encountered is how to get the blocked matrix generated by the ground state according to the quantum number of momentum, because the above svd decomposition process seems to have destroyed the quantum number structureļ¼Ÿ This seems very difficult, and there is no template, documentation or sample code that does it.

Thanks to your help,thanks to ITensor Forum.