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.

Wed Mar 1 10:19:35 EST 1995