evanberkowitz / supervillain

MCMC for modified Villain constructions
https://supervillain.readthedocs.io/
Other
0 stars 0 forks source link

Feature/critical moments #136

Closed evanberkowitz closed 3 months ago

evanberkowitz commented 3 months ago

This PR got away from me in scope, partly because funny correctness issues revealed a bug in the Geometric worm and an overlap problem in the taxicab observables.

The susceptibilities (and critical moments) depend on the long-distance Spin_Spin and Vortex_Vortex correlators being estimated correctly. However, for some parameters (and increasingly for large lattices) the tails were limited by an overlap factor, where reweighting is formally correct but horribly expensive, to the degree that patience is the limiting resource.

This caused me to implement inline measurement of the respective correlators during the worm's evolution, by making a histogram. While it looked OK with small statistics, high-precision revealed a problem between the duality frames.

For example, with 10^6 configurations on an 11^2 lattice I produced this figure

image

where the worldline (green) has access to and rapidly decorrelated $v$, computing the correlator via convolution and the Villain requires either the taxicab (blue) or a worm measurement (orange). But no matter how I tried to process the inline worm measurements I could not get them to agree with the worldline: either the normalizations at ∆x=0 could be made to agree or the long-distance value could be made to agree, but not both, and the difference from the worldline framing (problematically) depended on lattice size and κ.

The actual issue turned out to be that the Geometric worm was wrong, misunderstood, or incorrectly implemented. I won't lay the blame on Alet + Sørensen; presumably the fault is either in my implementation or understanding. This caused me to go back and rederive the worm myself, which led to the Classic implementation added here. The Geometric worm is removed with this PR, perhaps to be revisited someday.

With the new worm I could produce correct correlators on very large lattices

screenshot_2024-07-18_at_10 15 58

screenshot_2024-07-18_at_10 15 48

which allowed me to produce matching {Spin,Vortex}CriticalMoment computations across the duality, so this PR closes #131.

Already a preliminary calculation I did for LATTICE 2024 shows the critical moments to be a diagnostic behaving as described in #131. The only minor surprise is that the critical moments don't go to 1 but to some lattice OPE coefficient that we don't really care about.


A backwards-compatibility issue is that the observables which were summaries of Spin_Spin and Vortex_Vortex were changed to derived quantities, because the inline-measured worm correlators can be made to match only at the level of expectation values (see the updated docs).