# Dmrg of Heisenberg model

This example presents the infinite DMRG algorithm. It is about $S=1$ antiferromagnetic Heisenberg chain, but the recipe can be applied for every translationally invariant one-dimensional lattice. DMRG is a renormalization-group technique because it offers an efficient truncation of the Hilbert space of one-dimensional quantum systems.

## The algorithm

### The Starting Point

To simulate an infinite chain, starting with four sites. The first is the Block site, the last the Universe-Block site and the remaining are the added sites, the right one is "added" to the Universe-Block site and the other to the Block site.

The Hilbert space for the single site is $\mathfrak{H}$ with the base $\{|S,S_z\rangle\}\equiv\{|1,1\rangle,|1,0\rangle,|1,-1\rangle\}$. With this base the spin operators are $S_x$, $S_y$ and $S_z$ for the single site. For every "block", the two blocks and the two sites, there is its own Hilbert space $\mathfrak{H}_b$, its base $\{|w_i\rangle\}$ ($i:1\dots \dim(\mathfrak{H}_b)$)and its own operators $O_b:\mathfrak{H}_b\rightarrow\mathfrak{H}_b$:

• Block: $\mathfrak{H}_B$, $\{|u_i\rangle\}$, $H_B$, $S_{x_B}$, $S_{y_B}$, $S_{z_B}$
• left-site: $\mathfrak{H}_l$, $\{|t_i\rangle\}$, $S_{x_l}$, $S_{y_l}$, $S_{z_l}$
• right-site: $\mathfrak{H}_r$, $\{|s_i\rangle\}$, $S_{x_r}$, $S_{y_r}$, $S_{z_r}$
• Universe: $\mathfrak{H}_U$, $\{|r_i\rangle\}$, $H_U$, $S_{x_U}$, $S_{y_U}$, $S_{z_U}$

At the starting point all four Hilbert spaces are equivalent to $\mathfrak{H}$, all spin operators are equivalent to $S_x$, $S_y$ and $S_z$ and $H_B=H_U=0$. This is always (at every iterations) true only for left and right sites.

### Step 1: Form the Hamiltonian matrix for the Superblock

The ingredients are the four Block operators and the four Universe-Block operators, which at the first iteration are $3\times3$ matrices, the three left-site spin operators and the three right-site spin operators, which are always $3\times3$ matrices. The Hamiltonian matrix of the superblock (the chain), which at the first iteration has only four sites, is formed by these operators. In the Heisenberg antiferromagnetic S=1 model the Hamiltonian is:

$\mathbf{H}_{SB}=-J\sum_{}\mathbf{S}_{x_i}\mathbf{S}_{x_j}+\mathbf{S}_{y_i}\mathbf{S}_{y_j}+\mathbf{S}_{z_i}\mathbf{S}_{z_j}$

These operators live in the superblock state space: $\mathfrak{H}_{SB}=\mathfrak{H}_B\otimes\mathfrak{H}_l\otimes\mathfrak{H}_r\otimes\mathfrak{H}_U$, the base is $\{|f\rangle=|u\rangle\otimes|t\rangle\otimes|s\rangle\otimes|r\rangle\}$. For example: (convention):

$|1000\dots0\rangle\equiv|f_1\rangle=|u_1,t_1,s_1,r_1\rangle\equiv|100,100,100,100\rangle$

$|0100\dots0\rangle\equiv|f_2\rangle=|u_1,t_1,s_1,r_2\rangle\equiv|100,100,100,010\rangle$

The Hamiltonian in the DMRG form is (we set $J=-1$):

$\mathbf{H}_{SB}=\mathbf{H}_B+\mathbf{H}_U+\sum_{}\mathbf{S}_{x_i}\mathbf{S}_{x_j}+\mathbf{S}_{y_i}\mathbf{S}_{y_j}+\mathbf{S}_{z_i}\mathbf{S}_{z_j}$

The operators are $(d*3*3*d)\times(d*3*3*d)$ matrices, $d=\dim(\mathfrak{H}_B)\equiv\dim(\mathfrak{H}_U)$, for example:

$\langle f|\mathbf{H}_B|f'\rangle\equiv\langle u,t,s,r|H_B\otimes\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}|u',t',s',r'\rangle$

$\mathbf{S}_{x_B}\mathbf{S}_{x_l}=S_{x_B}\mathbb{I}\otimes\mathbb{I}S_{x_l}\otimes\mathbb{I}\mathbb{I}\otimes\mathbb{I}\mathbb{I}=S_{x_B}\otimes S_{x_l}\otimes\mathbb{I}\otimes\mathbb{I}$

### Step 2: Diagonalize the superblock Hamiltonian

At this point you must choose the eigenstate of the Hamiltonian for which some observables is calculated, this is the target state . At the beginning you can choose the ground state and use some advanced algorithm to find it, one of these is described in:

This step is the most time-consuming part of the algorithm.

If $|\Psi\rangle=\sum\Psi_{i,j,k,w}|u_i,t_j,s_k,r_w\rangle$ is the target state, expectation value of various operators can be measured at this point using $|\Psi\rangle$.

### Step 3: Reduce Density Matrix

Form the reduce density matrix $\rho$ for the first two block system, the Block and the left-site. By definition it is the $(d*3)\times(d*3)$ matrix: $\rho_{i,j;i',j'}\equiv\sum_{k,w}\Psi_{i,j,k,w}\Psi_{i',j',k,w}$ Diagonalize $\rho$ and form the $m\times (d*3)$ matrix $T$, which rows are the $m$ eigenvectors associated with the $m$ largest eigenvalue $e_\alpha$ of $\rho$. So $T$ is formed by the most significant eigenstates of the reduce density matrix. You choose $m$ looking to the parameter $P_m\equiv\sum_{\alpha=1}^m e_\alpha$: $1-P_m\cong 0$.

### Step 4: New, Block and Universe Block, operators

Form the $(d*3)\times(d*3)$ matrix representation of operators for the system composite of Block and left-site, and for the system composite of right-site and Universe-Block, for example: $H_{B-l}=H_B\otimes\mathbb{I}+S_{x_B}\otimes S_{x_l}+S_{y_B}\otimes S_{y_l}+S_{z_B}\otimes S_{z_l}$

$S_{x_{B-l}}=\mathbb{I}\otimes S_{x_l}$

$H_{r-U}=\mathbb{I}\otimes H_U+S_{x_r}\otimes S_{x_U}+S_{y_r}\otimes S_{y_U}+S_{z_r}\otimes S_{z_U}$

$S_{x_{r-U}}=S_{x_r}\otimes\mathbb{I}$

Now, form the $m\times m$ matrix representations of the new Block and Universe-Block operators, form a new block by changing basis with the transformation $T$, for example:

$\begin{matrix} &H_B=TH_{B-l}T^\dagger &S_{x_B}=TS_{x_{B-l}}T^\dagger \end{matrix}$

At this point the iteration is ended and the algorithm goes back to step 1. The algorithm stops successfully when the observable converges to some value.