Physics:DMRG of the Heisenberg model

From HandWiki

Within the study of the quantum many-body problem in physics, the DMRG analysis of the Heisenberg model is an important theoretical example applying techniques of the density matrix renormalization group (DMRG) to the Heisenberg model of a chain of spins. This article presents the "infinite" DMRG algorithm for the [math]\displaystyle{ S=1 }[/math] 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 [math]\displaystyle{ \mathfrak{H} }[/math] with the base [math]\displaystyle{ \{|S,S_z\rangle\}\equiv\{|1,1\rangle,|1,0\rangle,|1,-1\rangle\} }[/math]. With this base the spin operators are [math]\displaystyle{ S_x }[/math], [math]\displaystyle{ S_y }[/math] and [math]\displaystyle{ S_z }[/math] for the single site. For every block, the two blocks and the two sites, there is its own Hilbert space [math]\displaystyle{ \mathfrak{H}_b }[/math], its base [math]\displaystyle{ \{|w_i\rangle\} }[/math] ([math]\displaystyle{ i:1\dots \dim(\mathfrak{H}_b) }[/math])and its own operators [math]\displaystyle{ O_b:\mathfrak{H}_b\rightarrow\mathfrak{H}_b }[/math]where

  • block: [math]\displaystyle{ \mathfrak{H}_B }[/math], [math]\displaystyle{ \{|u_i\rangle\} }[/math], [math]\displaystyle{ H_B }[/math], [math]\displaystyle{ S_{x_B} }[/math], [math]\displaystyle{ S_{y_B} }[/math], [math]\displaystyle{ S_{z_B} }[/math]
  • left-site: [math]\displaystyle{ \mathfrak{H}_l }[/math], [math]\displaystyle{ \{|t_i\rangle\} }[/math], [math]\displaystyle{ S_{x_l} }[/math], [math]\displaystyle{ S_{y_l} }[/math], [math]\displaystyle{ S_{z_l} }[/math]
  • right-site: [math]\displaystyle{ \mathfrak{H}_r }[/math], [math]\displaystyle{ \{|s_i\rangle\} }[/math], [math]\displaystyle{ S_{x_r} }[/math], [math]\displaystyle{ S_{y_r} }[/math], [math]\displaystyle{ S_{z_r} }[/math]
  • universe: [math]\displaystyle{ \mathfrak{H}_U }[/math], [math]\displaystyle{ \{|r_i\rangle\} }[/math], [math]\displaystyle{ H_U }[/math], [math]\displaystyle{ S_{x_U} }[/math], [math]\displaystyle{ S_{y_U} }[/math], [math]\displaystyle{ S_{z_U} }[/math]

At the starting point all four Hilbert spaces are equivalent to [math]\displaystyle{ \mathfrak{H} }[/math], all spin operators are equivalent to [math]\displaystyle{ S_x }[/math], [math]\displaystyle{ S_y }[/math] and [math]\displaystyle{ S_z }[/math] and [math]\displaystyle{ H_B=H_U=0 }[/math]. 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 [math]\displaystyle{ 3\times3 }[/math] matrices, the three left-site spin operators and the three right-site spin operators, which are always [math]\displaystyle{ 3\times3 }[/math] 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:

[math]\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} }[/math]

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

[math]\displaystyle{ |1000\dots0\rangle\equiv|f_1\rangle=|u_1,t_1,s_1,r_1\rangle\equiv|100,100,100,100\rangle }[/math]

[math]\displaystyle{ |0100\dots0\rangle\equiv|f_2\rangle=|u_1,t_1,s_1,r_2\rangle\equiv|100,100,100,010\rangle }[/math]

The Hamiltonian in the DMRG form is (we set [math]\displaystyle{ J=-1 }[/math]):

[math]\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} }[/math]

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

[math]\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 }[/math]

[math]\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} }[/math]

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 [math]\displaystyle{ |\Psi\rangle=\sum\Psi_{i,j,k,w}|u_i,t_j,s_k,r_w\rangle }[/math] is the target state, expectation value of various operators can be measured at this point using [math]\displaystyle{ |\Psi\rangle }[/math].

Step 3: Reduce density matrix

Form the reduced density matrix [math]\displaystyle{ \rho }[/math] for the first two block system, the block and the left-site. By definition it is the [math]\displaystyle{ (d*3)\times(d*3) }[/math] matrix: [math]\displaystyle{ \rho_{i,j;i',j'}\equiv\sum_{k,w}\Psi_{i,j,k,w}\Psi^*_{i',j',k,w} }[/math]

Diagonalize [math]\displaystyle{ \rho }[/math] and form the [math]\displaystyle{ m\times (d*3) }[/math] matrix [math]\displaystyle{ T }[/math], which rows are the [math]\displaystyle{ m }[/math] eigenvectors associated with the [math]\displaystyle{ m }[/math] largest eigenvalues [math]\displaystyle{ e_\alpha }[/math] of [math]\displaystyle{ \rho }[/math]. So [math]\displaystyle{ T }[/math] is formed by the most significant eigenstates of the reduced density matrix. You choose [math]\displaystyle{ m }[/math] looking to the parameter [math]\displaystyle{ P_m\equiv\sum_{\alpha=1}^m e_\alpha }[/math]: [math]\displaystyle{ 1-P_m\cong 0 }[/math].

Step 4: New block and universe-block operators

Form the [math]\displaystyle{ (d*3)\times(d*3) }[/math] 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:

[math]\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} }[/math]

[math]\displaystyle{ S_{x_{B-l}}=\mathbb{I}\otimes S_{x_l} }[/math]

[math]\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} }[/math]

[math]\displaystyle{ S_{x_{r-U}}=S_{x_r}\otimes\mathbb{I} }[/math]

Now, form the [math]\displaystyle{ m\times m }[/math] matrix representations of the new block and universe-block operators, form a new block by changing basis with the transformation [math]\displaystyle{ T }[/math], for example:[math]\displaystyle{ \begin{matrix} &H_B=TH_{B-l}T^\dagger &S_{x_B}=TS_{x_{B-l}}T^\dagger \end{matrix} }[/math]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.

Further reading

See also

References