In each iteration of a DFT cycle, we start from a given charge density and obtain the corresponding Kohn-Sham Hamiltonian and its eigenstates (wavefunctions). From the occupied states, we can compute a new charge density , so that conceptionally we need to solve a multidimensional fixed-point problem. In the case of magnetism and MetaGGAs, the problem becomes even more complex, because in addition also the magnetization density and the kinetic-energy density are relevant.
To solve this problem, we use nonlinear solvers that work with the input vector and the residual . In these methods a subspace is built from the input vectors and the optimal solution within this subspace is obtained. The most efficient solutions are the Broyden and the Pulay mixing scheme. In the former method, an approximate of the Jacobian matrix is iteratively improved to find the optimal solution. In the latter method, the input vectors are combined assuming linearity to minimize the residual.
The implementation in VASP is based on the work of Johnson. Kresse and Furthmüller extended on it and demonstrated that the Broyden and Pulay scheme transform into each other for certain choices of weights for the previous iterations. They also introduced an efficient metric putting additional weight on the long-range components of the density (small vectors) resulting in a more robust convergence. Furthermore, a preconditioning can improve the choice of the input density for the next iteration and we use a Kerker preconditioning in VASP.