Closed evanberkowitz closed 8 months ago
Here is an N=12 comparison. Each ensemble is 100000 steps; one was generated with the Neighborhood update only, the other with Neighborhood and Link. No observable changed.
What's more, the Neighborhood ensemble took 7:37 on my machine, while the +Link ensemble only took 18 seconds longer. In other words, this is extremely efficient, because all of the links can be accepted/rejected in parallel.
Here is a more strongly coupled (κ=0.6) N=12 example of 100k configurations. The autocorrelation times when including the LinkUpdate were just about half (1783 for the Neighborhood, 869 for +Link). Moreover, again the Neighborhood-only ensemble took 7:32, the +Link ensemble took 7:43. This is a huge improvement for little computational time.
Part of #123, just to get going. In the Villain case the n update by ±W is particularly simple because different ns don't talk to one another. That lets us simply avoid a python loop by using numpy broadcasting.