• No results found

2.2 Projector Monte Carlo with valence bond states

2.2.2 Steps in PMC method

The PMC algorithm starts with initializing valence-bond states and spin configurations that are compatible with bonds. In 1D N -site spin chains, it is natural to create a 1D array to label spins from 0 to N − 1, and assign spin and valence-bond states to them. For 2D spin system, we could linearize labellings by assigning numbers to spins row by row (or column by column) from 0 to N − 1 as well. Therefore, by simply changing initial labellings, 2D simulations could be very similar as 1D chains. For simplicity, we usually set Vα = Vβ and

Zα = Zβ, as shown in Fig. 2.4(a).

1. Diagonal updates

33

Figure 2.4: An illustration of some key steps in projector Monte Carlo algorithm with the loop update. The open and solid circles represent down and up spins. The open and solid rectangles represent diagonal and off-diagonal operators. Operator strings Sle and Srf

operate on states from the left and right ends for m times, to project the ground state out at around the midpoint of the path. For the demonstration purpose, here we only have m = 2. (a) We initialize valence bond states and spin configurations at boundaries. We insert diagonal operators on antiparallel spins. We then connect operator vortices to each other and also to the valence-bond states at boundaries to construct loops. (b) We choose loops to flip by probability 1/2. We label flipped loops in red dashed lines and un-flipped loops in black solid lines. The spins at boundaries are updated with corresponding loops. The operators located between two different types of loops switch their types as well — from diagonal to off-diagonal and vice versa. (c) The last step is to treat diagonal and off-diagonal operators as singlet projectors, in order to propagate bonds from two ends to the middle and carry out the observable measurements. We also update spins in the intermediate states according to operator types. We could also update diagonal operators to new legal positions as well, which is not shown in this figure. This is called one MC sweep.

operator can only be located on antiparallel spins as illustrated in Fig. 2.4(a). The spin configuration at each state is the same as initial Zα and Zβ for the first step

(before other updates take place). Here the operator string is the combination of both strings on the left and right sides, which is written as Sl,re,f = (Sle)TSrf.

2. Loop updates

After inserting all diagonal operators, we link all operator vortices, including the VB states at boundaries to form loops. An illustration is shown in Fig. 2.4(a). Each operator vortex has 4 legs and each leg belongs to one loop. After operator locations have been fixed, the loop structure is determined.

When the construction of loops is complete, we then choose loops to flip with proba- bility 1/2. As shown in Fig. 2.4(b), there are two loops formed in this “space-time” configuration. We use red dashed lines to label loops to be flipped. Please note here that, the spins on boundaries which are parts of the flagged loop should be flipped too, as shown in the left boundary of Fig. 2.4(b). This “flipping” also involves the update of operator type: operators that are located between flagged and not-flagged loops should change to the opposite type (diagonal ↔ off-diagonal). The reason that we could easily update operators and spins in loops is because the sampling weight Wlrαβ in Eq.(2.27) only depends on the number of operators, therefore, any loop update will be accepted. This elegant update might not work for anisotropic models. Instead, worm algorithm [70] and directed loop update [71] could be used in QMC to solve anisotropic models. e.g. Heisenberg model with external magnetic field.

3. Bond propagation

The next step is to propagate valence bonds according to current operator positions. As we learned from Eq.(2.21) and Fig.2.3, singlet projector projects out singlet pairs. Here we treat Cab(1) and Cab(2) operators as singlet projectors, and use them to

propagate the valence bond states to the midpoint of the propagation path, as shown in Fig. 2.4(c). The measurement is carried out at or around the midpoint, which we

35 will discuss more in Sec. 2.2.3. This procedure of switching back to the pure valence- bond basis is equivalent to summing over all spin-z configurations compatible with the bonds of the boundary bra and ket states. We want to point out here that the bond propagation step is not a part of the MC sampling, but for measuring expectation values within each MC sweep.

4. State updates

We also update states on boundaries. This is equivalent to sampling Wα,βlr with dif- ferent valence-bond states |Vαi and |Vβi. The methods in state updates have already

been discussed in Sec.2.1.4. 5. Diagonal update revisit

Now we go back to the diagonal update. After the first MC sweep, we have off-diagonal operators in the loop. Therefore, in the revisited diagonal update, we have two tasks, as demonstrated in Fig. 2.4(c): the first task is to update spins in each propagating states according to the operator type. As spins evolve from state |Vα(i)i to |Vα(i + 1)i,

where i ∈ [1, 2m−1], spins stay the same if there is a diagonal operator and flip signs if there is an off-diagonal operator. The Zα(2m) = Zβ(0) condition should be satisfied.

The second task is to update operators. We could move the diagonal operator to a new allowed position. We could not update the off-diagonal operator freely because this update might bring sign problems to the QMC simulation.

These are procedures in one MC sweep. By using the loop update, we could have more efficient updates, and also, loops guarantee that there will be even number of off-diagonal operators in the simulation, so the negative sign in Cab(2) in Eq.(2.25) are eliminated in

sampling weights. For the detailed implementation in pseducodes, please refer to the note for the Stochastic Series Expansion (SSE) algorithm in Ref. [21]. Though based on difference ideas, the implementation of SSE is very similar as PMC (the essential difference being in the “time” boundary condition, which is periodic in the SSE but given by the boundary state in PMC).

2 4 8 16 32 64 128 256 512 m/N 0.09 0.095 0.1 0.105 0.11 C(L/4)

Figure 2.5: The measurement of C(r) at r = (L/4, L/4) versus the number of propagation steps for 2D Heisenberg model on a square lattice with edge length L = 32. m is the number of propagation steps and N is the system size. The ratio m/N is plotted in a logarithmic scale. C(L/4, L/4) is not converged untill m/N reaches 16.