text:
# An introduction to numerical methods in low-dimensional quantum systems

## Chapter 1 Introduction

From a mathematical point of view, quantum mechanics can be regarded in many respects as an eigenvalue problem. Typically, one has to to calculate eigenvalue and eigenvectors of Hamiltonians. Very often, especially in low temperature problems, the knowledge of the ground state and the first few excited states yields considerable insight into the physics of a given system. Symmetry properties and the known quantum numbers of the desired state can be used to reduce the Hilbert space. However, even a large reduction factor will eventually be overcome by the exponential growth. This means that requirements for memory and running time of relatively small systems can be prohibitive, even for the best computers, when a full diagonalization of a finite cluster is attempted. Typically, many degrees of freedom have to be integrated out of the original problem to make it accessible to present day computer capacities.

This notes consist of an introductory course to the Lanczos Method and Density Matrix Renormalization Group Algorithms(DMRG), two among the leading numerical techniques applied in studies of low-dimensional quantum models. Another important numerical technique, the Quantum Monte Carlo, is discussed by R. R. dos Santos in his notes for this School. The numerical approach allows for a direct and unbiased calculation of physical properties for finite clusters, from which a phase diagram can be constructed.

For those outside the field of one- or two-dimensional quantum systems it may seem that working on a such low-dimensional is completely irrelevant to three-dimensional reality. However, there are in fact may reasons for working in lower-dimensional physics, in both statistical mechanics as well as other fields.

First, restricting study to one dimension continues to demonstrate itself as an efficient and effective laboratory for the development and consideration of new theoretical ideas, many of which are intended for application to real higher-dimensional. Both thermal and quantum fluctuation effects are larger in lower dimensions.

Secondly, there are in fact real systems which demonstrate a high degree of low-dimensionality, at least in condensed matter physics.

Thirdly, one-dimensional systems share the possibility with higher-dimensional systems of undergoing quantum phase transitions as some parameter is varied while holding the temperature fixed at $`T=0`$. In experimental situations, this parameter could be pressure or doping, for example, such as in the case of high temperature superconductors where, upon the variation of doping, the ground state ranges from antiferromagnetic to superconducting.

This manuscript is organized in the following way. In Section 2 the Hamiltonians for the Hubbard, $`tJ`$ and Heisenberg models are defined. This models and their generalizations are aimed to describe the microscopic features of matter. Besides that, they present rich matematical aspects. In Section 3, the idea of studying the models on clusters of a finite size in order to extract their physical properties is discussed. The important role played by the model symmetries is also examined. In Section 4 the Lanczos method is presented and some of its most popular generalizations discussed. In Section 5 we start by examining the basic ingredients of the DMRG method and presenting the two kinds of DMRG algorithms. Then, the way measurements of observables are performed in DMRG is discussed and, finally, the most important additions to the original method are briefly mentioned. Section 6 contains some final comments and the acknowledgments.

## Chapter 2 Models

In this Section we present some representative quantum models. These models and their generalizations have wide applicability in statistical mechanics as well as in condensed matter physics.

### 2.1 The Hubbard Model

A starting point for the microscopic approach to electron motion in crystals may be obtained by analyzing the energy levels of the atoms involved. Lattice models are used, because the atomic structure in the physical systems determines the possible places at which the electron can be found. If two neighboring atoms have overlapping orbitals with very similar energies, the orbitals can hybridize and allow electrons to travel from one atom to the other. On the other hand, the repulsion between electrons is very strong due to their charge. The simplest approximation for the interaction between the electrons is to restrict it to the case when both electrons are on the same site (or atom). On-site Coulomb repulsion and nearest-neighbour (n.n.) hopping are already the terms of the Hubbard model, which can be characterized by the Hamiltonian

$$H_{Hub}=t\underset{ij\sigma }{}(c_{i\sigma }^{}c_{j\sigma }+h.c.)+U\underset{i}{}n_in_i,$$
(2.1)
where $`c_{i\sigma }^{}(c_{j\sigma })`$ is a creation (annihilation) operator for an electron of spin $`\sigma =,`$ in a Wannier orbital at lattice site $`i`$ and $`ij`$ denotes n.n. pairs. In the sum, bonds $`ij`$ are summed over only once each. Here $`t`$ is the matrix element for tunneling from one lattice site to a neighbouring one, i.e. the overlap of n.n. electron wavefuctions. The letters $`h.c.`$ denote the Hermitian conjugate of the immediately preceding term. The fermionic operators obey the anticommutation relations

$$\{c_{i\alpha },c_{j\beta }^{}\}=\delta _{ij}\delta _{\alpha \beta }$$
(2.2)
and

$$\{c_{i\alpha },c_{j\beta }\}=0.$$
(2.3)
Also, $`n_{i\sigma }=c_{i\sigma }^{}c_{i\sigma }`$ is the number operator for electrons of spin $`\sigma `$ at site $`i`$, and $`U`$ the Coulomb repulsion. The charge or number operator at site $`i`$ is

$$n_i=\underset{\sigma }{}n_{i\sigma }=n_i+n_i.$$
(2.4)
The states of the model are given by specifying the four possible configurations of each site (its level can either be empty, contain one electron with either of two spins, or two electrons of opposite spins) on a lattice made of $`L`$ sites.

However, the knowledge of the parameters $`t`$ and $`U`$ is not enough to characterize the system. One also needs to know:

* The dimensionality of the system, i.e., whether it is a one-dimensional (1D) chain, a two-dimensional (2D) plane or a full three-dimensional (3D) system.
* The geometry of the lattice. The lattice structure can introduce frustation, and its symmetry properties greatly influence the behaviour of electrons traveling them.
* The boundary conditions (BC), i.e., whether the lattice is opened, closed or has some special condition at its surface.
* The filling or density,

$$n=\frac{1}{L}\underset{i\sigma }{}n_{i\sigma },$$
(2.5)
where $`\mathrm{}`$ denotes a ground state expectation value.
* The temperature $`T`$ which is the third energy scale along with $`t`$ and $`U`$.

The first term in Hamiltonian Eq. (2.1) is called hopping term and the second one Coulomb term. The hopping term alone can be shown to lead to a conventional band spectrum and one-electron Bloch levels in which each electron is distributed throughout the entire crystal (a metal). The Coulomb term alone would favor local magnetic moments, since it suppress the possibility of a second electron (with oppositely directed spin) at singly occupied sites (an insulator). When both terms are present the competition among them brings about a transition between the metallic phase and the Mott insulating phase.

### 2.2 The $`tJ`$ Model

If the Hubbard model is considered in the limit where $`U/t`$ is large, the strong coupling limit, the number of doubly occupied sites is small. This leads to the derivation of effective models, most prominently the $`tJ`$ model. In the $`tJ`$ model, the Hubbarb model complexity is reduced by projecting out the states with double occupancy. Using this procedure one gets the $`tJ`$ Hamiltonian

$$H_{tJ}=t\underset{ij\sigma }{}(\stackrel{~}{c}_{i\sigma }^{}\stackrel{~}{c}_{j\sigma }+h.c.)+J\underset{ij}{}(\stackrel{}{S}_i\stackrel{}{S}_j\frac{1}{4}n_in_j),$$
(2.6)
where

$$\stackrel{}{S}_i=\underset{\alpha \beta }{}c_{i\alpha }^{}\frac{1}{2}\stackrel{}{\sigma }_{\alpha \beta }c_{i\beta }$$
(2.7)
is the electron spin operator at site $`i`$, with

$$\stackrel{}{\sigma }=[\sigma ^x,\sigma ^y,\sigma ^z]=[\left(\begin{array}{cc}0& 1\\ 1& 0\end{array}\right),\left(\begin{array}{cc}0& i\\ i& 0\end{array}\right),\left(\begin{array}{cc}1& 0\\ 0& 1\end{array}\right)]$$
(2.8)
being the Pauli matrices. The tilde on the $`c`$-operators in the hopping term refers to the fact that a creation operator cannot introduce an electron on a site where another electron, even of the opposite spin, is already located. Formally, one would express this as

$$\stackrel{~}{c}_{i\sigma }^{}=c_{i\sigma }^{}(1n_{i,\sigma })\text{and, thus,}\stackrel{~}{c}_{i\sigma }=(1n_{i,\sigma })c_{i\sigma }.$$
(2.9)
In the derivation of the $`tJ`$ model from the Hubbard model, one takes in account intermediate double occupancies between states which are suppressed by their high energy but help to lower the kinetic energy by making the electrons more mobile. In such processes, an electron hops on an already occupied site, then either electron can hop back to the original site. Double occupancies are forbidden in the $`tJ`$ model, but the physics can be included by adding an additional term. Since the intermediate processes in the Hubbard model are only possible if the electrons on the adjacent sites have opposite spin, this term can be described by an interaction that favors the singlet state compared to the triplet state. This is precisely what the second term in Hamiltonian Eq. (2.6) does. To show this, we note that $`\stackrel{}{S}_i\stackrel{}{S}_j`$ has two eigenvalues: if the two electrons are in a singlet state, the eigenvalue is -3/4, and if the electrons form a triplet, the energy is 1/4. If the effect of the $`\frac{1}{4}n_in_j`$-term is included, one gets the following energies from the $`J`$-term:

$$\begin{array}{cc}\hfill \text{one or both sites unoccupied}& 0\\ \hfill \text{spins on both sites forming a triplet state}& 0\\ \hfill \text{spins on both sites forming a singlet state}& J.\end{array}$$

Therefore, the term effectively lowers the energy for states in which two electrons with opposite spin are on adjacent sites. From second order perturbation theory of the Hubbard model we obtain $`J=4t^2/U`$.

### 2.3 The Heisenberg Model

In the case of half-filling $`(n=1)`$, when $`n_i1`$ for all sites, hopping becomes impossible in the $`tJ`$ model. In addition, the $`\frac{1}{4}n_in_j`$-term is reduced to a constant. Thus, both terms can be neglected and the $`tJ`$ model at half filling is a spin 1/2 Heisenberg model,

$$H_{Heis}=J\underset{ij}{}\left(\stackrel{}{S}_i\stackrel{}{S}_j\right).$$
(2.10)
It is important to remember that this is an effective model, i.e., although the spins in the model are localized they are meant to describe a system of mobile electrons. The $`\stackrel{}{S}_i\stackrel{}{S}_j`$ interaction is called a spin exchange interaction.

All these models were originally designed to describe physical systems. The Heisenberg model was introduced before the Hubbard model and is not restricted to just spin 1/2 systems. The restriction in the above case resulted from the fact that electrons are spin 1/2 fermions.

A possible generalization for these models is to extend the n.n. summation to more distant neighbours.

## Chapter 3 The Study of Finite Size Systems

Having set up Hamiltonians which are believed to contain the physics we are interested on, we are left with the formidable task of calculating measurable quantities to gain some understanding of the models.

Here we choose to work with two unbiased numerical techniques namely, Lanczos and DMRG. These methods are unbiased (i.e., in contrast to mean-field based approaches) in the sense that they do not make an initial assumption on the nature of the ground state of the system. However, as we will see later, each of these numerical methods has its limitations.

In studying finite size systems the general idea is to construct a matrix representation of the Hamiltonian for a given number of sites (system size). The Hamiltonian is then diagonalized in order to obtain the spectra and calculate measurable quantities, e.g., spin and charge correlation functions. We repeat that for systems of different sizes and extrapolate the results toward an infinite size system (i.e., towards the thermodynamic limit). This agenda is usually well succeeded provided that we have enough data for a reliable extrapolation. The number of lattices with different sizes needed for the extrapolation procedure to converge depends heavily on the model being studied and even on the set of parameters being used for a given model. The Finite Size Scaling theory is specially useful when critical behaviour is present since, in this case, a strong dependence of the physical quantities on the system size is expected. However, in many cases a fairly good ideia of the properties in the thermodynamic limit can be achieved by examining just a few system sizes. The models we are dealing with involve many parameters (e.g., $`n,t,U,`$ and $`J`$ in the models of Section 2). In order to build up a phase diagram we have to systematically cover the model parameter space to see how the physical quantities depend on each of these parameters.

We can roughly divide the above task in two steps:

* Build up a representation for the Hamiltonian, diagonalize it, and calculate the measurable relevant quantities.
* Interpret the results and construct the phase diagram.

The second step strongly depends on the model being studied and on what kind of physics we are looking at. If the subject being studied is an advanced topic in physics (as it usually is), then a considerable experience in that field of research might be necessary to carry that step out. On the other hand, the first one is, in principle, much more simple and involves the knowledge of basic concepts in quantum mechanics and numerical analysis; topics covered in most undergraduation courses in physics. The Lanczos and DMRG are tools for carrying out the first step. To understand why such special techniques are needed let us suppose the Heisenberg model is to be studied on a lattice of $`L`$ sites. Each site has two possible states: spin up and down. A lattice with $`L`$ sites has $`2^L`$ states and this is the dimension of the Hamiltonian matrix. Similarly, for the $`tJ`$ and Hubbard models we have $`3^L`$ and $`4^L`$, respectively. Due to this exponential growth with $`L`$ even small lattices (typically 10 sites or so) generate Hamiltonians too big to be handled by present-day computers using standard diagonalization algorithms.

### 3.1 Symmetries

In the process of constructing a representation for the Hamiltonian it is very useful to take advantage of the model symmetries. Many models, including those presented in Section 2, exhibit conservation of total spin number, total spin in the $`z`$-direction and total charge, i.e.,

$$[H,(\stackrel{}{S})^2]=[H,S^z]=[H,N]=0,$$
(3.1)
where $`H`$ is the model Hamiltonian and

$`\stackrel{}{S}`$ $`=`$ $`{\displaystyle \underset{i}{}}\stackrel{}{S}_i`$ (3.2)
$`N`$ $`=`$ $`{\displaystyle \underset{i}{}}n_i.`$ (3.3)
In addition, these operators also commute with one another, i.e.,

$$[(\stackrel{}{S})^2,S^z]=[S^z,N]=[N,\stackrel{}{S}^2]=0,$$
(3.4)
so that the eigenvalues of $`H,\stackrel{}{S},S^z`$, and $`N`$ are simultaneous good quantum numbers, which we will denote simply by $`E,S(S+1),S^z`$, and $`N`$ respectively.111It will be clear from the context whether by $`S^z`$ or $`N`$ we mean the operator or its eigenvalue. In the numerical treatment of a given model it is possible to consider eigenstates which simultaneously diagonalize $`H`$ and all operators associated to its symmetries. We do this by choosing to work in a representation in which the symmetry operators are always diagonal, selecting a subspace or sector of Hilbert space with particular eigenvalues of those operators, and diagonalizing $`H`$ in this particular sector. As exemplified below, total spin in the $`z`$-direction and total charge are easily implemented. However, total spin quantum number $`(\stackrel{}{S})^2`$ is much more difficult to specify, and also quite difficult to measure, since in terms of the fundamental operators $`c_{i\sigma }`$ it is extremely non-local:

$$(\stackrel{}{S})^2=\underset{ij}{}=\underset{aij\alpha \beta \gamma \delta }{}c_{i\alpha }^{}\frac{1}{2}\sigma _{\alpha \beta }^ac_{i\beta }c_{j\gamma }^{}\frac{1}{2}\sigma _{\gamma \delta }^ac_{j\delta },$$
(3.5)
where $`i`$ and $`j`$ both run throughout the entire lattice, i.e., they do not just represent n.n. terms. However, in cases in which choosing the direction of quantization in the $`z`$-axis is arbitrary, i.e., in which there is full rotational (or $`SU(2)`$) symmetry, the eigenvalues of $`H`$, $`N`$, and $`\stackrel{}{S}^2`$ will be independent of the eigenvalues of $`S^z`$, which may assume any value ranging from $`S`$ to $`S`$. This can be quite useful in determining the total spin quantum number $`S`$ of the ground state if it is only possible to specify the projection $`S^z`$ in the method of investigation.

Let us denote by $`E(S^z)`$ the ground state in the sector specified by the spin projection $`S^z`$. If $`E(S^z)<E(S^z+1)`$ and $`E(S^z)=E(S^z1)=\mathrm{}=E(S_{min}^z)`$, where

$$S_{min}^z=\{\begin{array}{cc}0\hfill & \text{if }S^z\text{ integer}\hfill \\ \frac{1}{2}\hfill & \text{if }S^z\text{ half-odd-integer},\hfill \end{array}$$
(3.6)
then the absolute ground state, (i.e., that in the Hilbert space unrestricted by the specification of $`S^z`$) contains a state of spin $`S^z`$ and no states of any higher spin.

Strongly correlated electron models also often exhibit a particle-hole symmetry. This symmetry relates the creation of an electron to its destruction in the following way. Consider the transformation

$$\mathrm{PH}:c_{i\sigma }(1)^ic_{i\sigma }^{}.$$
(3.7)
Under this transformation, the n.n. hopping terms transform according to

$$\mathrm{PH}:c_{i\sigma }^{}c_{i+1,\sigma }+h.c.c_{i\sigma }c_{i+1,\sigma }^{}+h.c.=c_{i+1,\sigma }^{}c_{i\sigma }+h.c.=c_{i\sigma }^{}c_{i+1,\sigma }+h.c.,$$
(3.8)
remaining unchanged under this transformation. However, the number operators transform according to

$`\mathrm{PH}:n_{i\sigma }=c_{i\sigma }^{}c_{i\sigma }`$ $``$ $`c_{i\sigma }c_{i\sigma }^{}=1c_{i\sigma }^{}c_{i\sigma }=1n_{i\sigma }`$ (3.9)
$`\mathrm{PH}:n_i`$ $``$ $`2n_i`$ (3.10)
$`\mathrm{PH}:N`$ $``$ $`2LN,`$ (3.11)
and similarly the conduction electron spin operator transforms according to

$`\mathrm{PH}:\stackrel{}{s}_i=(s_i^x,s_i^y,s_i^z)`$ $``$ $`(s_i^x,s_i^y,s_i^z)=\mathrm{R}\stackrel{}{s}_i`$ (3.12)
$`\mathrm{PH}:\stackrel{}{S}=(S^x,S^y,S^z)`$ $``$ $`(S^x,S^y,S^z)=\mathrm{R}\stackrel{}{S}`$ (3.13)
$`\mathrm{PH}:\stackrel{}{S}^2`$ $``$ $`\stackrel{}{S}^2.`$ (3.14)
Here R represents a spin rotation by $`\pi `$ about the $`y`$-axis. If this particle-hole symmetry applies to the full Hamiltonian, i.e. not only to its non-interacting kinetic part as shown here but also its interaction terms, then there will be a one-to-one correspondence between eigenstates with quantum number $`(E,S,S^z,N)`$ and $`(E,S,S^z,2LN)`$. In particular, if we wish to determine the properties of a system away from half-filling, we need only do this below half-filling and the physics above half-filling will be identical.

In order to reduce finite size effects it is common to work with periodic boundary conditions (PBC) to eliminate the lattice surface in given a direction. In this case, the system gains translational invariance in that direction222In fact, a cyclic BC is enough to gain translational invariance.. This symmetry express itself through the commutation of $`H`$ with the translational operator $`T`$, which can be defined as

$$T|d_1d_2\mathrm{}d_{L1}d_L=|d_2d_3\mathrm{}d_Ld_1,$$
(3.15)
where

$$|d_1d_2\mathrm{}d_{L1}d_L=|d_1|d_2,\mathrm{},|d_{L1}|d_L$$
(3.16)
and $`d_i`$ is the state at site $`i`$ (e.g., for the Hubbard model $`d_i`$ can be either one electron with spin up or down, two electrons with opposite spins, or an empty site). In Eq. (3.15) we have assumed, for the sake of simplicity, a one dimensional lattice of size $`L`$. In higher dimensions translational invariance in each direction can be treated separately. The eigenvalues of $`T`$ are $`e^{i\frac{2\pi }{L}k},k=0,1,2,\mathrm{},L1`$, which we will label by the number $`k`$. An eigenstate $`\varphi _k`$ of $`T`$ with eigenvalue $`k`$ is given by

$$\varphi _k=C\left[1+U+U^2+U^3+\mathrm{}+U^{L1}\right]|d_1d_2\mathrm{}d_{L1}d_L,$$
(3.17)
where $`U=e^{i\frac{2\pi }{L}k}T`$ and $`C`$ a normalization constant. If $`\varphi _k=0`$ then is not possible to construct a state with momentum $`k`$ from $`|d_1d_2\mathrm{}d_{L1}d_L`$. Note that $`S,N,S^z`$, and $`k`$ are simultaneous good quantum numbers.

Another symmetry shared by all the models introduced and Section 2 and many others is the charge-conjugation symmetry. This symmetry implies a one to one correspondence between eigenstates with quantum number $`(E,S,S^z,N)`$ and $`(E,S,S^z,N)`$ and is present if the Hamiltonian commutes with the parity operator, whose effect is to flip the particle spin $`(|\mathrm{0\; 0}|\mathrm{0\; 0})`$. In the presence of charge-conjugation symmetry we can choose to work only with $`S^z0`$ or only with $`S^z0`$.

Let us consider the $`tJ`$ model on a chain with four sites under PBC. Each site can be in one of the following states: one electron with spin up $`(|)`$ or down $`(|)`$, or empty $`(|0)`$. The dimension of total Hilbert space is $`3^L=3^4=81`$. We divide the Hilbert space in sectors labeled by the quantum numbers $`N,S^z`$, and $`k`$. Below, we denote each sector by $`[N,S^z,k,\text{(dimension of the sector)}]`$ and write down the states for some illustrative cases.

* $`[0,0,0,1]`$
* $`[1,0.5,0,1][1,0.5,1,1][1,0.5,2,1][1,0.5,3,1]`$
* $`[2,0,0,3]`$

$`\varphi _{[2,0,0,3]}^{(1)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}+|00+|\mathrm{0\; 0}+|\mathrm{0\; 0})`$
$`\varphi _{[2,0,0,3]}^{(2)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}+|00+|\mathrm{0\; 0}+|\mathrm{0\; 0})`$
$`\varphi _{[2,0,0,3]}^{(3)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|00+|00+|00+|00)`$
* $`[2,0,1,3]`$

$`\varphi _{[2,0,1,3]}^{(1)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}+i|00|\mathrm{0\; 0}i|\mathrm{0\; 0})`$
$`\varphi _{[2,0,1,3]}^{(2)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}+i|00|\mathrm{0\; 0}i|\mathrm{0\; 0})`$
$`\varphi _{[2,0,1,3]}^{(3)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|00+i|00|00i|00)`$
* $`[2,0,2,3]`$

$`\varphi _{[2,0,2,3]}^{(1)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}|00+|\mathrm{0\; 0}|\mathrm{0\; 0})`$
$`\varphi _{[2,0,2,3]}^{(2)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}|00+|\mathrm{0\; 0}|\mathrm{0\; 0})`$
$`\varphi _{[2,0,2,3]}^{(3)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|00|00+|00|00)`$
* $`[2,0,3,3]`$

$`\varphi _{[2,0,3,3]}^{(1)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}i|00|\mathrm{0\; 0}+i|\mathrm{0\; 0})`$
$`\varphi _{[2,0,3,3]}^{(2)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}i|00|\mathrm{0\; 0}+i|\mathrm{0\; 0})`$
$`\varphi _{[2,0,3,3]}^{(3)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|00i|00|00+i|00)`$
* $`[2,1,0,2]`$

$`\varphi _{[2,1,0,2]}^{(1)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}+|00+|\mathrm{0\; 0}+|\mathrm{0\; 0})`$
$`\varphi _{[2,1,0,2]}^{(2)}`$ $`=`$ $`{\displaystyle \frac{1}{\sqrt{2}}}(|00+|00)`$
* $`[2,1,1,1]`$

$$\varphi _{[2,1,1,1]}^{(1)}=\frac{1}{2}(|\mathrm{0\; 0}+i|00|\mathrm{0\; 0}i|\mathrm{0\; 0})$$
* $`[2,1,2,2]`$

$`\varphi _{[2,1,2,2]}^{(1)}`$ $`=`$ $`{\displaystyle \frac{1}{2}}(|\mathrm{0\; 0}|00+|\mathrm{0\; 0}+|\mathrm{0\; 0})`$
$`\varphi _{[2,1,2,2]}^{(2)}`$ $`=`$ $`{\displaystyle \frac{1}{\sqrt{2}}}(|00|00)`$
* $`[2,1,3,1]`$

$$\varphi _{[2,1,3,1]}^{(1)}=\frac{1}{2}(|\mathrm{0\; 0}i|00|\mathrm{0\; 0}+i|\mathrm{0\; 0})$$
* $`[3,0.5,0,3][3,0.5,1,3][3,0.5,2,3][3,0.5,3,3]`$
* $`[3,1.5,0,1][3,1.5,1,1][3,1.5,2,1][3,1.5,3,1]`$
* $`[4,0,0,2][4,0,1,1][4,0,2,2][4,0,3,1]`$
* $`[4,1,0,1][4,1,1,1][4,1,2,1][4,1,3,1]`$
* $`[4,2,0,1]`$

The example above give an ideia of how helpful symmetry implementation can be. Indeed, a further reduction in the Hilbert space can be achieved in some cases by considering a lattice reflection symmetry, namely $`[W,H_{tJ}]=0`$, where

$$W|d_1d_2\mathrm{}d_{L1}d_L=|d_Ld_{L1}\mathrm{}d_2d_1.$$
(3.18)
The eigenvalues of $`W`$ are: +1 and -1. For instance, the sector $`[2,0,0,3]`$ can be broken in two subspaces, indexed by $`W=1([2,0,0,1,1])`$ and +1 $`([2,0,0,1,2])`$, and given by:

* $`[2,0,0,1,1]`$

$$\varphi _{[2,0,0,1,1]}^{(1)}=\frac{1}{\sqrt{2}}(\varphi _{[2,0,0,3]}^{(1)}\varphi _{[2,0,0,3]}^{(2)})$$
* $`([2,0,0,1,2])`$

$`\varphi _{[2,0,0,1,2]}^{(1)}`$ $`=`$ $`{\displaystyle \frac{1}{\sqrt{2}}}(\varphi _{[2,0,0,3]}^{(1)}+\varphi _{[2,0,0,3]}^{(2)})`$
$`\varphi _{[2,0,0,1,2]}^{(2)}`$ $`=`$ $`\varphi _{[2,0,0,3]}^{(3)}.`$

In higher dimensions, besides reflection with respect to different axes, rotations by several angles are also available. Note that these operations might or might not commute with the translational operator depending on the value of $`k`$. For instance, reflection symmetry can not be employed to break sector $`[2,0,1,3]`$ in sub-sectors.

By implementing the model symmetries we can significantly reduce the computational effort required for diagonalizing the Hamiltonian. In some cases we can study lattices large enough to reveal bulk properties using standard routines to diagonalize each sector of the Hamiltonian. For instance, a 4$`\times `$4 Heisenberg system can be fully diagonalized if most symmetries discussed above are implemented. Since this approach yields the full spectrum we can construct the exact partition function for the system and, therefore, obtain the thermal behaviour exactly at arbitrary temperature.333As discussed below, this is a commodity we will not have when working with Lanczos or DMRG methods.

## Chapter 4 Lanczos Method

In this Section, an algorithm is presented which allows us to determine numerically the ground state and some excited states for Hamiltonian operators on finite clusters. The basic idea of the Lanczos method is that a special basis can be constructed where the Hamiltonian has a tridiagonal representation. Once in this form the ground state of the matrix can be found easily using standard library subroutines such as Numerical Recipes or IMSL.

The tridiagonal matrix is constructed iteratively. First, it is necessary to select an arbitrary normalized vector $`|\psi _0`$ in the Hilbert space of the model being studied. The overlap between the actual ground state $`|\mathrm{\Psi }_0`$, and the initial state $`|\psi _0`$ should be nonzero. If no a priori information about the ground state is known, this requirement is usually easily satisfied by selecting an initial state with randomly chosen coefficients in the working basis that is being used. If some other information of the ground state is known, like its total momentum and spin, then it is convenient to initiate the iterations with a state already belonging to the subspace having those quantum numbers (and still with random coefficients within this subspace).

After $`|\psi _0`$ is selected, we define a new vector by applying the Hamiltonian $`H`$ to the initial state. Subtracting the projection over $`|\psi _0`$, we obtain

$$|\psi _1=H|\psi _0\frac{\psi _0|H|\psi _0}{\psi _0|\psi _0}|\psi _0,$$
(4.1)
that satisfies $`\psi _0|\psi _1=0`$. Now, we can construct a new state that is is orthogonal to the previous two as,

$$|\psi _2=H|\psi _1\frac{\psi _1|H|\psi _1}{\psi _1|\psi _1}|\psi _1\frac{\psi _1|\psi _1}{\psi _0|\psi _0}|\psi _0.$$
(4.2)
It can be easily checked that $`\psi _0|\psi _2=\psi _1|\psi _2=0`$. The procedure can be generalized by defining an orthogonal basis recursively as,

$$|\psi _{i+1}=H|\psi _ia_i|\psi _ib_i^2|\psi _{i1},$$
(4.3)
where $`i=0,1,2,\mathrm{},`$ and the coefficients are given by

$$a_i=\frac{\psi _i|H|\psi _i}{\psi _i|\psi _i},b_i^2=\frac{\psi _i|\psi _i}{\psi _{i1}|\psi _{i1}},$$
(4.4)
supplemented by $`b_0=0,|\psi _1=0`$. In this basis, it can be shown that the Hamiltonian matrix becomes,

$$H=\left(\begin{array}{ccccc}a_0& b_1& 0& 0& \mathrm{}\\ b_1& a_1& b_2& 0& \mathrm{}\\ 0& b_2& a_2& b_3& \mathrm{}\\ 0& 0& b_3& a_3& \mathrm{}\\ \mathrm{}& \mathrm{}& \mathrm{}& \mathrm{}& \end{array}\right),$$
(4.5)
i.e., it is tridiagonal as expected. Once in this form the matrix can be diagonalized using standard library subroutines. However, note that to diagonalize completely the model being studied on a finite cluster a number of iterations equal to the size of the Hilbert space (or of the subspace under consideration) is needed. In practice this would demand a considerable amount of CPU time. However, one of the advantages of this technique is that accurate enough information about the ground state can be obtained after a small number of iterations (typically of the order of $``$ 100 or less). The ideia behind Lanczos method is a systematic improvement of a given variational state that is used to represent the ground state . The procedure just described assumes $`H`$ being an hermitian matrix. If that is not the case then a generalized algorithm is needed.

The eigenvalues of (4.5) steadily approach the lowest eigenvalues of $`H`$ and its eigenstates are expanded in the Lanczos basis $`|\psi _i`$. Each state $`|\psi _i`$ is represented by a large set of coefficients, when it is itself expanded in the basis selected to carry out the problem (e.g, the basis used in example of Section 3.1). Thus, in practice, it is not convenient to store each one of the $`|\psi _i`$ vectors individually, since such a procedure would demand a memory requirement equal to the size of Hilbert space sector multiplied by the number of Lanczos steps. A simple solution to this problem consists of running the Lanczos subroutine twice. For instance, if $`|\mathrm{\Psi }_0=_if_i|\psi _i`$, then in the first run the coefficients $`f_i`$ are obtained, and in the second the vectors $`|\psi _i`$ are systematically reconstructed one by one and used to build up $`|\mathrm{\Psi }_0`$ in the original basis.

A common difficulty with the Lanczos method is that finite precision arithmetic causes the $`|\psi _i`$ to lose their orthogonality. A consequence of that is the appearance of spurious eigenvalues (and eigenstates) in the spectra. One fix is to repeatedly reorthogonalize, which is too costly since, in this case, all $`|\psi _i`$ have to be stored. Another is to partially reorthogonalize, and a third option is to ignore the problem. We can choose the later if only the extremal (lowest or highest few) eigenvalues are needed, which is often the case. A final way of avoiding the problem is to stop the Lanczos whenever the problem starts to appear, calculate the ground state, and use it as an initial state $`|\psi _0`$ to restart the Lanczos procedure. This resets the basis but keeps the information from the previous Lanczos running. By pushing this ideia to its limit, we can perform always just two Lanczos steps (i.e., work just with $`|\psi _0`$ and $`|\psi _1`$), diagonalize a 2$`\times `$2 matrix, and use its lowest eigenstate as a new $`|\psi _0`$. This is the so-called modified Lanczos. The modified Lanczos converge slowly than the original Lanczos but has the convenience of having the ground state always at hand. An even more pedestrian technique is the power method, which consists of successively applying the Hamiltonian to the initial state until all excited states are filtered out and only the ground state remains. This procedure is the slowest in speed of convergence, but in simple problems is enough and easy to program.

One of the greatest appeals of the Lanczos method is the possibility of calculating dynamical properties of a given Hamiltonian in finite clusters. The technique permits accurate calculations of energy and momentum dependent dynamic correlation functions which are observable in scattering experiments, such as Neutron Scattering (spin dynamics) and Photoemission Spectroscopy which measures the spectral function of the system.

Since Lanczos yields a number of excited states another interesting possibility is the calculation of finite-temperature quantities. Examples of successful attempts in this front are Refs.  and .

The main limitation of Lanczos technique is the size of the clusters that can be studied. Recently, attempts have been made to reach larger cluster. The basic ideia is the following. If $`|\varphi _i`$ is a complete basis we are working with, then the ground state can be formally represented as

$$|\mathrm{\Psi }_0=\underset{i}{}g_i|\varphi _i.$$
(4.6)
In general, all $`|\varphi _i`$ contribute significatively for the sum but, in some cases, it might happen that several states have very small weight $`g_i`$. In fact, for most models studied a very small percentage of the states in the basis dominate the sum in Eq. (4.6). This suggests that useful results can still be obtained if a large part of the Hilbert space is simply discarded. The truncated Lanczos implements this idea by systematically enlarging and reducing the working Hilbert space in a controlled way and by keeping a fixed number of states (typically a million or so) in the basis. The number of states kept represent a very small percentage of the total Hilbert space but the algorithm is designed to search for and keep the dominant states in sum Eq. (4.6). It is also important to choose a basis $`|\varphi _i`$ which uses as much information about the system as possible. For every physical systems we should use a different basis depending on physical insight we have about the system. For instance, if we know that there is a tendency to dimerization then it is convenient to construct a basis of dimers. A well chosen basis leads to a better representation of $`|\mathrm{\Psi }_0`$ for a given number of states kept in the truncation procedure.

The efficiency of the truncation technique depends heavily on the model being studied. In particular, it seems suitable for problems with gaps in the spectrum (like a spingap).

## Chapter 5 Density Matrix Renormalization Group Algorithms

### 5.1 Overview

The basic agenda to overcome the system size limitations is to use a basis in which the ground state can be represented by only few basis states. In other words, a procedure must be found to identify or construct the important states and neglect or discard all others so that the piece of the Hilbert space one operates on remains small. The truncated Lanczos, briefly discussed in the previous Section, is a possible approach to this agenda. It has the advantage of working with a basis formed by states that have an intuitive meaning so that the results can be easily interpreted. In addition, dynamical information can be obtained without difficulty. The DMRG technique we are about to discuss is an alternative approach to that agenda. The innovation of the DMRG is that it does not hold on to a specific basis, but optimizes the basis it uses in the steps leading to the calculation of the ground state. A disadvantage of the DMRG method is that the basis states chosen by the algorithm are not intuitive, and the description of the state requires the measurement of observables. For the measurement process, one needs a representation of the operators in the current basis. Consequently each operator that needs to be measured must be stored, and every time the basis is changed all of them have to be transformed. This is expensive in time and memory. Another disadvantage is that dynamical information cannot be easily obtained.

Historically DMRG has its roots in the renormalization group approach pioneered by Wilson. Considering a real-space blocking version for lattice systems of Wilson’s original approach, the basic idea is to start with a small system that can be handled exactly. The system size is then increased without increasing the size of the Hilbert space until the desired system size is reached.

Increasing the system without increasing the Hilbert space is typically done in two steps:

* The system size is increased, and as a consequence, the Hilbert space grows at the same time.
* The Hilbert space is truncated to its original size keeping the system size constant.

To characterize such a renormalization procedure two basic questions have to be answered:

* How is the enlargement done ?
* Which criterion to apply in the second step to differentiate between the states we will keep from those we will discard ?

In Wilson’s like approach, we start with blocks of a certain (small) size. In the first step, two such blocks are linked to form a block which is twice as large. The Hamiltonian of this larger block is then exactly diagonalized and its eigenstates are used as basis states. The criterion for keeping states is their energy, and only eigenstates whose energy lies below a certain threshold are kept. The states which are kept characterize the new block that is again linked to an identical block, and the process is iterated.

This approach proved to be very effective for the Kondo model. However, for other strongly correlated systems like those in Section 2 it was not successful. The main reason for this failure lies in choosing the block eigenstates as the states to be kept. Since the block was not previously connected to the rest of the system ( another identical block in the case above ) its eigenstates have inappropriate features at the block ends, making them a poor choice as a basis to represent the ground state of a larger system, formed by putting together two (or more) blocks. This problem was pinpointed by White and Noack in Ref.  and an attempt was made to fix it by combining eigenstates from several different blocks under various BC. Let us see how DMRG fix this problem.

### 5.2 Enlargement and Reduction in the DMRG Procedure

As mentioned in Section 5.1, the two most important characteristics of a renormalization procedure are the way the system grows and how the decision is made on which states are kept in the Hilbert space by the truncation step. In this Section, these elements of the DMRG procedure will be discussed. How these elements are used in the global DMRG algorithm will be the subject of the subsequent Sections.

Figure 5.1 shows the most important structures used in the DMRG algorithm. The elementary unit is a site, and is described by the states $`d_i`$ ($`i=1,\mathrm{},D`$), in which the site can be found111Here, the index $`i`$ is not labeling a site in a lattice but the states accessible to a given site. For instance, $`D=4`$ and $`2`$ for the Hubbard and Heisenberg model, respectively.. A block $`B(l,m)`$ consists of a number of sites $`l`$ and its Hamiltonian $`H_B`$ contains only terms involving the sites inside the block. To represent $`B(l,m)`$ and $`H_B`$ we associate to them a $`m`$-dimensional basis where $`m`$ is in general smaller than the full Hilbert space of the block. The states in the basis are grouped in symmetry sectors labeled by a set of quantum numbers (e.g., $`S^z`$ and $`N`$), which makes $`H_B`$ a block-diagonal matrix. We also store the matrix elements of $`H_B`$ between these states. The block is grown by adding a site to it, and together they form the enlarged block $`B^e`$. If $`|b_1\mathrm{}|b_m`$ and $`|d_1\mathrm{}|d_D`$ represent, respectively, the basis of block and a site then the basis of the enlarged block can be constructed from the direct product

$$|b_k^e=|b_i|d_j.$$
(5.1)
The dimension of the Hilbert space for $`B^e`$ is the product of the dimensions of the Hilbert space of $`B(l,m)`$ and a site, i.e, $`m\times D`$. A possible mapping of $`i`$ and $`j`$-values onto $`k`$-values in Eq. (5.1) is $`k=(i1)D+j`$.

The next step in the DMRG method is the formation of the superblock Hamiltonian (Fig. 5.2). The superblock consists of two enlarged blocks connected to each other. In Fig. 5.2 open boundary conditions (OBC) are applied to the superblock. This BC are the most widely used in DMRG for it yields the best results for a given computational effort. We will discuss PBC latter.

The DMRG method focus on a single eigenstate of the superblock Hamiltonian (usually the ground state), called the target state, which is used to construct the density matrix222It is possible to target several eigenstates simultaneously but, for a given computational effort, the accuracy decreases rapidly.. The ground state of the superblock is calculated (using Lanczos or any other method). We then eliminate the states from the basis of the enlarged block that contribute the least to the ground state of the superblock. To calculate those, the density matrix is used.

The concept of the density matrix was developed in statistical mechanics by considering the problem of a system in contact with a much larger bath. The ground state of the universe, i.e. system and bath, is known, and the question is which states of the system contribute the most to this ground state. This is what the density matrix can tell us. One can express the ground state of the universe (the superblock) in a basis that is the tensor product of the basis vectors of the system (one of the enlarged blocks) and the bath (the other enlarged block),

$$|\mathrm{\Psi }_0=\underset{i=1}{\overset{m\times D}{}}\underset{j=1}{\overset{m^{}\times D}{}}a_{ij}|b_i^e|b_j^{}_{}{}^{}e.$$
(5.2)
Hence many of the eigenstates of the system contribute to the one ground state of the universe. The density matrix of the system is given by

$$\rho _{ii^{}}=\underset{j=1}{\overset{m^{}\times D}{}}a_{ij}a_{i^{}j}^{}.$$
(5.3)
We show an actual example of such a calculation below. The density matrix has the same dimension and block-diagonal structure of the Hamiltonian $`H_e`$, for the enlarged block. If we denote by $`|u_\alpha `$ ($`\alpha =1,\mathrm{},m\times D`$) the eigenstates of $`\rho `$ and by $`w_\alpha `$ its eigenvalues then $`_\alpha w_\alpha =1`$ and $`w_\alpha `$ is the probability of the system being in the state $`|u_\alpha `$ given that the universe is in the state $`|\mathrm{\Psi }_0`$.

This is the information we need to decide which states to keep in a renormalization group approach. In order to make an optimal decision of which states to discard and which to keep, it is a good criterion to consider the weight $`w_\alpha `$ of the states in the ground state of a larger system, which we eventually want to describe. We must order the $`|u_\alpha `$ by their eigenvalues in a decreasing order and use the $`m`$ of those states with largest eigenvalues to form a new basis for the enlarged block $`B^e`$, which will then become $`B(l+1,m)`$. In symbols,

$$H_{B(l+1,m)}=OH_eO^{},$$
(5.4)
where the rows of the $`m\times (m\times D)`$ matrix $`O`$ are formed by the $`|u_\alpha `$ previously selected. The change of basis in Eq. (5.4) renormalizes the Hilbert space, cutting its size back to $`m`$. Constructed in this way, the blocks are being prepared to be connected to another block in the next step, when a new superblock will be formed. By using the density matrix states we somehow look into the future and adapt the block for it. Besides $`H_B`$ we also need to store other operators representing the sites at the border of the block. These operators are necessary to construct the interaction among the block and the site, when forming the enlarged block and also need to be transformed to according to Eq. (5.4).

To illustrate the DMRG steps of enlargement and truncation, a full DMRG step for the antiferromagnetic spin 1/2 Heisenberg chain will be performed. The starting point is a block $`B(1,2)`$ of a single site. The possible states of the single site are

$$|b_1=|,|b_2=|.$$
(5.5)
For convenience the up/down basis is chosen. The basis itself is not stored. The only data that is stored are the operators needed to progress the algorithm namely, the operators needed to build the Hamiltonians for the enlarged block and the superblock.

For one isolated site without external fields the Hamiltonian is zero. Since the up/down basis was chosen, the other operators are the spinmatrices given by

$$S^\pm =\frac{1}{2}\left(\sigma ^x\pm i\sigma ^y\right),S^z=\frac{1}{2}\sigma ^z.$$
(5.6)
To build the enlarged system, another site is added. In this case the basis of the block is the same as the basis of the added site,

$$|d_1=|,|d_2=|,$$
(5.7)
and the operators look the same as those of the block. Thus, the basis of the enlarged block is, by Eq. (5.1),

$`|b_1^e`$ $`=`$ $`|`$
$`|b_2^e`$ $`=`$ $`|`$ (5.8)
$`|b_3^e`$ $`=`$ $`|`$
$`|b_4^e`$ $`=`$ $`|.`$
The Hamiltonian $`H_e`$ for the enlarge block $`B(2,4)`$ has non-zero elements, and describes the interactions of the sites in $`B(2,4)`$. $`H_e`$ consists of the $`H_B`$, describing the interactions within the block, and the interactions between the rightmost spin of the block and the new site. In the above basis the Heisenberg Hamiltonian of the enlarged block is

$`H_e`$ $`=`$ $`H_BI_d+{\displaystyle \frac{1}{2}}\left(S_b^+S_d^{}+S_b^{}S_d^+\right)+S_b^zS_d^z`$ (5.9)
$`=`$ $`\left(\begin{array}{cc}0& 0\\ 0& 0\end{array}\right)\left(\begin{array}{cc}1& 0\\ 0& 1\end{array}\right)`$ (5.28)
$`+{\displaystyle \frac{1}{2}}\left[\left(\begin{array}{cc}0& 1\\ 0& 0\end{array}\right)\left(\begin{array}{cc}0& 0\\ 1& 0\end{array}\right)+\left(\begin{array}{cc}0& 0\\ 1& 0\end{array}\right)\left(\begin{array}{cc}0& 1\\ 0& 0\end{array}\right)\right]`$
$`+{\displaystyle \frac{1}{4}}\left(\begin{array}{cc}1& 0\\ 0& 1\end{array}\right)\left(\begin{array}{cc}\hfill 1& \hfill 0\\ \hfill 0& \hfill 1\end{array}\right)`$
and it looks as follows:

$$H_e=\frac{1}{4}\left(\begin{array}{cccc}\hfill 1& \hfill 0& \hfill 0& \hfill 0\\ \hfill 0& \hfill 1& \hfill 2& \hfill 0\\ \hfill 0& \hfill 2& \hfill 1& \hfill 0\\ \hfill 0& \hfill 0& \hfill 0& \hfill 1\end{array}\right).$$
(5.29)
In Eq. (5.9) the index $`b`$ and $`d`$ refers to the operators acting on the Hilbert space of the block and the site, respectively, and $`I`$ is the unit matrix. In this first step we have $`m=D=2`$ but, as the block grows in size in the following steps we will have $`m>D`$. Note that only representations for the Hamiltonian of the block and for the operators $`S^+,S^{}`$, and $`S^z`$ of the rightmost site of the block and the new site are needed to construct the enlarged block.

The superblock is constructed by taking the enlarged block as the left block and connecting it to another enlarged block on the right (Fig. 5.2). In the so-called infinite size method, discussed in the next Section, the right block is the same as the left block, only spatially reflected so that the site last added to the left block is connected with the site added last to the right block. The rightmost site of the left block becomes the leftmost of the right block.

In addition to the Hamiltonians of the enlarged blocks, one needs representations of the spin operators of the rightmost site of the enlarged block. In order to construct representations for $`S^+,S^{}`$, and $`S^z`$ in the basis of the enlarged block we have to calculate the tensor product of the unit matrix of the block Hilbert space and the operator in the representation of the basis of the rightmost site. For instance, the $`(S_r^+)_e`$ matrix, the $`S^+`$-operator of the spin on the $`r`$ightmost site in the basis of the enlarged block, is given by

$$(S_r^+)_e=I_bS_d^+=\left(\begin{array}{cc}\hfill 1& \hfill 0\\ \hfill 0& \hfill 1\end{array}\right)\left(\begin{array}{cc}\hfill 0& \hfill 1\\ \hfill 0& \hfill 0\end{array}\right).$$
(5.30)
Representations for $`(S_r^{})_e`$ and $`(S_r^z)_e`$ are obtained in a similar way. The basis for the superblock is the tensor product of the bases from the two enlarged blocks being connected:

$$\left(\begin{array}{c}|b_1^e\hfill \\ |b_2^e\hfill \\ |b_3^e\hfill \\ |b_4^e\hfill \end{array}\right)\left(\begin{array}{c}|b_1^{}_{}{}^{}e\hfill \\ |b_2^{}_{}{}^{}e\hfill \\ |b_3^{}_{}{}^{}e\hfill \\ |b_4^{}_{}{}^{}e\hfill \end{array}\right)=\left(\begin{array}{c}|\\ |\\ |\\ |\end{array}\right)\left(\begin{array}{c}|\\ |\\ |\\ |\end{array}\right)=\left(\begin{array}{c}|\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\\ |\end{array}\right)=\left(\begin{array}{c}|b_1^s\\ |b_2^s\\ |b_3^s\\ |b_4^s\\ |b_5^s\\ |b_6^s\\ |b_7^s\\ |b_8^s\\ |b_9^s\\ |b_{10}^s\\ |b_{11}^s\\ |b_{12}^s\\ |b_{13}^s\\ |b_{14}^s\\ |b_{15}^s\\ |b_{16}^s\end{array}\right).$$
(5.31)
In general, $`|b_i^e`$ and $`|b_i^{}_{}{}^{}e`$ are distinct basis. Assuming that we want to calculate the ground state properties, it is possible to exploit $`S^z`$ conservation and the fact that the ground state belongs to the subspace with $`S^z=0`$. Therefore, we can concentrate only on states in this symmetry sector:

$`|b_1^{s(0)}`$ $``$ $`|b_4^s`$
$`|b_2^{s(0)}`$ $``$ $`|b_6^s`$
$`|b_3^{s(0)}`$ $``$ $`|b_7^s`$ (5.32)
$`|b_4^{s(0)}`$ $``$ $`|b_{10}^s`$
$`|b_5^{s(0)}`$ $``$ $`|b_{11}^s`$
$`|b_6^{s(0)}`$ $``$ $`|b_{13}^s.`$
The Hamiltonian of the superblock consists of three parts: the internal Hamiltonians of the two enlarged blocks and the exchange arising from the spin interacting at the connection between them:

$$H_s=H_eI_e^{^{}}+I_eH_e^{^{}}+\frac{1}{2}\left[(S_r^+)_e(S_r^{})_e^{^{}}+(S_r^{})_e(S_r^+)_e^{^{}}\right]+(S_r^z)_e(S_r^z)_e^{^{}},$$
(5.33)
where the prime refers to operators in the Hilbert space of the second enlarged block forming the superblock. We now build a representation for $`H_s`$ in the basis $`|b_i^{s(0)}`$:

$$H_s^{(0)}=\frac{1}{4}\left(\begin{array}{cccccc}\hfill 1& \hfill 0& \hfill 2& \hfill 0& \hfill 0& \hfill 0\\ \hfill 0& \hfill 1& \hfill 2& \hfill 2& \hfill 0& \hfill 0\\ \hfill 2& \hfill 2& \hfill 3& \hfill 0& \hfill 2& \hfill 0\\ \hfill 0& \hfill 2& \hfill 0& \hfill 3& \hfill 2& \hfill 2\\ \hfill 0& \hfill 0& \hfill 2& \hfill 2& \hfill 1& \hfill 0\\ \hfill 0& \hfill 0& \hfill 0& \hfill 2& \hfill 0& \hfill 1\end{array}\right).$$
(5.34)
The ground state energy of $`H_s^0`$ is $`E_0=(1/4)(3+2\sqrt{3})`$ and the correspondent eigenvector

$$|\mathrm{\Psi }_0=\frac{1}{2\sqrt{3(2+\sqrt{3})}}\left(\begin{array}{c}1\\ 1+\sqrt{(}3)\\ 2\sqrt{3}\\ 2\sqrt{3}\\ 1+\sqrt{3}\\ 1\end{array}\right).$$
(5.35)
In order to decide which states of the left enlarged block are the most important for the ground state of the superblock one uses the density matrix given by Eq. (5.3). Combining Eqs. (5.31) and (5.2) we obtain

$$\left(\begin{array}{c}|b_1^{s(0)}\\ |b_2^{s(0)}\\ |b_3^{s(0)}\\ |b_4^{s(0)}\\ |b_5^{s(0)}\\ |b_6^{s(0)}\end{array}\right)=\left(\begin{array}{c}|b_1^e|b_4^{}_{}{}^{}e\\ |b_2^e|b_2^{}_{}{}^{}e\\ |b_2^e|b_3^{}_{}{}^{}e\\ |b_3^e|b_2^{}_{}{}^{}e\\ |b_3^e|b_3^{}_{}{}^{}e\\ |b_4^e|b_1^{}_{}{}^{}e\end{array}\right).$$
(5.36)
This allows us to identify the coefficients $`a_{ij}`$ in Eq. (5.2) (and in Eq. (5.3)) and they are all zero except for: $`a_{14},a_{22},a_{23},a_{32},a_{33},a_{41}`$. For the density matrix we get

$$\rho =\frac{1}{12(2+\sqrt{3})}\left(\begin{array}{cccc}1& 0& 0& 0\\ 0& 11+6\sqrt{3}& 2(5+3\sqrt{3})& 0\\ 0& 2(5+3\sqrt{3})& 11+6\sqrt{3}& 0\\ 0& 0& 0& 1\end{array}\right).$$
(5.37)
Note that $`\rho `$ and $`H_e`$ (Eq. (5.29)) share the same block-diagonal structure. The eigenvalues of $`\rho `$ are $`(1/12)(2+\sqrt{3})0.02`$ for each of the triplet states and $`(21+12\sqrt{3})(12(2+\sqrt{3}))0.94`$ for the singlet state. The basis states are then ordered according to the size of the respective eigenvalues, with the singlet state (largest eigenvalue) coming first. The transformation matrix $`O`$ in Eq. (5.4) is given by

$$O=\left(\begin{array}{cccc}0& 1/\sqrt{2}& 1/\sqrt{2}& 0\\ 1& 0& 0& 0\end{array}\right).$$
(5.38)
After determining the basis and the transformation, the representations of all operators used to describe the enlarged block are changed to the new basis. Applying the transformation to the $`H_e`$ (Eq. (5.29)) leads to

$$H_{B(2,2)}=OH_eO^{}=\frac{1}{4}\left(\begin{array}{cc}\hfill 3& \hfill 0\\ \hfill 0& \hfill 1\end{array}\right).$$
(5.39)
In the present simple case $`H_e`$ and $`\rho `$ have the same eigenvectors. That is the reason why the above transformation diagonalizes $`H_e`$. The same transformation is done with the other operators that will be need for future calculations. One example is the $`S^+`$-operator, which has the following representation in the new basis

$$S_r^+=O(S_r^+)_eO^{}=\frac{1}{\sqrt{2}}\left(\begin{array}{cc}\hfill 0& \hfill 0\\ \hfill 1& \hfill 0\end{array}\right).$$
(5.40)
Note that, even though a site has been add to block $`B(1,2)`$ to form block $`B(2,2)`$, the dimension of Hilbert space did not change due to the truncation performed. The states kept in the truncation are those with higher probability to be found in the ground states of the superblock system.

In this example we have performed the truncation in the Hilbert space in order to illustrate the procedure. In a practical calculation the system in our example would be too small to already start the truncation. Usually, we know from the beginning how many states will be kept. Thus, in the first steps the block is grown (sites are added) without truncation until the number of states needed to describe the block becomes larger than the number of states we want to keep333In this initial steps with no truncation the matrix $`O`$ has dimension $`(m\times D)\times (m\times D)`$ and Eq. (5.4) becomes a simple change of basis.. If we had, for instance, decide to keep $`m=20`$ states in the computation, the chain would be grown to a size of 5 sites with $`2^5=32`$ states, which is the first block size with Hilbert space dimension exceeding 20. Then, a truncation would create a block $`B(5,20)`$ from a enlarged block with 5 sites and in the following steps all blocks would have dimension 20, even though they represented a increasing number of sites.

We often use the sum of the density matrix eigenvalues of the discarded states ($`1_{\alpha =1}^mw_\alpha `$) as a measure for the severity of the truncation. The goal is to keep this number as small as possible. In many cases it has been found that this number is roughly proportional to the error in the energy. The proportionality factor is of course model dependent. In doped fermionic models, we need to keep more states to achieve a good accuracy than in a spin model. Even for a given model the accuracy for a given truncation may depend on the parameters being used in the calculation (e.g., couplings and symmetry sector). For instance, close to a phase transition line or inside a critical (massless) phase the strong quantum fluctuactions tend to reduce accuracy. In the example above we discarded two of the triplet states leading to a truncation error of 0.04, which is unacceptably high. Truncation errors in actual calculations are usually kept smaller than $`10^4`$.

In this Section the focus was on one DMRG step. Enlargement of the block by adding a site, the formation and diagonalization of the superblock, the calculation of the density matrix, and the truncation procedure were discussed. In the next Sections we describe how several DMRG steps are combined to calculate the properties of a given model.

### 5.3 The Infinite System Algorithm

The first implementation of the DMRG method was the infinite system algorithm. The goal was to use DMRG’s advantage to decouple the system size and the size of the Hilbert space and calculate ground state energies of large systems, i.e., system size that are unreachable for exact diagonalizations, eventually converging to the thermodynamic limit.

In the infinite system algorithm, the left enlarged block is connected by its own mirror image on the right side, so that the number of sites of the superblock is increased by two in each step. Growing the block and truncating the Hilbert space is done as explained in Section 5.2. Schematically the algorithm can be described as follows:

1. Grow the chain to a size in which its Hilbert space dimension is just larger than $`m`$, the number of states to be kept. This is the first enlarged block.
2. Form the superblock by adding an identical enlarged block on the right such that the sites, which were added last, are next to each other.
3. Diagonalize the superblock, calculate the density matrix with respect to the left enlarged block.
4. Change basis of the left enlarged block to the eigenbasis of the density matrix, keep only the $`m`$ states with the largest density matrix eigenvalues. The transformed, truncated left enlarged block becomes the block for the next iteration.
5. This block is enlarged, i.e., a site is added on the right.
6. Continue with step 2 until convergence is reached.

In Fig. 5.3, two successive iterations of the infinite system algorithm are shown. The starting point is a block with $`l`$ sites that is described by a basis with $`m`$ states. Enlargement and construction of the superblock (step 2), leads to the situation portrayed in Fig. 5.3.a.

After diagonalizing the superblock, finding the transformation, and truncating of the enlarged block according to its density matrix (steps 3 and 4), one arrives at the situation depicted in Fig. 5.3.b. The new block describes a chain with $`l+1`$ sites, but uses a basis with only $`m`$ states. Enlarging the block (step 6) and building the superblock (step 2) leads to the situation in 5.3.c, and the procedure is repeated.

From the computational point of view the most difficult part is the calculation and the subsequent diagonalization of the superblock Hamiltonian. The diagonalization can be done with the Lanczos method but any other method (e.g., the Davidson algorithm) can be used. The computational effort depends on the size of the Hamiltonian matrix and accuracy needed for the ground state. Since the superblock Hamiltonian is block-diagonal, diagonalizing only the sector that has the proper quantum numbers reduces the matrix by a factor that depends on the of superblock, block, and model. Typically it is of order 10-20. Since the total Hilbert space for the superblock has dimension $`(D\times m)^2`$, the most important determining factor for the size of the Hamiltonian is the number $`m`$ of states kept in the block. In actual calculations $`m`$ is typically a few hundred of states and is limited due to restrictions in computer memory and CPU-time. As we work with different models, the size $`D`$ of the Hilbert space for a single site also affects the computational effort needed to reach a given accuracy in the results.

To summarize: in the infinite system algorithm, the system size is increased in each step while the number of states kept to describe the blocks is constant. The goal is to grow the chain to a long-enough length, so that the energy and short range correlations around the center have converged. The convergence is checked by keeping track of the difference $`\mathrm{\Delta }E_0`$ between the ground state energy of the superblocks in two sucessive steps444$`(\mathrm{\Delta }E_0)/2`$ converges to the ground states energy per site in the thermodynamic limit..

### 5.4 The Finite System Algorithm

In the finite system algorithm the goal is no longer to reach the thermodynamic limit, but rather to restrict ourselves to a finite system size $`L`$. In the beginning, until the superblock size reaches the system size, the algorithm is identical to the infinite size algorithm. When the system size reaches $`L`$, i.e. the enlarged block has $`L/2`$ sites, the left block is grown further but on the right a enlarged block with a smaller number of sites is used in order to keep constant the number of sites in the superblock. As soon as the decreasing size of the right block reaches a single site the procedure is stopped. One such iteration in which the left block has been calculated for all possible sizes, nearly up to $`L`$, is called a sweep over the system. After one sweep is done, we start all over with a small left block. However, from now on, the information about the best representation of the right block that complements the left block to the desired system size $`L`$ is now present since it has been calculated in the previous sweep. When the optimal basis for a specific size of the left block is determined with DMRG, the result is stored and used in the next sweep as best possible guess for the optimal states describing the right block. The steps of the finite system algorithm are compiled in the following list:

1. In the first sweep use the infinite size algorithm until the superblock size reaches the chain size $`L`$ under investigation. After every truncation save all operators of the reduced block to disk.
2. Enlarge the left block size $`l+1`$.
3. Read a block of size $`Ll2`$ from disk, this is the right block.
4. Enlarge the right block to the size $`Ll1`$.
5. Form the superblock from right and left enlarged blocks.
6. Diagonalize the superblock, calculate the density matrix with respect to the left enlarged block.
7. Change the basis of the left enlarged block to the eigenbasis of the density matrix, keep only the $`m`$ states with the largest density matrix eigenvalues, save the block with the basis to disk. The transformed, truncated left enlarged block becomes the left block for the next step.
8. Continue with step 2 until the right block becomes a single site
9. If the right block is a single site begin a new sweep over the system i.e. construct a superblock with a left enlarged block containing two sites. Continue with step 3 until convergence is reached.

To illustrate the progress of the algorithm, two general steps are portrayed in Fig. 5.4.

At first glance Fig. 5.4 looks like Fig. 5.3. In fact the algorithms are very similar. The left bock is enlarged, the superblock is constructed and diagonalized (Fig. 5.4.a). Then the density matrix for the left enlarged block is constructed and the block is reduced (Fig. 5.4.b). This reduced block is then again enlarged, the superblock is built up and so on. The difference between the two algorithms is that the right block in Fig. 5.3 has the same number of sites $`l`$ as the left side. In the finite system algorithm the right enlarged block always complements the left one to the target size $`L`$ and thus becomes shorter, while the later grows.

As an example, let us consider a calculation for the Heisenberg chain with $`L=16`$ sites and a truncation of $`m=24`$ states. The following superblocks have to be formed:

* Initial sweep:

\[B(1,2),B(1,2)\] \[B(2,4),B(2,4)\] \[B(3,8),B(3,8)\] \[B(4,16),B(4,16)\]

\[B(5,24),B(5,24)\] \[B(6,24),B(6,24)\] \[B(7,24),B(7,24)\] \[B(8,24),B(6,24)\]

\[B(9,24),B(5,24)\] \[B(10,24),B(4,16)\] \[B(11,24),B(3,8)\] \[B(12,24),B(2,4)\]
* Following sweeps:

\[B(1,2),B(13,24)\] \[B(2,4),B(12,24)\] \[B(3,8),B(11,24)\]

\[B(4,16),B(10,24)\] \[B(5,24),B(9,24)\] \[B(6,24),B(8,24)\]

\[B(7,24),B(7,24)\] \[B(8,24),B(6,24)\] \[B(9,24),B(5,24)\]

\[B(10,24),B(4,16)\] \[B(11,24),B(3,8)\] \[B(12,24),B(2,4)\]

If the ground state of the superblock is even under reflection symmetry, left and right side can be interchanged. That means that the reduced left blocks stored during the first half of a sweep (when the size of the left block is smaller than $`L/2`$) can be already used as right blocks in the second half of the same sweep. However, if the ground state of the superblock does not show reflection symmetry, the reduced blocks from the left and right side have to be constructed and stored independently. Therefore, in the absence of reflection symmetry stored space and CPU-time is doubled.

The finite system algorithm is terminated when convergence is reached, i.e. when the energy in succeeding sweeps does not improve (decrease) any more. It happens, however, that the energy stays on a certain level for two or three sweeps only to further decrease afterwards. Therefore, one cannot just compare the energies of the last two sweeps performed. The convergence behaviour of the model should be taken in account. This behaviour can be investigated by looking at small systems, where calculations are inexpensive. The number of sweeps necessary for convergence depends strongly on the system size $`L`$, the number of states kept $`m`$, and the model itself. Fermionic models need more sweeps than spin models, specially when they are doped. Typically, spin models converge in less then 10 sweeps, even for fairly large chains ($`L=100`$ or larger), while calculations for the doped $`tJ`$ model with the same $`m`$ usually need roughly twice as many sweeps, even for smaller system sizes.

The first sweeps do not yield very accurate results, their purpose is to generate a good set of blocks of different sizes. Therefore, the first sweeps are normally done with a small number of states. When convergence is approached the number of states kept in the truncation can be increased in order to improve accuracy. This helps saving CPU-time, specially when $`L`$ is large.

### 5.5 Measurement of Observables

The ground state energy of the superblock is determined every time the superblock is diagonalized. The value is used to determine whether convergence is reached. It turns out that in the finite system algorithm the energy is the lowest when the two blocks forming the superblock have the same size. Therefore, this symmetric configuration is used to measure also all other observables in which one is interested.

Unfortunately the values for the other observables such as the $`S^z`$ value of a certain spin or the spin correlation between spins on different sites, are not as easily obtainable as the energy.

This is caused by the change of basis that is performed in every step. Even if we start out with a basis where the demanded properties of the basis states are known, or could easily be calculated, this knowledge fades fast with the repeated linear combination of basis states of new basis systems. Of course we could keep track, for instance, of $`S^z`$ for each site in each state but the computational effort would be enormous.

The way that is chosen is to carry out the measurement by acturally evaluating the operator in the ground state. The expectation value of $`S^z`$ on site $`i`$ is calculated as

$$S_i^z=\mathrm{\Psi }_0|S_i^z|\mathrm{\Psi }_0.$$
(5.41)
This is the textbook formula, but the difficulty of applying it here is not visible from this equation. The problem is the basis. The ground state is expanded in a basis that evolved in every step of the algorithm and could not have been anticipated at the beginning.

When the site $`i`$ is added to the block, the representation of the $`S^z`$-operator in the basis of the enlarged block is known (in Eq. (5.30) the calculation is done for $`S_i^+`$). But in general this it too early to measure $`S_i^z`$, because the symmetric configuration was not yet reached. In order to still have the right representation for $`S_i^z`$ in the symmetric configuration, the matrix has to be updated and stored every time the basis changes. Updating means that the basis change has to be performed on $`S_i^z`$. If $`(S_i^z)_j^e`$ denotes the representation of the $`S^z`$-operator on site $`i`$ in the Hilbert space of the enlarged block with $`j`$ sites ($`ji`$) and $`O_j`$ is the matrix that transforms and cuts the basis before adding site $`j+1`$, the representation of $`S_i^z`$ after the truncation is

$$(S_i^z)_j=O_j(S_i^z)_j^eO_j^{}.$$
(5.42)
When another site, the $`(j+1)`$th, is added, the representation of the operator also has to be adjusted according to

$$(S_i^z)_{j+1}^e=(S_i^z)_jI_d,$$
(5.43)
and truncated with $`O_{j+1}`$. Following this procedure we always have representation of the operator in the current basis.

When it is time to perform measurements, i.e. when both blocks forming the superblock have the same size, we only have to find the representation of the operator in the Helberb space of the superblock. If, e.g., the operator is acting on a site inside the left block this means tensorizing it with the unit element acting on all remaining spaces, namely, the two central sites and right block.

If $`i`$ is small, i.e., the site is close to the end of the block, a lot of basis changes have to be performed before the measurement is carried out. Due to the truncations that go with this procedure, the accuracy is decreased. We expect a greater accuracy from observables on sites close to the middle of the chain.

The issue is somewhat more complicated for nonlocal operators, e.g. spin correlations like $`C_s(i,j)=S_i^zS_j^z`$. In general one could just take the representations of the involved $`S^z`$-operators and multiply them, when the symmetric configuration is reached. However, there is a more accurate way to proceed. As an example, we consider a spin-spin correlation where $`j=i+1`$ and the symmetric configuration is reached at $`L/2=i+2`$. The representation of the two operators at the chain size i+2 are

$`(S_i^z)_{i+2}^e`$ $`=`$ $`(O_{i+1}((O_i(I_bS^z)O_i^{})I_d)O_{i+1}^{}I_b`$ (5.44)
$`(S_{i+1}^z)_{i+2}^e`$ $`=`$ $`(O_{i+1}(I_bS^z)O_{i+1}^{})I_d.`$
Therefore, one gets for the spin correlation

$$(S_i^zS_{i+1}^z)_{i+2}^e=(O_{i+1}((O_i(I_bS^z)O_i^{})I_d)O_{i+1}^{}(O_{i+1}(I_bS^z)O_{i+1}^{})I_d.$$
(5.45)
Another way of calculating the matrix is to multiply the two operators as soon as possible. In this case the operation can be done when the enlarged block size is $`i+1`$, which gives

$$C_s(i,i+1))_{i+1}=O_{i+1}(((O_i(I_bS^z)O_i^{})I_d)(I_bS^z))O^{}_{i+1}.$$
(5.46)
Then, from now on, $`(C_s(i,i+1))_{i+1}`$ is tranformed as a whole. Its representation for the enlarged block with $`i+2`$ sites is

$$(C_s(i,i+1))_{i+2}^e=C_s(i,i+1))_{i+1}I_d.$$
(5.47)
Comparing Eq. (5.45) with Eq. (5.47) the difference is only a a $`O_{i+1}^{}O_{i+1}`$-factor between the two $`S^z`$-operators. Without the truncation of states it would have been the product of two unitary matrices and thus be a unit matrix. The two ways of calculating $`(C_s(i,i+1))_{i+2}^e`$ would be equivalent. With the truncation, however, this is no longer true, as one can immediately see calculating $`O^{}O`$ with the projector in Eq. (5.38). The factor $`O_{i+1}^{}O_{i+1}`$ leads to a loss of accuracy in the matrix multiplication since instead of multiplying the matrices, only their projections are multiplied. This error becomes worse the further the sites $`i`$ and $`j`$ in $`C_s(i,j)`$ are apart, because every separating site add another pair $`O^{}O`$.

For DMRG procedure this means that we have to use the latter approach, multiplying the operators as soon as possible. Prior to the calculation a list of the observables that we are interested on measure has to be made. When growing the chain, the on-site operators are stored as soon as they are generated and updated every time the basis is changed. The products of two-site operators are formed and stored as soon as on has a representation for both operators, then they are updated also updated. In the case of operators that involve more single site operators, e.g. pairing operators, we have to proceed in the same way.

If we are measuring correlations between sites located on different blocks we can not multiply them before the symmetric configuration is reached. This means that measurements of correlations across the center will always have larger error than correlations where both sites are located in the same block.

From these explanations it has hopefully become clear that measuring observables involves additional storage and calculations. In order to save computation time the measurement process is started as late as possible in the calculations, after convergence has been reached. In the infinite size algorithm we restrict ourselves to the sites close to the middle of the chain, which were the last to be added. In the finite size algorithm measurements are not performed in the initial sweeps when the energy has not converged yet.

It is generally difficult to estimate the error on the values for the observables other than the energy for which it has been established that the error is proportional to the truncation error as discussed before. Unfortunately there is no known method to calculate the error of the observables from any other measured quantity. However, by checking how stable the results are as we change the number $`m`$ of states kept in the truncation, we can have a qualitative control of the error. The error on the energy is generally smaller than that of the observables because it is a quantity that averages over the sum of many terms.

### 5.6 General Remarks

When working with fermionic models such as the Hubbard and $`tJ`$ models we have to implement the anticommutation of the fermionic operators Eqs. (2.2) and (2.3).

In order to implement PBC in DMRG a specific superblock configuration is required. DMRG performs poorly under PBC. Typically, if a given accuracy is obtained under FBC with $`m`$ states kept in the truncation, then $`m^2`$ states will be needed to achieve the same accuracy under PBC.

An important improvement to DMRG involves keeping track of the wave function from step to step and perform a transformation into the basis corresponding to the current superblock. Since a good initial guess speeds up the Lanczos or Davidson convergence, this saves time in the diagonalization of the superblock.

When DMRG procedure converges to a fixed point the superblock ground state can be simply written as a matrix-product form and also be rederived through a simple variational ansatz making no reference to the DMRG construction. These very interesting analytical results are obtained in Ref.  and give some insight into the mechanisms working behind DMRG algorithms.

## Chapter 6 Conclusions and Acknowledgments

The field of numerical simulations can stand by itself as a third way of doing science and its interaction with experiment and theory is very fruitful. We believe that scientific research in nearly every area in physics can benefit from it. As the power of nowadays computers increases rapidly the relatively new field of numerical simulations gains more and more prominence. To keep up with the advances in the hardware new methods and algorithms are being developed and traditional ones are being improved. The two techniques examined here are typical examples of such methods and algorithms.

The author is thankful to those (too many to name here!) who carefully read this manuscript helping to improve it in many ways. The author also acknowledges hospitality at the Instituto de Física de São Carlos - USP and the financial support from Fundação de Amparo à Pesquisa do Estado de São Paulo - FAPESP - and Conselho Nacional de Desenvolvimento Científico e Tecnológico - CNPq - Brasil.