Interpretation of qnumber>1 for Entanglement Spectra

How do I use this algorithm? What does that parameter do?
Post Reply
bart
Posts: 26
Joined: 23 Jan 2019, 09:35

Interpretation of qnumber>1 for Entanglement Spectra

Post by bart »

I would like to plot an entanglement spectrum similar to Fig.3.b) of this paper https://arxiv.org/abs/1407.6985
Fig3.png
Fig3.png (63.26 KiB) Viewed 3840 times
Quote about the coloring of Fig.3.b):
The entanglement spectrum can be resolved further into distinct \(U(1)\) charge sectors \(Q_{\alpha}^L\in \mathbb{Z}\) where \(Q_{\alpha}^L\) label the \(U(1)\) charges of the left Schmidt states.
I would also like to color my entanglement spectrum in this way. However, when I come to look at the charges for each spectrum entry, I see two qnumbers (for my infinite-cylinder square-lattice Hubbard model). My question is: which one do I take? Do I just take the first value? Or some superposition of the two? What is the interpretation of having multiple charges (qnumber>1)? What does each charge correspond to?

Did the authors of this paper only have qnumber=1, which allowed them to color the plot in this way?

The TeNPy documentation (which is very informative about charges :D ) mainly talks about one charge corresponding to each index, so I would be grateful for any further clarification! :)
bart
Posts: 26
Joined: 23 Jan 2019, 09:35

Re: Interpretation of qnumber>1 for Entanglement Spectra

Post by bart »

UPDATE: I have noticed that when I use a model with spinless fermions, there is only one qnumber instead of two (as for fermions with spin). Does this mean that the second qnumber had something to do with spin? Do these qnumbers originate from the conserved quantities that I specify in model_params? e.g.

Two qnumbers:

Code: Select all

model_params = dict(cons_N='N', cons_Sz='cons_Sz', t=t, U=U, mu=mu, V=V, lattice="Square", bc_MPS='infinite',
                        order='default', Lx=Lx, Ly=Ly, bc_y='cylinder', verbose=0)

One qnumber:

Code: Select all

model_params = dict(conserve='N', filling=1/3, t=t, mu=mu, V=V, lattice="Honeycomb", bc_MPS='infinite',
                        order='default', Lx=Lx, Ly=Ly, bc_y='cylinder', verbose=0)
If so, is the order of the qnumbers the same? i.e. the first qnumber corresponds to N conservation, the second qnumber corresponds to Sz conservation?
User avatar
Johannes
Site Admin
Posts: 413
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: Interpretation of qnumber>1 for Entanglement Spectra

Post by Johannes »

The "charges" you get are the "quantum numbers" you conserved.
Of course, it depends on the model which "quantum numbers" you can actually preserve. For example, for a spin-model, you can preserve the Magnetization (e.g. Heisenberg XXZ chain), or just the parity of the Magnetization (XYZ chain, Transverse field Ising model), or nothing at all.
For Fermions, you can preserve the particle number. If you have spinfull fermions, you can also preserve the magnetization (even if you don't preserve the particle number).
Thus yes, you do define the quantum numbers in your model parameters. The models give these parameter further to the "Sites" (SpinHalfSite, SpinSite, FermionSite, ...), which construct a instance "chinfo" of the "ChargeInfo" class. All tensors involved in this simulation then share the "chinfo".
For convenience, your MPS gets also one of them, psi.chinfo. If you just print(psi.chinfo), you should see the "names" of the charges. They should give you a hint on what the charge numbers correspond to.
You can check how these names change when you change the "conserve" or "cons_*" model parameters.

I hope this answers your question ;)
bart
Posts: 26
Joined: 23 Jan 2019, 09:35

Re: Interpretation of qnumber>1 for Entanglement Spectra

Post by bart »

Thank you for the clarification and for making me aware of the chinfo attribute, so that I can double-check the qnumbers myself. This has answered my question - thanks again! :)
Post Reply