| I have only skimmed through the article but spent a bit of time on the "simultaneous update" part because it caught my eyes. If I'm not mistaken the author made a mistake in assuming that it's okay not modifying the spins in the first pass and then doing the update in the second pass, which would cause the system to approach a strange equilibrium with that flips between two states. For example, if you set the simulation temperature to well below that of the critical temperature of the system, a robust algorithm should eventually cause all of the spins align (to take the same sign). Also, and if I'm not mistaken, the author may have misunderstood that these simulations show the evolution of a system over time -- I think they are meant to show the possible states that a system can be in under a set of conditions, trying to rationalise whether or not it's sensible that spins should or shouldn't is perhaps not quite the right approach. The robustness of these algorithms are usually tested by carefully collecting many samples, and at different temperatures, and use them to estimate known properties of the systems. If an algorithm fails to estimate those quantities reasonably, then there is a good chance that it's not correctly implemented. If you're interested in this topic, one paper that I can immediately remember and is easy to read is this: https://arxiv.org/pdf/cond-mat/9703179.pdf. The section on Wolff algorithm, in particular, should solve the "mystery" of the simultaneous update. Here is a demo I have played with a few years ago that has the Wolff algorithm correctly implemented: https://mattbierbaum.github.io/ising.js (make sure you change sweep skip to an odd number for simulations at lower temperatures). |
They mention in the book that simultaneous updates with a checkboard are in fact OK. One just has to make the checkboard out of large squares of spins instead of the single spins the author of this article uses, and occasionally move the squares around to prevent boundary effects.