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 .}$