Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Cat state caught #17

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

WIP: Cat state caught #17

wants to merge 4 commits into from

Conversation

JerryChen97
Copy link
Owner

As @aaronszasz pointed out,

This is actually quite interesting. It looks like at chi=36, it switches from a cat state to a possibly symmetry-broken state. If you look at the correlation length, it suddenly drops from about 10^5 to about 10^3. The large value indicates a nearly cat state. A useful thing to do would be to, for each chi, record psi_old = psi.copy() and then after doing the next chi, find psi.overlap(psi_old). You should see that it is close to 1 except at 32 -> 36.

Here are some consequences:

  1. The "correlation length" you measure for chi <= 32 is not actually the correlation length. The real correlation length should instead be computed from the third largest transfer matrix eigenvalue rather than the second largest. This would hopefully be in line with the values from the larger chis.
  2. In calculating central charge, you can only use the data for chi >= 36. So your result when you use entropy_list[0] and log_xi[0] will be wrong.

Here are some other things to do:
a) recompute c using just the later set of points
b) sweep chi back down from 36 starting with the chi=36 state as the initial one, so you can get the non-cat low chi states.
c) recompute c using these non-cat low chi states, check that it agrees with (a)
d) [More difficult, requires other TenPy functions] recompute correlation length for cat states using third largest eigenvalue

We will keep working on this cat state in this Pull Request

@JerryChen97
Copy link
Owner Author

It turns out that the "transition" happens between chi=17 and chi=18

@aaronszasz
Copy link
Collaborator

It's not correct to say that the transition "actually happens" at a particular point, because there isn't actually a transition in the physical system. Most likely the cat state and the non-cat state are actually degenerate in the infinite system, but given your initial state the cat state starts out favored, while ultimately an MPS will favor the non-cat state since you can represent a larger part of the wave function with the same bond dimension. The "transition" is caused by small numerical errors, and where those occur will depend on details of the parameters, including chi, in a semi-random way.

@JerryChen97
Copy link
Owner Author

JerryChen97 commented Apr 18, 2020

It's not correct to say that the transition "actually happens" at a particular point, because there isn't actually a transition in the physical system. Most likely the cat state and the non-cat state are actually degenerate in the infinite system, but given your initial state the cat state starts out favored, while ultimately an MPS will favor the non-cat state since you can represent a larger part of the wave function with the same bond dimension. The "transition" is caused by small numerical errors, and where those occur will depend on details of the parameters, including chi, in a semi-random way.

It's true. This is definitely not a real transition happening in the Kitaev ladder (there is no Hamiltonian parameter tuning at all; we are investigating the static properties); it's rather a "transition" of DMRG's behaviors lol

@JerryChen97
Copy link
Owner Author

image
The overlaps between the wave functions of neighboring chi are very strange...

@JerryChen97 JerryChen97 changed the title Cat state caught WIP: Cat state caught Apr 21, 2020
@aaronszasz
Copy link
Collaborator

In TenPy2, the overlap is per site, so only overlap**4 is actually meaningful, so this would be fine. I'm not 100% sure that's how it works in TenPy3, so this needs to be checked. If it's per unit cell, then it's more surprising.

@JerryChen97
Copy link
Owner Author

JerryChen97 commented Apr 22, 2020

In TenPy2, the overlap is per site, so only overlap**4 is actually meaningful, so this would be fine. I'm not 100% sure that's how it works in TenPy3, so this needs to be checked. If it's per unit cell, then it's more surprising.

In the docstring of the overlap function, they claimed that

For an infinite MPS, <self|other> is the overlap per unit cell, i.e., the largest eigenvalue of the TransferMatrix.

@aaronszasz
Copy link
Collaborator

Yes, you're right. I suggest the following test:

  • do not create a new dmrg engine at each step
  • do not do psi.canonical_form()
    I suspect that in this case it will be all 1, which would indicate that somehow resetting the engine is just producing a random phase on the wavefunction, and since it is constrained to be real that is either 1 or -1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants