The ALGO tag is a convenient option to specify the electronic minimisation algorithm in VASP.4.5 and later versions. Except for ``None'' and ``Nothing'', ``Exact'' and ``Diag'' (which must be spelled out), the first letter determines the applied algorithm. Conjugate, Subrot, Eigenval, Exact, None and Nothing are only supported by VASP.5.2.12 and newer versions.
ALGO = Normal selects IALGO = 38 (blocked Davidson iteration scheme), whereas ALGO = Very_Fast selects IALGO = 48 (RMM-DIIS). A faily robust mixture of both algorithm is selected for ALGO = Fast. In this case, Davidson (IALGO = 38) is used for the initial phase, and then VASP switches to RMM-DIIS (IALGO = 48). Subsequencly, for each ionic update, one IALGO = 38 sweep is performed for each ionic step (except the first one).
The ``all band simultaneous update of orbitals'' can be selected using ALGO = Conjugate or ALGO = All (IALGO = 58, in both cases the same conjugate gradient algorithm is used). A damped velocity friction algorithm is selected using ALGO = Damped (IALGO = 53). ALGO = Subrot selects subspace rotation or diagonalization in the sub-space spanned by the calculated NBANDS orbitals (IALGO = 4). ALGO = Exact or ALGO = Diag performs an exact diagonalization (IALGO = 90), and we recommend to use this if more than 30-50 % of the states are calculated (e.g. for or RPA calculations). ALGO = Eigenval allows to recalculate one electron energies, density of state and perform selected postprocessing using the current orbitals (IALGO = 3) e.g. read from WAVECAR. ALGO = None or ALGO = Nothing allows to recalculate the density of states (eigenvalues from WAVECAR, e.g. using different smearing or tetrahedron method) or perform other selected postprocessing using the current orbitals and one electron energies (IALGO = 2) e.g. read from WAVECAR.
See next sections for details (6.47).