Tutorial 3

In this part of the tutorial, we will extend the ideas in one dimension to two dimensions.

2D iTEBD

We will construct a 2D version of imaginary-time iTEBD and apply it to obtain the ground state wave functions in the 2D transverse field Ising model (TFIM).

\[H=\sum_{\langle ij\rangle}\sigma_i^z \sigma_j^z + h \sum_i \sigma^x_i\]

We will extend the 1D iTEBD method to 2D. The sites are updated in pairs and the bonds are updated in the sequence of the four bonds shown in red in the following figure.

_images/2DiTEBD.jpg

Example

In the following, we give an example of the coordination number \(z=4\) for the virtual bonds of each tensor. We start with two tensors GA and GB, and diagonal matrices Ls on each bond:

_images/3-1.jpg

We want to update first bond 0 with Ls[0]. We first absorb Ls into the tensors (indicated as the red bonds.)

_images/3-2.jpg

We merge the bonds not being updated to a huge bond with bond dimensions \(\chi^3\)

_images/3-3.jpg

Relabeling the tensors so that pyUni10 knows how to contract them:

_images/3-4.jpg

Finally, we obtain a \(\Theta\) tensor of dimensions \(d \chi^3 \times d\chi^3\) by contracting GA, GB and U

_images/3-5.jpg

Performing SVD on \(\Theta\) and truncate the bond, we have three new tensors

  • U ( \(d \chi^3 \times \chi\) )
  • Ls[0] ( \(\chi \times \chi\) ), and
  • V t ( \(\chi \times d \chi^3\) )
_images/3-6.jpg

Thus we have new GA and GB merged with Ls[1], Ls[2] and Ls[3], and a new updated diagonal matrice Ls[0].

_images/3-7.jpg

To obtain GA, GB, we need to multiply the bonds with Ls[i] -1

_images/3-8.jpg

Repeat the same processes for the other bonds 1,2,and 3 to complete a single update.

You can download the ipython notebook Tutorial3-1.ipynb.

Tensor Renormalization Group

We will implement the tensor renormalization group (TRG) algorithm to compute the energy and magnetization in TFIM.

To compute the ground state expectation value for an operator \(\hat{O}\)

\[\langle \hat{O} \rangle =\frac{\langle \psi_0| \hat{O} |\psi_0 \rangle}{\langle \psi_0| \psi_0 \rangle }\]

To calculate the norm \(\langle \psi_0| \psi_0 \rangle\) in the denominator, we contract first the physical indices of the bra and ket tensors to get a double tensor T :

_images/Dtensor.jpg

For the numerator, we construct an impurity tensor T’ :

_images/Ditensor.jpg

The numerator corresponds to a tensor network like this:

_images/TRG_1.jpg

To contract the tensor network using TRG, first decompose the A-site and B-site tensors into two rank-3 tensors using SVD, and perform truncation:

_images/SVD_1.jpg _images/SVD_2.jpg

and we obtain,

_images/TRG_2.jpg

Contracting the tensors in the squares, we obtain a new tensor network with half of the size

_images/TRG_3.jpg

Repeat the process until only four tensors remain, and contract them to obtain \(\langle \psi_0| \hat{O} |\psi_0 \rangle\)

_images/TRG_4.jpg

Similarly, for \(\langle \psi_0| \psi_0 \rangle\)

_images/TRG_5.jpg

You can download the ipython notebook Tutorial3-2.ipynb.

You also need these network files: TRG.net and expectation.net.

The labels for the tensors in the helper functions can be found here.

The full python code for the 2D transverse Ising model can be found here.

Refereces

  1. J. Jordan, R. Orús, G. Vidal, F. Verstraete, and J. I. Cirac, Phys. Rev. Lett. 101, 250602 (2008), http://arxiv.org/abs/cond-mat/0703788
  2. H. C. Jiang, Z. Y. Weng, and T. Xiang, Accurate Determination of Tensor Network State of Quantum Lattice Models in Two Dimensions, Phys. Rev. Lett. 101, 090603 (2008), http://arxiv.org/abs/0806.3719
  3. H. H. Zhao, Z. Y. Xie, Q. N. Chen, Z. C. Wei, J. W. Cai, T. Xiang, Renormalization of Tensor-network States, Phys. Rev. B 81, 174411 (2010), http://arxiv.org/abs/1002.1405