  Density functional theory is a successful branch of numerical simulations of
quantum systems. While the foundations are rigorously defined, the universal
functional must be approximated resulting in a `semi'-ab initio approach. The
search for improved functionals has resulted in hundreds of functionals and
remains an active research area. This chapter is concerned with understanding
fundamental limitations of any algorithmic approach to approximating the
universal functional. The results based on Hamiltonian complexity presented
here are largely based on \cite{Schuch09}. In this chapter, we explain the
computational complexity of DFT and any other approach to solving electronic
structure Hamiltonians. The proof relies on perturbative gadgets widely used in
Hamiltonian complexity and we provide an introduction to these techniques using
the Schrieffer-Wolff method. Since the difficulty of this problem has been well
appreciated before this formalization, practitioners have turned to a host
approximate Hamiltonians. By extending the results of \cite{Schuch09}, we show
in DFT, although the introduction of an approximate potential leads to a
non-interacting Hamiltonian, it remains, in the worst case, an NP-complete
problem.
