Requests for technical support from the VASP group should be posted in the VASP-forum.

# Preconditioning

The idea is to find a matrix which multiplied with the residual vector gives the exact error in the wavefunction. Formally this matrix (the Greens function) can be written down and is given by

${\displaystyle {\frac {1}{{{\bf {H}}}-\epsilon _{n}}},}$

where ${\displaystyle \epsilon _{n}}$ is the exact eigenvalue for the band in interest. Actually the evaluation of this matrix is not possible, recognizing that the kinetic energy dominates the Hamiltonian for large ${\displaystyle {\mathbf {G}}}$-vectors (i.e. ${\displaystyle H_{{{\mathbf {G}},{\mathbf {G'}}}}\to \delta _{{{\mathbf {G}},{\mathbf {G'}}}}{\frac {\hbar ^{2}}{2m}}{\mathbf {G}}^{2}}$), it is a good idea to approximate the matrix by a diagonal function which converges to ${\displaystyle {\frac {2m}{\hbar ^{2}{\mathbf {G}}^{2}}}}$ for large ${\displaystyle {\mathbf {G}}}$ vectors, and possess a constant value for small ${\displaystyle {\mathbf {G}}}$ vectors. We actually use the preconditioning function proposed by Teter et. al[1]

${\displaystyle \langle {\mathbf {G}}|{{\bf {K}}}|{\mathbf {G'}}\rangle =\delta _{{{\mathbf {G}}{\mathbf {G'}}}}{\frac {27+18x+12x^{2}+8x^{3}}{27+18x+12x^{2}+8x^{3}+16x^{4}}}\quad {\mbox{and}}\quad x={\frac {\hbar ^{2}}{2m}}{\frac {G^{2}}{1.5E^{{{\rm {kin}}}}({\mathbf {R}})}},}$

with ${\displaystyle E^{{{\rm {kin}}}}({\mathbf {R}})}$ being the kinetic energy of the residual vector. The preconditioned residual vector is then simply

${\displaystyle |p_{n}\rangle ={{\bf {K}}}|R_{n}\rangle .}$