Exact diagonalization

Exact diagonalization (ED) is a numerical technique used in physics to determine the eigenstates and energy eigenvalues of a quantum Hamiltonian. In this technique, a Hamiltonian for a discrete, finite system is expressed in matrix form and diagonalized using a computer. Exact diagonalization is only feasible for systems with a few tens of particles, due to the exponential growth of the Hilbert space dimension with the size of the quantum system. It is frequently employed to study lattice models, including the Hubbard model, Ising model, Heisenberg model, "t"-"J" model, and SYK model.
Expectation values from exact diagonalization.
After determining the eigenstates formula_1 and energies formula_2 of a given Hamiltonian, exact diagonalization can be used to obtain expectation values of observables. For example, if formula_3 is an observable, its thermal expectation value is
where formula_5 is the partition function. If the observable can be written down in the initial basis for the problem, then this sum can be evaluated after transforming to the basis of eigenstates.
Green's functions may be evaluated similarly. For example, the retarded Green's function formula_6 can be written
Exact diagonalization can also be used to determine the time evolution of a system after a quench. Suppose the system has been prepared in an initial state formula_8, and then for time formula_9 evolves under a new Hamiltonian, formula_10. The state at time formula_11 is
Memory requirements.
The dimension of the Hilbert space describing a quantum system scales exponentially with system size. For example, consider a system of formula_13 spins localized on fixed lattice sites. The dimension of the on-site basis is 2, because the state of each spin can be described as a superposition of spin-up and spin-down, denoted formula_14 and formula_15. The full system has dimension formula_16, and the Hamiltonian represented as a matrix has size formula_17. This implies that computation time and memory requirements scale very unfavorably in exact diagonalization. In practice, the memory requirements can be reduced by taking advantage of symmetry of the problem, imposing conservation laws, working with sparse matrices, or using other techniques. 
Comparison with other techniques.
Exact diagonalization is useful for extracting exact information about finite systems. However, often small systems are studied to gain insight into infinite lattice systems. If the diagonalized system is too small, its properties will not reflect the properties of the system in the thermodynamic limit, and the simulation is said to suffer from finite size effects. 
Unlike some other exact theory techniques, such as Auxiliary-field Monte Carlo, exact diagonalization obtains Green's functions directly in real time, as opposed to imaginary time. Unlike in these other techniques, exact diagonalization results do not need to be numerically analytically continued. This is an advantage, because numerical analytic continuation is an ill-posed and difficult optimization problem.
Implementations.
Numerous software packages implementing exact diagonalization of quantum Hamiltonians exist. These include QuSpin, ALPS, DoQo, EdLib, edrixs, and many others.
Generalizations.
Exact diagonalization results from many small clusters can be combined to obtain more accurate information about systems in the thermodynamic limit using the numerical linked cluster expansion.