# Dmrg of Heisenberg model

This example presents the infinite DMRG algorithm. It is about ${\displaystyle 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 ${\displaystyle {\mathfrak {H}}}$ with the base ${\displaystyle \{|S,S_{z}\rangle \}\equiv \{|1,1\rangle ,|1,0\rangle ,|1,-1\rangle \}}$. With this base the spin operators are ${\displaystyle S_{x}}$, ${\displaystyle S_{y}}$ and ${\displaystyle S_{z}}$ for the single site. For every "block", the two blocks and the two sites, there is its own Hilbert space ${\displaystyle {\mathfrak {H}}_{b}}$, its base ${\displaystyle \{|w_{i}\rangle \}}$ (${\displaystyle i:1\dots \dim({\mathfrak {H}}_{b})}$)and its own operators ${\displaystyle O_{b}:{\mathfrak {H}}_{b}\rightarrow {\mathfrak {H}}_{b}}$:

• Block: ${\displaystyle {\mathfrak {H}}_{B}}$, ${\displaystyle \{|u_{i}\rangle \}}$, ${\displaystyle H_{B}}$, ${\displaystyle S_{x_{B}}}$, ${\displaystyle S_{y_{B}}}$, ${\displaystyle S_{z_{B}}}$
• left-site: ${\displaystyle {\mathfrak {H}}_{l}}$, ${\displaystyle \{|t_{i}\rangle \}}$, ${\displaystyle S_{x_{l}}}$, ${\displaystyle S_{y_{l}}}$, ${\displaystyle S_{z_{l}}}$
• right-site: ${\displaystyle {\mathfrak {H}}_{r}}$, ${\displaystyle \{|s_{i}\rangle \}}$, ${\displaystyle S_{x_{r}}}$, ${\displaystyle S_{y_{r}}}$, ${\displaystyle S_{z_{r}}}$
• Universe: ${\displaystyle {\mathfrak {H}}_{U}}$, ${\displaystyle \{|r_{i}\rangle \}}$, ${\displaystyle H_{U}}$, ${\displaystyle S_{x_{U}}}$, ${\displaystyle S_{y_{U}}}$, ${\displaystyle S_{z_{U}}}$

At the starting point all four Hilbert spaces are equivalent to ${\displaystyle {\mathfrak {H}}}$, all spin operators are equivalent to ${\displaystyle S_{x}}$, ${\displaystyle S_{y}}$ and ${\displaystyle S_{z}}$ and ${\displaystyle 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 ${\displaystyle 3\times 3}$ matrices, the three left-site spin operators and the three right-site spin operators, which are always ${\displaystyle 3\times 3}$ 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:

${\displaystyle \mathbf {H} _{SB}=-J\sum _{\langle i,j\rangle }\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: ${\displaystyle {\mathfrak {H}}_{SB}={\mathfrak {H}}_{B}\otimes {\mathfrak {H}}_{l}\otimes {\mathfrak {H}}_{r}\otimes {\mathfrak {H}}_{U}}$, the base is ${\displaystyle \{|f\rangle =|u\rangle \otimes |t\rangle \otimes |s\rangle \otimes |r\rangle \}}$. For example: (convention):

${\displaystyle |1000\dots 0\rangle \equiv |f_{1}\rangle =|u_{1},t_{1},s_{1},r_{1}\rangle \equiv |100,100,100,100\rangle }$

${\displaystyle |0100\dots 0\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 ${\displaystyle J=-1}$):

${\displaystyle \mathbf {H} _{SB}=\mathbf {H} _{B}+\mathbf {H} _{U}+\sum _{\langle i,j\rangle }\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 ${\displaystyle (d*3*3*d)\times (d*3*3*d)}$ matrices, ${\displaystyle d=\dim({\mathfrak {H}}_{B})\equiv \dim({\mathfrak {H}}_{U})}$, for example:

${\displaystyle \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 }$

${\displaystyle \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 ${\displaystyle |\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 ${\displaystyle |\Psi \rangle }$.

### Step 3: Reduce Density Matrix

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

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

Form the ${\displaystyle (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: ${\displaystyle 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}}}$

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

${\displaystyle 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}}}$

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

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

${\displaystyle {\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.