IBRION

From VASP Wiki
Revision as of 13:53, 26 March 2011 by Mmars (talk | contribs)

IBRION = -1 | 0 | 1 | 2 | 3 | 5 | 6 | 7 | 8 | 44 

Default: IBRION = -1 for NSW=−1 or 0
= 0 else

Description: IBRION determines how the ions are updated and moved.


For IBRION=0, a molecular dynamics is performed, whereas all other algorithms are destined for relaxations into a local energy minimum. For difficult relaxation problems it is recommended to use the conjugate gradient algorithm (IBRION=2), which presently possesses the most reliable backup routines. Damped molecular dynamics (IBRION=3) are often useful when starting from very bad initial guesses. Close to the local minimum the RMM-DIIS (IBRION=1) is usually the best choice. IBRION=5 and IBRION=6 are using finite differences to determine the second derivatives (Hessian matrix and phonon frequencies), whereas IBRION=7 and IBRION=8 use density functional perturbation theory to calculate the derivatives.

The ions are not moved, but NSW outer loops are performed. In each outer loop the electronic degrees of freedom are re-optimized (for NSW>0 this obviously does not make much sense, except for test purposes). If no ionic update is required use NSW=0 instead.
Standard ab-initio molecular dynamics. A Verlet algorithm (or fourth-order predictor-corrector if VASP was linked with stepprecor.o) is used to integrate Newton's equations of motion. POTIM supplies the timestep in femto seconds. The parameter SMASS provides additional control.
Mind: At the moment only constant volume MD's are possible.
  • IBRION=1: ionic relaxation (RMM-DIIS).
For IBRION=1, a quasi-Newton (variable metric) algorithm is used to relax the ions into their instantaneous groundstate. The forces and the stress tensor are used to determine the search directions for finding the equilibrium positions (the total energy is not taken into account). This algorithm is very fast and efficient close to local minima, but fails badly if the initial positions are a bad guess (use IBRION=2 in that case). Since the algorithm builds up an approximation of the Hessian matrix it requires very accurate forces, otherwise it will fail to converge. An efficient way to achieve this is to set NELMIN to a value between 4 and 8 (for simple bulk materials 4 is usually adequate, whereas 8 might be required for complex surfaces where the charge density converges very slowly). This forces a minimum of 4 to 8 electronic steps between each ionic step, and guarantees that the forces are well converged at each step.
The implemented algorithm is called RMM-DIIS.[1] It implicitly calculates an approximation of the inverse Hessian matrix by taking into account information from previous iterations. On startup, the initial Hessian matrix is diagonal and equal to POTIM. Information from old steps (which can lead to linear dependencies) is automatically removed from the iteration history, if required. The number of vectors kept in the iterations history (which corresponds to the rank of the Hessian matrix must not exceed the degrees of freedom. Naively the number of degrees of freedom is 3*(NIONS-1). But symmetry arguments or constraints can reduce this number significantly.
There are two algorithms build in to remove information from the iteration history:
  1. If NFREE is set in the INCAR file, only up to NFREE ionic steps are kept in the iteration history (the rank of the approximate Hessian matrix is not larger than NFREE).
  2. If NFREE is not specified, the criterion whether information is removed from the iteration history is based on the eigenvalue spectrum of the inverse Hessian matrix: if one eigenvalue of the inverse Hessian matrix is larger than 8, information from previous steps is discarded.
For complex problems NFREE can usually be set to a rather large value (i.e. 10-20), however systems of low dimensionality require a carful setting of NFREE (or preferably an exact counting of the number of degrees of freedom). To increase NFREE beyond 20 rarely improves convergence. If NFREE is set to too large, the RMM-DIIS algorithm might diverge.
The choice of a reasonable POTIM is also important and can speed up calculations significantly, we recommend to find an optimal POTIM using IBRION=2 or performing a few test calculations (see below).
  • IBRION=2: ionic relaxation (conjugate gradient algorithm).
  • IBRION=3: ionic relaxation (damped molecular dynamics).
  • IBRION=5 and 6: second derivatives, Hessian matrix and phonon frequencies (finite differences).
  • IBRION=7 and 8: second derivatives, Hessian matrix and phonon frequencies (perturbation theory).
  • IBRION=44

Related Tags and Sections

NSW, SMASS, POTIM, NFREE

References


Contents