The implementation of the Residual Minimization Method with Direct Inversion in the Iterative Subspace (RMM-DIIS) in VASP[1][2] is based on the original work of Pulay:[3]
- The procedure starts with the evaluation of the preconditioned residual vector for some selected orbital
:
![{\displaystyle
K \vert R^0_m \rangle = K \vert R(\psi^0_m) \rangle
}](/wiki/index.php?title=Special:MathShowImage&hash=5b97f07de3a020496a3c7e88dc6f39c9&mode=mathml)
- where
is the preconditioning function, and the residual is computed as:
![{\displaystyle \vert R(\psi) \rangle = (H-\epsilon_{\rm app}) \vert \psi \rangle
}](/wiki/index.php?title=Special:MathShowImage&hash=4fef61835f83cce1a69cb87d81ad601c&mode=mathml)
- with
![{\displaystyle
\epsilon_{\rm app} = \frac{\langle \psi \vert H \vert \psi \rangle}{\langle \psi \vert S \vert \psi \rangle}
}](/wiki/index.php?title=Special:MathShowImage&hash=6b6f637ac46e9a62bcfe2396cdd1b7a5&mode=mathml)
- Then a Jacobi-like trial step is taken in the direction of the vector:
![{\displaystyle \vert \psi^1_m \rangle = \vert \psi^0_m \rangle + \lambda K \vert R^0_m \rangle
}](/wiki/index.php?title=Special:MathShowImage&hash=d6fa5202c38530510dff6313ca2b831d&mode=mathml)
- and a new residual vector is determined:
![{\displaystyle \vert R^1_m \rangle = \vert R(\psi^1_m) \rangle
}](/wiki/index.php?title=Special:MathShowImage&hash=f4f024a0446dbb0572fde9f4c6bdaacf&mode=mathml)
- Next a linear combination of the initial orbital
and the trial orbital ![{\displaystyle \psi^1_m}](/wiki/index.php?title=Special:MathShowImage&hash=2719fe07c4566567c0115278aa946b1d&mode=mathml)
![{\displaystyle \vert \bar{\psi}^M \rangle = \sum^M_{i=0} \alpha_i \vert \psi^i_m \rangle, \,\, M=1 }](/wiki/index.php?title=Special:MathShowImage&hash=9e9d1a8de14a2a9be104e6d03d2344a7&mode=mathml)
- is sought, such that the norm of the residual vector is minimized. Assuming linearity in the residual vector:
![{\displaystyle \vert \bar{R}^M \rangle = \vert R(\bar{\psi}^M) \rangle = \sum^M_{i=0} \alpha_i \vert R^i_m \rangle
}](/wiki/index.php?title=Special:MathShowImage&hash=8bf817dd817f4dc1edde1aa02cb4862c&mode=mathml)
- this requires the minimization of:
![{\displaystyle \frac{\sum_{ij} \alpha_i^* \alpha_j \langle R^i_m \vert R^j_m \rangle}{\sum_{ij}\alpha_i^* \alpha_j \langle \psi^i_m \vert S \vert \psi^j_m \rangle}
}](/wiki/index.php?title=Special:MathShowImage&hash=588cfac52787ed2cbe1eacd3e63ab470&mode=mathml)
- with respect to
.
- This step is usually called direct inversion of the iterative subspace (DIIS).
- The next trial step (
) starts from
, along the direction
. In each iteration
is increased by 1, and a new trial orbital:
![{\displaystyle \vert \psi^M_m \rangle = \vert \bar{\psi}^{M-1} \rangle + \lambda K \vert \bar{R}^{M-1} \rangle
}](/wiki/index.php?title=Special:MathShowImage&hash=00325d808967ffa7b5169b6d42743c4b&mode=mathml)
- and its corresponding residual vector
are added to the iterative subspace, that is subsequently inverted to yield
.
- The algorithm keeps iterating until the norm of the residual has dropped below a certain threshold, or the maximum number of iterations per orbital has been reached (NRMM).
- Replace
by
and move on to start work on the next orbital, e.g.
.
References