Let us consider an "infinite" DMRG algorithm for the S=1 antiferromagnetic
quantum Heisenberg chain. 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.
Starting point To simulate an infinite chain, start 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 operatorsO_b:\mathfrak{H}_b\rightarrow\mathfrak{H}_bwhere • 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. In the following iterations, this is only true for the 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_{\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: \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): The Hamiltonian in the
DMRG form is (we set J=-1): \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 (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: •
The Iterative Calculation of a Few of the Lowest Eigenvalues and Corresponding Eigenvectors of Large Real-Symmetric Matrices,
Ernest R. Davidson;
Journal of Computational Physics 17, 87-94 (1975) 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 reduced 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 eigenvalues e_\alpha of \rho. So T is formed by the most significant eigenstates of the reduced 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 the 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. ==Matrix product ansatz==