Scaling of entanglement entropy for iDMRG

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

Scaling of entanglement entropy for iDMRG

Post by bart »

I have read in the literature that the following relation should hold for iDMRG:

\(S=\frac{c}{6}\log\xi\), where \(c=\frac{1}{2}\) for the TF Ising model (at the critical point \(g/J=1\)).

However, when I try to plot the entanglement entropy against correlation length using the "examples/d_dmrg.py" file, I obtain \(S=\frac{1}{6}\log\xi\) at large \(\xi\), which would suggest that \(c=1\).

Is there a reason for this discrepancy? Is there a neat way to demonstrate the relation stated in the literature?

Any help would be greatly appreciated!

PS. I do find that \(S=\frac{c}{6}\log L\) for finite systems (using "examples/d_dmrg.py"), with \(c=\frac{1}{2}\) for the TF Ising model, as expected.
QichengTang
Posts: 32
Joined: 08 Jan 2019, 03:03

Re: Scaling of entanglement entropy for iDMRG

Post by QichengTang »

hi, i believe the reason is that in iDMRG the boundary condition is like a periodic boundary condition.
Your formula is for the open boundary condition, and for periodic boundary condition this should be c/3 but not c/6.
I recommend you to read the following two ref: arXiv:hep-th/0405152 and arXiv:0905.4013.
bart
Posts: 26
Joined: 23 Jan 2019, 09:35

Re: Scaling of entanglement entropy for iDMRG

Post by bart »

Thank you very much for your quick reply and the references!

Do you mean that the formula that I wrote doesn't apply to iDMRG, or that I did not implement the boundary conditions correctly?

Am I correct in understanding that you are using these terms interchangeably:

infinite system <=> periodic boundary conditions,
finite system <=> open boundary conditions ?
QichengTang
Posts: 32
Joined: 08 Jan 2019, 03:03

Re: Scaling of entanglement entropy for iDMRG

Post by QichengTang »

I mean, in iDMRG, the boundary condition is like a periodic boundary condition.
So, your problem is you use the wrong formula, you should use a formula for periodic boundary condition when you do an iDMRG calculation.
In a finite case, you can choose open boundary condition or periodic, but in tenpy there is not an algorithm for periodic finite dmrg, i think the reason is that dmrg for finite system with periodic boundary condition is not a trivial task (the canonical form cannot be hold, you can see this in ref arXiv:1801.05390, if you are interested in).
bart
Posts: 26
Joined: 23 Jan 2019, 09:35

Re: Scaling of entanglement entropy for iDMRG

Post by bart »

Ah I see, that is also consistent with what I have read in the literature here: https://arxiv.org/abs/0712.1976 Thank you for the clarification! :-)

So, from this, I conclude that Frank Pollmann must have made a mistake in exercise 3.3 of this sheet http://quantumtensor.pks.mpg.de/wp-cont ... rial_1.pdf where he explicitly referred to \(S=\frac{c}{6}\log\xi\) with respect to iDMRG.
Umberto Borla
Posts: 18
Joined: 23 Jul 2018, 09:23
Location: Technical University Munich

Re: Scaling of entanglement entropy for iDMRG

Post by Umberto Borla »

Hi! I am also looking into the scaling of \(S\) with \(\log \xi\) to extract the central charge and from what I read the relation you originally posted \(S \approx \frac{c}{6}\log \xi\) should be the correct one even for iDMRG. Apart from Calabrese and Cardy's original paper, here is a reference where they do iDMRG on a cylinder and the formula above is used.

How do you compute \(\xi\)? It would be nice to settle this issue once and for all :)
bart
Posts: 26
Joined: 23 Jan 2019, 09:35

Re: Scaling of entanglement entropy for iDMRG

Post by bart »

Hi Umberto, thank you for the reply and for the useful link! I hadn't seen that paper before, but it does suggest that the original formula was correct after all. In which case, I wonder why I cannot reproduce it...

I am trying in the most naive way using the example_DMRG_infinite(g=1.) function from TeNPy/examples/d_dmrg.py. I would like the np.log(psi.correlation_length()) and 6*S after each DMRG sweep, so I set 'N_sweeps_check': 1 in dmrg_params. Then I add a print statement in TeNPy/tenpy/algorithms/dmrg.py, so that these values are printed after every sweep, together with the verbose output. (All other parameters, I leave as they are.)

If I plot these values, and look at large \(\xi\), then I get a gradient which is almost exactly one (e.g. \(c=0.9993...\) for the last 100 values, with a correlation coefficient \(R^2= 0.9999990...\)). Is this how you perform the scaling too?

I would also very much like to get to the bottom of what I am doing wrong :)
QichengTang
Posts: 32
Joined: 08 Jan 2019, 03:03

Re: Scaling of entanglement entropy for iDMRG

Post by QichengTang »

hi, everyone. I have to admit i was wrong, and what Umberto said is correct:

The original formula is correct, and in infinite dmrg the boundary condition is open.

BTW, bart, your scaling method may be wrong. Why you choose the data from a state which is not converged in dmrg?
What I remember is: you should choose different "chi_max" to get different ground states (the finial states of infinite dmrg). From these states you will get a list of the correlation length and the entropy, try to use these data to do the scaling.
Post Reply