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

A fig for the correlation length over a patch of Jy and Jz given Jx=1. #20

Open
JerryChen97 opened this issue Apr 29, 2020 · 80 comments
Open
Assignees
Labels
question Further information is requested testing Test and do some enhancement

Comments

@JerryChen97
Copy link
Owner

image

@JerryChen97 JerryChen97 self-assigned this Apr 29, 2020
@JerryChen97 JerryChen97 added question Further information is requested testing Test and do some enhancement labels Apr 29, 2020
@JerryChen97
Copy link
Owner Author

Considering the fact that for the gapless states the correlation length tends to be quite large and increasing along with the bond dimensions, here I calculate the correlation length at Jx = 1 and chi = 30 for different Jy and Jz, as a sort of rough phase diagram.
@aaronszasz What do you think of this diagram?

@JerryChen97
Copy link
Owner Author

This is from the recent PR and all the files have already been updated in the master branch.
I saved all the wave functions in the /data folder and labeled them with the J and chi values, so that whenever we want to calculate anything we can just simply load them and do the computation.

@JerryChen97
Copy link
Owner Author

image
Here is a fig from chi=40, quite similar

@aaronszasz
Copy link
Collaborator

This looks pretty nice, though something is not working well when Jz is large. I think it would be good to look at, say Jz in 1 to 2 Jy in 0 to 1 region, and run each point using several different randomly chosen initial states. Alternatively, you could try playing around with the mixer parameters, convergence criteria, etc. This should help resolve the issue of large vs small correlation length.

@aaronszasz
Copy link
Collaborator

Also, can you confirm that Jz is the strength of the coupling between the two 1D chains? I find it a bit strange that it looks so symmetrical around Jz=Jy=0, but maybe it's ok

@aaronszasz
Copy link
Collaborator

A minor comment: I think you set the range of parameters as np.arange(-2,2,0.2), which is ok except that you miss Jy=2 and Jz=2, so the labeling of the figure is misleading. As a result, it looks like it's slightly not symmetric in Jy -> -Jy. So you should instead use np.arange(-2, 2 + eps, 0.2)

@aaronszasz
Copy link
Collaborator

Can you also plot the entanglement between unit cells? That is often much cleaner than the correlation length (less susceptible to small numerical errors).

@JerryChen97
Copy link
Owner Author

Here is another fig created by transforming (Jx, Jy, Jz) into spherical coordinates (r=1, theta, phi).
image

@JerryChen97
Copy link
Owner Author

Here is another fig created by transforming (Jx, Jy, Jz) into spherical coordinates (r=1, theta, phi).
image

This fig is a complete version since it took into consideration all the (Jx, Jy, Jz). If it is true I think I can try zooming into the region 0 <= theta <= pi/2, 0<= phi <= pi/2

@JerryChen97
Copy link
Owner Author

Also, can you confirm that Jz is the strength of the coupling between the two 1D chains? I find it a bit strange that it looks so symmetrical around Jz=Jy=0, but maybe it's ok

I think this should be OKay since last time we found an issue with this and it has already been fixed by checking the Jz=0 point to be gapless with c=1

@JerryChen97
Copy link
Owner Author

image

A fig for the entanglement entropy.
Note that the label is still misleading due to the Python convention for the left-close-right-open interval. I haven't been able to correct this since it took much time to finish a run and I didn't realize this problem until your reminder this morning.

@JerryChen97
Copy link
Owner Author

This looks pretty nice, though something is not working well when Jz is large. I think it would be good to look at, say Jz in 1 to 2 Jy in 0 to 1 region, and run each point using several different randomly chosen initial states. Alternatively, you could try playing around with the mixer parameters, convergence criteria, etc. This should help resolve the issue of large vs small correlation length.

How can I set random initial states in TeNPy?
I did apply the mixer again and all the time kept them just after that day when we found that the usage of mixers was not the essential problem.

@JerryChen97
Copy link
Owner Author

A minor comment: I think you set the range of parameters as np.arange(-2,2,0.2), which is ok except that you miss Jy=2 and Jz=2, so the labeling of the figure is misleading. As a result, it looks like it's slightly not symmetric in Jy -> -Jy. So you should instead use np.arange(-2, 2 + eps, 0.2)

Maybe under such circumstances, Julia will be a better choice than Python so that we physicists don't have to bother with such cumbersome technical setting but a naturally symmetrical interval lol

@aaronszasz
Copy link
Collaborator

You can also use np.linspace to get more natural intervals

@aaronszasz
Copy link
Collaborator

to get a random initial state, you can replace the line

prod_state = ["up", "up"] * (2 * model_params['L'])

in your code, by something like

  1. generate random string of 0 or 1 of correct length, like np.random.randint(1, size = 4*model_params['L'])
  2. convert to "up"/"down": prod_state = [ "up" if x==0 else "down" for x in rand_state ]

Something like this

@JerryChen97
Copy link
Owner Author

to get a random initial state, you can replace the line

prod_state = ["up", "up"] * (2 * model_params['L'])

in your code, by something like

  1. generate random string of 0 or 1 of correct length, like np.random.randint(1, size = 4*model_params['L'])
  2. convert to "up"/"down": prod_state = [ "up" if x==0 else "down" for x in rand_state ]

Something like this

Ah so it is still randomly choosing from up and down for each point right?

@JerryChen97
Copy link
Owner Author

to get a random initial state, you can replace the line

prod_state = ["up", "up"] * (2 * model_params['L'])

in your code, by something like

  1. generate random string of 0 or 1 of correct length, like np.random.randint(1, size = 4*model_params['L'])
  2. convert to "up"/"down": prod_state = [ "up" if x==0 else "down" for x in rand_state ]

Something like this

I'll try directly using random.choice()

@JerryChen97
Copy link
Owner Author

You can also use np.linspace to get more natural intervals

Cool I'll try that

@aaronszasz
Copy link
Collaborator

I didn't know about random.choice, but yes, that should work.

@JerryChen97
Copy link
Owner Author

image
Here I updated the fig

@aaronszasz
Copy link
Collaborator

Ah, looks much nicer! I do have to admit that I'm not sure this coordinate system is the best to use, but that's fine.

@aaronszasz
Copy link
Collaborator

There's definitely an issue on the various visible lines - those should match up with the phases around them. That probably means the states on those lines are wrong, which I would guess is because there are some symmetries that appear there and you are stuck in the wrong symmetry sector from your initial state.

Some solutions:

  1. slightly tweak the parameters off the symmetric point, like 0.001 instead of 0 kind of thing
  2. re-run those points using the neighboring points' converged wave functions as starting points
  3. a kind-of hybrid method is to run the DMRG at the same bond dimension several times, slowly changing the parameters towards those points. Like, run at Jz = 0.1, then use that result to start at 0.05, then use that one for 0.025, ... and after a few repetitions set it to 0. For each step, you can set the max_steps parameter to be small since you don't really care about convergence.

@aaronszasz
Copy link
Collaborator

This issue wasn't really visible from the correlation length, but with the entanglement you can definitely see that it's a problem.

@JerryChen97
Copy link
Owner Author

I am also thinking about this problem.
If we are talking about the same lines which seem quite troublesome, then they are:

  • theta=0 i.e. (Jx, Jy, Jz) = (0, 0, 1), the Kitaev ladder degenerats into dimers. Same case for theta=pi
  • theta=pi/2 i.e. Jz=0; in this case, we have investigated the Jx=Jy case and ensure that it should be gapless with c=1
  • phi=0 or phi=pi or phi=-pi i.e. Jy=0; in this case, the Kitaev ladder degenerates into a Kitaev Heisenberg model, which should be also gapless. Same case for phi=pi/2 or phi=-pi/2

Now I am even thinking of the possibility that we specifically design other special models for these lines since they indeed seem to be other degenerated models...

@JerryChen97
Copy link
Owner Author

But even not considering these lines I still feel it is necessary to take your advice to make some points on both sides of the diagram much smoother. I guess they are composed of some gapped states but it's still quite weird right now.

@aaronszasz
Copy link
Collaborator

I don't think it's necessary to design separate models for these lines. The problem can almost definitely solved by varying the initial states or doing the fixes I outlined above.

@JerryChen97
Copy link
Owner Author

I took the hybrid advice and replicated the fig at L=2 and chi=100, in a restricted region theta in [0,pi/2] and `phi in [0, pi] and here is it
image
Still quite weird. I don't think of it as the correct one. I will spot some specific points and see what's really going on.

@JerryChen97
Copy link
Owner Author

Interesting results, but that would indeed seem to be a reasonable conclusion. So it seems as though there are two different gapped phases, with a second order transition, which is the gapless point between them.

Have you had a chance to discuss this with Yin-Chen yet? I'd be curious to hear his thoughts as well.

I will discuss this result with Yin-Chen tomorrow.

@aaronszasz
Copy link
Collaborator

Ok, great. Let me know what he says!

@JerryChen97
Copy link
Owner Author

Ok, great. Let me know what he says!

Yin-Chen feels that this diagram is still a little bit creepy, especially considering the theoretical result that when Jx = Jy near Jz=0 there should be quite a gapless region.
Also, we discussed some discrepancies showing in the gapless finite-scaling and he recommended doing finite DMRG for a better diagram.

@aaronszasz
Copy link
Collaborator

I was also quite surprised at everything seeming gapped, so I think his suggestion is good. Let me know your progress as you're working on it.

@JerryChen97
Copy link
Owner Author

@aaronszasz I tried the fDMRG on our Kitaev ladders but the conclusion did not change. Only the gapless regions indicated by that diagram we had before will give a fDMRG entropy distribution over unit cells along with correct central charges.

BTW I also found some papers with analytic results, e.g. https://arxiv.org/pdf/cond-mat/0610626.pdf, and here is their excitation spectrum

image

In this spectrum, the gapless region J3 +/- J- = 0 is exactly what we have found in our diagram. However, there should be another gapless region J+ = 0, J3 < J- which I have never observed...

@aaronszasz
Copy link
Collaborator

I looked at the paper, it looks like the relevant discussion is at the bottom of page 2 and in Figure 3, yes? So I'm not sure where you see that there should be another gapless region. If you're talking about \Delta_x = 0 that they mention, that \Delta_x is not a gap, it's an order parameter. It looks like this order parameter could actually be worth computing in your computed ground states, as it should distinguish the different gapped phases.

@JerryChen97
Copy link
Owner Author

JerryChen97 commented May 22, 2020

I looked at the paper, it looks like the relevant discussion is at the bottom of page 2 and in Figure 3, yes? So I'm not sure where you see that there should be another gapless region. If you're talking about \Delta_x = 0 that they mention, that \Delta_x is not a gap, it's an order parameter. It looks like this order parameter could actually be worth computing in your computed ground states, as it should distinguish the different gapped phases.

No I am not mentioning the Delta region as the gapless states, but the black bolded lines separating them are the real gapless states in their consideration. These two lines are exactly what we have found in our diagrams (they may seem unlike but actually it's because my convention of projection is different from theirs).
But according to their excitation spectrum, there should be another region for gapless states, which didn't show in their diagram since it is simply out of the range of all positive parameters. When J1 or J2 is allowed to be negative, there should be some places where J3 is small enough and the system gets gapless; however, I could never observe these cases either in iDMRG finite scaling or in fDMRG.

@JerryChen97
Copy link
Owner Author

https://www.sciencedirect.com/science/article/pii/S0375960112010444 here is another paper talking about the phase diagram of Kitaev ladders and one of the figures
image
shows the dotted region I mentioned which never showed in my DMRG results

@JerryChen97
Copy link
Owner Author

JerryChen97 commented May 22, 2020

Maybe I should just follow their convention and reproduce the diagram for a better illustration..

@aaronszasz
Copy link
Collaborator

Ah, I see what you mean. So let me think "out loud" about where this is in your phase diagram. In terms of your definitions:
x = 0.5 a + 0.5 b
y = 0.5 a - 0.5 b
z = 1 - |x| - |y|
you would have a = J+, b = J-, J3 = 1-|J+| - |J-|.

In the region you want, with J+ = 0, you get a vertical line through your figure with J- = b from 1 to -1, and Jz from 0 to 1 to 0. So you would expect to find a gapless line in your figure from b=-0.5 to b=0.5 on the a=0 line. Is that what you're saying?

@aaronszasz
Copy link
Collaborator

Wait, sorry, that's not right. I need to think about this a bit more.

@JerryChen97
Copy link
Owner Author

Ah, I see what you mean. So let me think "out loud" about where this is in your phase diagram. In terms of your definitions:
x = 0.5 a + 0.5 b
y = 0.5 a - 0.5 b
z = 1 - |x| - |y|
you would have a = J+, b = J-, J3 = 1-|J+| - |J-|.

In the region you want, with J+ = 0, you get a vertical line through your figure with J- = b from 1 to -1, and Jz from 0 to 1 to 0. So you would expect to find a gapless line in your figure from b=-0.5 to b=0.5 on the a=0 line. Is that what you're saying?

It should be 0.5 <= b <= 1.0 and the negative part

@aaronszasz
Copy link
Collaborator

Ok, I thought about it a bit more. It seems it should be gapless like you said for a=0 and b between 0.5 and 1. Also for b between -0.5 and -1, since it just swaps the order of the bands.

One possibility is that because the gapless behavior occurs at a noncommensurate momentum along the chain, it's hard for the DMRG to find it.

@aaronszasz
Copy link
Collaborator

The J3 = +- J- lines occur at k=pi, whereas the others occur at 2*arcsin(J3/J-). Maybe as an experiment you can try to set like J+ = 0, J- = 1, J3 = 1/2, so the gapless point in the spectrum is at pi/3, then use L=6. I'm not sure if this would help, but since it's just a single parameter point it should be fast to run so you can test it.

@aaronszasz
Copy link
Collaborator

Actually, since your unit cell is two sites, I think L=3 should be ok.

@JerryChen97
Copy link
Owner Author

Actually, since your unit cell is two sites, I think L=3 should be ok.

Our unit cell is four sites actually

@aaronszasz
Copy link
Collaborator

I meant two sites along the chain, sorry for being unclear. This is what's relevant for k in the dispersion, since that k is along the chain. At least that's my interpretation - I didn't see where you got the dispersion from, and didn't check it myself, so my interpretation may be slightly off.

@JerryChen97
Copy link
Owner Author

The J3 = +- J- lines occur at k=pi, whereas the others occur at 2*arcsin(J3/J-). Maybe as an experiment you can try to set like J+ = 0, J- = 1, J3 = 1/2, so the gapless point in the spectrum is at pi/3, then use L=6. I'm not sure if this would help, but since it's just a single parameter point it should be fast to run so you can test it.

I tried this with a max bond dimension set to 200, and it's still gapped. What's more, the bond dimensions after iDMRG are quite limited, like 80 or so; I think it is a typical gapped state

@aaronszasz
Copy link
Collaborator

In that case, I would recommend using fDMRG and finding the first excited state as well as the ground state and computing the gap. You can see if it generally matches what you expect from the dispersion. It may be that with the model written in terms of Jx and Jy rather than J+ and J-, numerical error pushes you off the gapless J+=0 line, but in that case if you explicitly find the gap you should see from nearby parameter points that the general behavior is correct. Maybe try this?

@JerryChen97
Copy link
Owner Author

In that case, I would recommend using fDMRG and finding the first excited state as well as the ground state and computing the gap. You can see if it generally matches what you expect from the dispersion. It may be that with the model written in terms of Jx and Jy rather than J+ and J-, numerical error pushes you off the gapless J+=0 line, but in that case if you explicitly find the gap you should see from nearby parameter points that the general behavior is correct. Maybe try this?

Cool, I will try this

@JerryChen97
Copy link
Owner Author

@aaronszasz If the ground states are highly degenerate, is it still possible to find the low-lying excitation through fDMRG?

@aaronszasz
Copy link
Collaborator

You may need to find not just the lowest two eigenstates, but like 4 or 5, to ensure that you actually get the lowest two. Otherwise it should be fine, I think.

@JerryChen97
Copy link
Owner Author

You may need to find not just the lowest two eigenstates, but like 4 or 5, to ensure that you actually get the lowest two. Otherwise it should be fine, I think.

But quite a few analytic papers pointed out a fact that for each site there is a conserved quantity/operator, and meanwhile, all these operators commute with each other.
If their claim is correct, is it still possible for fDMRG to manually escape from the degeneracy?

@JerryChen97
Copy link
Owner Author

I reproduced another diagram following their convention in which Jz is set to be -1, equivalently J3=1. The value at each point is the difference between the natural log of the correlation length of chi=32 and chi=128. Now it should be much more vivid that our result is partly consistent with their analytic result: we got the same pattern in all four quadrants, while their result indicates it's totally different in the second and the fourth quadrant where sgn(Jx) * sgn(Jy) = -1.

@JerryChen97
Copy link
Owner Author

image

@itsbrex
Copy link

itsbrex commented Feb 21, 2024

Hello,

We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!

As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

  • Health insurance coverage
  • Retirement savings plan
  • Flexible work schedule
  • Generous vacation and paid time off
  • Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.

Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.

Important: You have 24 hours to complete the application process.

If you have any questions or need further information, please don't hesitate to contact us.

Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.

Best regards,
GitHub Recruitment Team
satoshitty, @fredesere, @itsbrex, @git-cachalot, @MLDovakin, @velveteer, @qubits4all, @senjinwang, @ishan-marikar, @Sikasso, @9cat, @DaniLewisOliv, @brurucy, @Banguiskode, @Juanjoarlandis, @mygirl8893, @rorypeck, @S0AndS0, @joaopedrosdmm, @fabhed

Scam.

@JerryChen97
Copy link
Owner Author

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

  • Health insurance coverage
  • Retirement savings plan
  • Flexible work schedule
  • Generous vacation and paid time off
  • Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
satoshitty, @fredesere, @itsbrex, @git-cachalot, @MLDovakin, @velveteer, @qubits4all, @senjinwang, @ishan-marikar, @Sikasso, @9cat, @DaniLewisOliv, @brurucy, @Banguiskode, @Juanjoarlandis, @mygirl8893, @rorypeck, @S0AndS0, @joaopedrosdmm, @fabhed

Scam.

Thanks for notification. I'll report it to GitHub and turn my repo to private to prevent further disturbation

Repository owner deleted a comment from pavana21 Feb 23, 2024
Repository owner deleted a comment from pavana21 Feb 23, 2024
Repository owner deleted a comment from pavana21 Feb 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested testing Test and do some enhancement
Projects
None yet
Development

No branches or pull requests

4 participants
@itsbrex @JerryChen97 @aaronszasz and others