Skip to content

Update correlation length normalization#212

Merged
lkdvos merged 6 commits intomasterfrom
correlation
Jun 10, 2025
Merged

Update correlation length normalization#212
lkdvos merged 6 commits intomasterfrom
correlation

Conversation

@lkdvos
Copy link
Member

@lkdvos lkdvos commented Jun 9, 2025

This should resolve #199 by correctly normalizing the transfer spectra.

@ogauthe, do you happen to have some explicit results that I can use to add tests?

@ogauthe
Copy link
Contributor

ogauthe commented Jun 9, 2025

The correlation length for the AKLT spin 2 wavefunction is slightly above 2. It may be added to https://github.com/QuantumKitHub/PEPSKit.jl/blob/master/test/ctmrg/correlation_length.jl
Getting a precise value is not very easy as the corner singular values decay super fast and the measured value is affected by the cutoff.
https://journals.aps.org/prb/abstract/10.1103/PhysRevB.96.121115 finds xi_AKLT = 2.065 using the boundary state of a semi infinite cylinder with.
Using an asymmetric CTMRG with a cutoff of 1e-13, I converge at chi=48 with xi_AKLT = 1.976
Using an asymmetric CTMRG with a cutoff of 1e-20, I converge at chi~430 with xi_AKLT = 2.004 (quite sensitive to details)
With a C4v symmetric CTMRG with chi=104, I find 2.010
With a C4v symmetric CTMRG with chi=202, I find 2.028

I guess "between 1.9 and 2.1" should do the trick

@codecov
Copy link

codecov bot commented Jun 9, 2025

Codecov Report

Attention: Patch coverage is 70.00000% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/environments/ctmrg_environments.jl 37.50% 5 Missing ⚠️
src/states/infinitepeps.jl 0.00% 4 Missing ⚠️
Files with missing lines Coverage Δ
src/algorithms/toolbox.jl 98.26% <100.00%> (+0.18%) ⬆️
src/states/infinitepeps.jl 71.13% <0.00%> (-3.06%) ⬇️
src/environments/ctmrg_environments.jl 67.91% <37.50%> (-1.36%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ogauthe
Copy link
Contributor

ogauthe commented Jun 10, 2025

As discussed, I find it slightly misleading that by default the returned correlation may not be the largest one. Especially that it depends on which symmetry is implemented: in the AKLT example, correlation_length(ψ, env) returns 2 different results depending whether ψ makes use of U(1) or SU(2). As a user, I would expect that it returns the largest one by default, then sector is an advanced mode with finer control. Of course I am not using MPSKit so I may be unaware of established conventions.

@lkdvos
Copy link
Member Author

lkdvos commented Jun 10, 2025

@ogauthe, Can you open an issue for this? Something like correlation length interface discussion seems look a good idea, since I'm also supremely unhappy with the current output of PEPSKit's correlation length, since it is completely breaking from what MPSKit is returning (a single number).

We can merge this as "a fix" without altering the conventions, and then re-assess based on the collective discussion, since I would then also want the same behavior in MPSKit.

Copy link
Collaborator

@pbrehmer pbrehmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! And I completely agree that MPSKit and PEPSKit should share the same correlation length interface. But more on that in #216...

@lkdvos lkdvos merged commit 9aca427 into master Jun 10, 2025
44 of 45 checks passed
@lkdvos lkdvos deleted the correlation branch June 10, 2025 17:17
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.

correlation_length may return wrong values

3 participants