The main problem of quantum many-body physics is the fact that the Hilbert spacegrows exponentially with size. For example, a spin-1/2 chain of length L has 2Ldegrees of freedom. The DMRG is an iterative, variational method that reduces effective degrees of freedom to those most important for a target state. The target state is often the ground state. After a warmup cycle, the method splits the system into two subsystems, or blocks, which need not have equal sizes, and two sites in between. A set of representative states has been chosen for the block during the warmup. This set of left block + two sites + right block is known as the superblock. Now a candidate for the ground state of the superblock, which is a reduced version of the full system, may be found. It may have a rather poor accuracy, but the method is iterative and improves with the steps below. The candidate ground state that has been found is projected into the Hilbert subspace for each block using a density matrix, hence the name. Thus, the relevant states for each block are updated. Now one of the blocks grows at the expense of the other and the procedure is repeated. When the growing block reaches maximum size, the other starts to grow in its place. Each time we return to the original situation, we say that a sweep has been completed. Normally, a few sweeps are enough to get a precision of a part in 1010 for a 1D lattice. The first application of the DMRG, by Steven White and Reinhard Noack, was a toy model: to find the spectrum of a spin 0 particle in a 1D box. This model had been proposed by Kenneth G. Wilson as a test for any new renormalization group method, because they all happened to fail with this simple problem. The DMRG overcame the problems of previous renormalization group methods by connecting two blocks with the two sites in the middle rather than just adding a single site to a block at each step as well as by using the density matrix to identify the most important states to be kept at the end of each step. After succeeding with the toy model, the DMRG method was tried with success on the Heisenberg model.
Technical details about the implementation
A practical implementation of the DMRG algorithm is a lengthy work. A few of the main computational tricks are these:
The Lanczos algorithm usually starts with a random seed. In DMRG, the ground state obtained in a certain DMRG step, suitably transformed, may serve as a better seed for the Lanczos algorithm at the next DMRG step.
In systems with symmetries, we may have conserved quantum numbers, such as total spin in a Heisenberg model. It is convenient to find the ground state within each of the sectors into which the Hilbert space is divided.
The DMRG has been successfully applied to get the low energy properties of spin chains: Ising model in a transverse field, Heisenberg model, etc., fermionic systems, such as the Hubbard model, problems with impurities such as the Kondo effect, boson systems, and the physics of quantum dots joined with quantum wires. It has been also extended to work on tree graphs, and has found applications in the study of dendrimers. For 2D systems with one of the dimensions much larger than the other DMRG is also accurate, and has proved useful in the study of ladders. The method has been extended to study equilibrium statistical physics in 2D, and to analyze non-equilibrium phenomena in 1D. The DMRG has also been applied to the field of Quantum Chemistry to study strongly correlated systems.
The success of the DMRG for 1D systems is related to the fact that it is a variational method within the space of matrix product states. These are states of the form where are the values of the e.g. z-component of the spin in a spin chain, and the Asi are matrices of arbitrary dimension m. As m → ∞, the representation becomes exact. This theory was exposed by S. Rommer and S. Ostlund in .
Extensions of DMRG
In 2004 the time-evolving block decimation method was developed to implement real time evolution of Matrix Product States. The idea is based on the classical simulation of a quantum computer. Subsequently, a new method was devised to compute real time evolution within the DMRG formalism - See the paper by A. Feiguin and S.R. White . In recent years, some proposals to extend the method to 2D and 3D have been put forward, extending the definition of the Matrix Product States. See this paper by F. Verstraete and I. Cirac, .
Related software
: A free GPL set of tools for manipulating finite and infinite matrix product states written in C++
: a library implementing numerous tensor network algorithms in C++
Powder with Power: a free distribution of time-dependent DMRG code written in Fortran
The ALPS Project: a free distribution of time-independent DMRG code and Quantum Monte Carlo codes written in C++
: a free implementation of DMRG written in C++
The Library: a free library for performing tensor and matrix-product state based DMRG calculations written in C++
: an open source DMRG implementation based on Matrix Product States written in Python/Fortran2003.
Snake DMRG program: open source DMRG, tDMRG and finite temperature DMRG program written in C++