Using the Suzuki-Trotter transformation , the two-dimensional quantum problem is converted into three-dimensional classical Ising spins with complicated interactions. The partition function becomes a product of transfer matrices for each four-spin interaction
with . These four-spin squares go in the time direction
on the three-dimensional lattice. This transfer matrix serves as the
probability basis for a Monte Carlo simulation. The
zero matrix elements are the consequence of the quantum conservation
law. To avoid generating trial configurations with zero probability,
thus wasting the CPU time since these trials will never be accepted,
one should have the conservation law built into the updating scheme.
Two types of local moves may locally change the spin configurations, as
shown in Figure 6.6. A global move in the time direction
flips all the spins along this time line. This update changes the
magnetization. Another global move in spatial directions changes the
winding numbers.
Figure 6.6: (a) A ``Time-Flip.'' The white plaquette is a
non-interacting one. The eight plaquettes surrounding it are interacting
ones. (b) A ``Space-Flip.'' The white
plaquette is a
non-interacting one lying in spatial dimensions. The four plaquettes
going in time direction are interacting ones.
This classical spin system in three dimensions is simulated using the
Metropolis Monte Carlo algorithm. Starting with a
given initial configuration, we locate a closed loop C of L spins,
in one of the four moves. After checking that they satisfy the
conservation law, we compute , the probability before all L
spins are flipped, which is a product of the diagonal elements of the
transfer matrix; and
, the probability after the spins are
flipped, which is a product of the off-diagonal elements of the
transfer matrix along the loop C. The Metropolis procedure is to
accept the flip according to the probability
.
Figure 6.7: A Vectorization of Eight ``Time-Flips.'' Spins along the
t-direction are packed into computer words. The two 32-bit words,
S1 and S2, contain eight ``time plaquettes,'' indicated by the dashed
lines.
We implemented a simple and efficient multispin coding method which facilitates vectorization and saves index calculation and memory space. This is possible because each spin only has two states, up (1) or down (0), which is represented by a single bit in a 32-bit integer. Spins along the t-direction are packed into 32-bit words, so that the boundary communication along the x or y direction can be handled more easily. All the necessary checks and updates can be handled by the bitwise logical operations OR, AND, NOT, and XOR. Note that this is a natural vectorization, since AND operations for the 32 spins are carried out in the single AND operation by the CPU. The index calculations to address these individual spins are also minimized, because one only computes the index once for the 32 spins. The same principles are applied for both local and global moves. Figure 6.7 shows the case for time-loop coding.