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
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.