Tutorial 2

In this lecture, we will use pyUni10 to implement the iTEBD algorithm with U(1) symmety, and use it to study the Heisenberg model.

Symmetric Tensors

We will extend our discussion on pyUni10 to construct tensors with U(1) symmetry.

A symmetric tensor can be regarded as a tensor with bonds carrying quantum numbers.

_images/U1_tensor.jpg

For U(1) invariant tensors, the total U(1) quantum number of the tensor is zero. That is, the U(1) quantum numbers corresponding to incoming and outgoing indices,

\[N_{\rm in}=\sum_{n_l \in I} n_l,\quad N_{\rm out}=\sum_{n_l \in O} n_l,\]

should be equal.

One can form a U(1) invariant tensor network made of U(1) invariant tensors
_images/U1_Network.jpg

In pyUni10, a U(1) symmetric tensor is defined as a UniTensor object, which consists of bonds carrying quantum numbers.

_images/UniTensor.jpg

You can download the ipython notebook for this part of the tutorial: Tutorial2-1.ipynb.

iTEBD with U(1) Symmetry

We will use iTEBD with U(1) symmetry to study the 1D Heisenberg model,

\[H=\sum_{\langle ij\rangle} \mathbf{S}_i\cdot \mathbf{S}_j\]

You can download the ipython notebook for this part of the tutorial: Tutorial2-2.ipynb.

References

Tensor Network with U(1) Symmetry

1. Sukhwinder Singh, Robert N. C. Pfeifer, and Guifre Vidal, Tensor network states and algorithms in the presence of a global U(1) symmetry, Phys. Rev. B 83 115125 (2011), http://arxiv.org/abs/1008.4774