IBRION: Difference between revisions

From VASP Wiki
No edit summary
 
(69 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{TAGDEF|IBRION|-1 {{!}} 0 {{!}} 1 {{!}} 2 {{!}} 3 {{!}} 5 {{!}} 6 {{!}} 7 {{!}} 8 {{!}} 44}}
{{TAGDEF|IBRION|-1 {{!}} 0 {{!}} 1 {{!}} 2 {{!}} 3 {{!}} 5 {{!}} 6 {{!}} 7 {{!}} 8 {{!}} 11 {{!}} 12 {{!}} 40 {{!}} 44}}
{{DEF|IBRION|-1|for {{TAG|NSW}}{{=}}−1 or 0|0|else}}
{{DEF|IBRION|-1|for {{TAG|NSW}}{{=}}−1 or 0|0|else}}


Description: {{TAG|IBRION}} determines how the ions are updated and moved.
Description: determines how the crystal structure changes during the calculation:
:::* no update
:::** {{TAG|IBRION}}=-1 (Avoid setting {{TAG|IBRION}}=-1 with {{TAG|NSW}}>0 to prevent recomputing the same structure {{TAG|NSW}} times).
 
:::* [[#Molecular dynamics|Molecular dynamics]]
:::** {{TAG|IBRION}}=0
 
:::* [[#Structure optimization|Structure optimization]]
:::** {{TAG|IBRION}}=1 RMM-DIIS
:::** {{TAG|IBRION}}=2 conjugate gradient
:::** {{TAG|IBRION}}=3 damped molecular dynamics
 
:::* [[#Computing the phonon modes|Computing phonon modes]]
:::** {{TAG|IBRION}}=5 finite differences without symmetry
:::** {{TAG|IBRION}}=6 finite differences with symmetry
:::** {{TAG|IBRION}}=7 perturbation theory without symmetry
:::** {{TAG|IBRION}}=8 perturbation theory with symmetry
 
:::* [[#Analyzing transition states|Analyzing transition states]]
:::** {{TAG|IBRION}}=40 [[IRC calculations|intrinsic-reaction-coordinate calculations]]
:::** {{TAG|IBRION}}=44 [[improved dimer method]]
 
:::* [[#User-supplied interactive changes|User-supplied interactive changes]]
:::** {{TAG|IBRION}}=11 from standard input
:::** {{TAG|IBRION}}=12 from Python plugin
 
----
----
For {{TAG|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 ({{TAG|IBRION}}=2), which presently possesses the most reliable backup routines. Damped molecular dynamics ({{TAG|IBRION}}=3) are often useful when starting from very bad initial guesses. Close to the local minimum the RMM-DIIS ({{TAG|IBRION}}=1) is usually the best choice. {{TAG|IBRION}}=5 and {{TAG|IBRION}}=6 are using finite differences to determine the second derivatives (Hessian matrix and phonon frequencies), whereas {{TAG|IBRION}}=7 and {{TAG|IBRION}}=8 use density functional perturbation theory to calculate the derivatives.


* {{TAG|IBRION}}=-1: no update.
== Molecular dynamics ==
:The ions are not moved, but {{TAG|NSW}} outer loops are performed. In each outer loop the electronic degrees of freedom are re-optimized (for {{TAG|NSW}}>0 this obviously does not make much sense, except for test purposes). If no ionic update is required use {{TAG|NSW}}=0 instead.


* {{TAG|IBRION}}=0: molecular dynamics.
In [[:Category:Molecular dynamics|molecular-dynamics (MD) simulations]] the positions of the ions are updated using a classical equation of motion for the ions. There are several algorithms for the [[time-propagation algorithms in molecular dynamics|time propagation in MD]] controlled by selecting {{TAG|MDALGO}} and the choice of the [[thermostats]]. The MD run performs {{TAG|NSW}} timesteps of length {{TAG|POTIM}}.
: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. {{TAG|POTIM}} supplies the timestep in femto seconds. The parameter {{TAG|SMASS}} provides additional control.


:'''Mind''': At the moment only constant volume MD's are possible.
Frequently, performing an [[electronic minimization|ab-initio calculations]] in every step of an MD simulation is too expensive so that [[:Category:Machine-learned_force_fields|machine-learned force fields]] are needed.
{{NB|tip|In order to limit the output of the MD simulation, control the verbosity by setting {{TAG|NWRITE}}{{=}}0,1, or reduce the frequency of output using {{TAG|ML_OUTBLOCK}}, {{TAG|NBLOCK}}, or {{TAG|KBLOCK}}.}}


* {{TAG|IBRION}}=1: ionic relaxation (RMM-DIIS).
== Structure optimization ==
:For {{TAG|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 {{TAG|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 {{TAG|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[26]. 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 {{TAG|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.
VASP optimizes the structure based on the degrees of freedom selected with the {{TAG|ISIF}} tag and (if used) the selective dynamics {{FILE|POSCAR}} file.
:There are two algorithms build in to remove information from the iteration history:
Generally, the larger the number of degrees of freedom, the harder it is to find the optimal solution.
#If {{TAG|NFREE}} is set in the {{FILE|INCAR}} file, only up to {{TAG|NFREE}} ionic steps are kept in the iteration history (the rank of the approximate Hessian matrix is not larger than {{TAG|NFREE}}).
To find the solution, VASP provides multiple algorithms:
#If {{TAG|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 {{TAG|NFREE}} can usually be set to a rather large value (i.e. 10-20), however systems of low dimensionality require a carful setting of {{TAG|NFREE}} (or preferably an exact counting of the number of degrees of freedom). To increase {{TAG|NFREE}} beyond 20 rarely improves convergence. If {{TAG|NFREE}} is set to too large, the RMM-DIIS algorithm might diverge.


:The choice of a reasonable {{TAG|POTIM}} is also important and can speed up calculations significantly, we recommend to find an optimal {{TAG|POTIM}} using {{TAG|IBRION}}=2 or performing a few test calculations (see below).
* RMM-DIIS ({{TAG|IBRION}}=1) reduces the forces by linear combination of previous positions. It is the method of choice for larger systems (>20 degrees of freedom) that are reasonably close to the ground-state structure.
* Conjugate gradient ({{TAG|IBRION}}=2) finds the optimal step size along a search direction. It is a robust default choice but may need more iterations than RMM-DIIS.
* Damped molecular dynamics ({{TAG|IBRION}}=3) runs a MD simulation with decreasing velocity of the ions. Use this for large systems far away from the minimum to get to a better starting point for the other algorithms.


* {{TAG|IBRION}}=2: ionic relaxation (conjugate gradient algorithm).
Consult the [[structure optimization]] page for advise on how to choose the optimization algorithm.
* {{TAG|IBRION}}=3: ionic relaxation (damped molecular dynamics).
* {{TAG|IBRION}}=5 and 6: second derivatives, Hessian matrix and phonon frequencies (finite differences).
* {{TAG|IBRION}}=7 and 8: second derivatives, Hessian matrix and phonon frequencies (perturbation theory).
* {{TAG|IBRION}}=44


== Related Tags and Sections ==
== Computing the phonon modes ==
{{TAG|NSW}},
 
The second-order derivatives of the total energy <math>E</math> with respect to ionic positions <math>R_{\alpha i}</math> of ion <math>\alpha</math> in the direction <math>i</math>, is computed using a first-order derivative of the [[forces]] <math>F_{\beta j}</math>. Then, the dynamical matrix <math>D_{\alpha i \beta j}</math> is constructed, diagonalized, and the phonon modes and frequencies of the system are reported in the {{FILE|OUTCAR}} file and {{FILE|vaspout.h5}}. Also see [[Phonons: Theory|theory on phonons]].
{{NB|tip|It may be necessary to set {{TAGO|EDIFF|<= 1E-6}} because the default ({{TAGO|EDIFF|1E-4}}) often results in unacceptably large errors.}}
VASP implements two different methods to compute the phonon modes and can use symmetry to reduce the number of computed displacements:
 
* {{TAGO|IBRION|5}} [[Phonons from finite differences|finite differences]] '''without''' symmetry
* {{TAGO|IBRION|6}} [[Phonons from finite differences|finite differences]] '''with''' symmetry
* {{TAGO|IBRION|7}} [[Phonons_from_density-functional-perturbation_theory|density-functional-perturbation theory]] '''without''' symmetry
* {{TAGO|IBRION|8}} [[Phonons_from_density-functional-perturbation_theory|density-functional-perturbation theory]] '''with''' symmetry
 
For finite differences, the elastic tensors and internal strain tensors is computed for {{TAG|ISIF}}>=3.
Compute Born-effective charges, piezoelectric constants, and the ionic contribution to the dielectric tensor by specifying {{TAGO|LEPSILON|.TRUE.}} ([[Linear response|linear response theory]]) or {{TAGO|LCALCEPS|.TRUE.}} (finite external field).
 
Also see [[computing the phonon dispersion and DOS]].
 
== Analyzing transition states ==
 
To study the kinetics of chemical reactions, one may want to construct [[transition states]] or follow the reaction path.
For the analysis of transition states the following methods are available:
 
* Setting {{TAGO|IBRION|40}}, you can start from a transition state and monitor the energy along an intrinsic-reaction coordinate (IRC). The [[IRC calculations]] section describes this method.
* With the [[improved dimer method]] ({{TAGO|IBRION|44}}), you can search for a the transition state starting from an arbitrary structure in the investigated phase space.
* The [[nudged elastic bands]] method finds an approximate reaction path based on the initial and final structure, i.e., reactant and product.
 
== Interactively supplied positions and lattice vectors ==
 
Occasionally, you may want to run VASP for related structures where the overhead of restarting VASP is significant.
In these scenarios, VASP provides the following alternatives
 
* With {{TAGO|IBRION|11}}, you can provide new structures via the standard input. For {{TAG|ISIF}}>=3, a complete {{FILE|POSCAR}} file is read, otherwise just the positions in fractional coordinates.
 
<!--
* If you [[Makefile.include#Plugins_(optional)|linked VASP with Python]], you can [[Writing a Python plugin|write a Python plugin]] to modify the structure. Set {{TAGO|IBRION|12}} or {{TAGO|PLUGINS/STRUCTURE|T}} to activate it.
-->
 
== Related tags and articles ==
 
Related tags: {{TAG|NSW}},
{{TAG|POTIM}},
{{TAG|MDALGO}},
{{TAG|SMASS}},
{{TAG|SMASS}},
{{TAG|POTIM}},
{{TAG|NFREE}},
{{TAG|NFREE}}
{{TAG|ISIF}},
----
{{TAG|LEPSILON}},
[[The_VASP_Manual|Contents]]
{{TAG|LCALCEPS}}
 
Related files: {{FILE|POSCAR}}, {{FILE|CONTCAR}}, {{FILE|XDATCAR}}, {{FILE|vaspout.h5}}
 
Related topics and how-to pages:  [[Time-propagation algorithms in molecular dynamics]],
[[Structure optimization]],
[[POSCAR#Full_format_specification|Selective dynamics]],
[[Computing the phonon dispersion and DOS]],
[[Transition states]],
[[IRC calculations]],
[[Improved Dimer Method]],
[[Writing a Python plugin]]
 
{{sc|IBRION|Examples|Examples that use this tag}}


[[Category:INCAR]][[Category:Dynamics]]
[[Category:INCAR tag]][[Category:Ionic minimization]][[Category:Molecular dynamics]][[Category:Phonons]][[Category:Transition states]]

Latest revision as of 12:53, 18 October 2024

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

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

Description: determines how the crystal structure changes during the calculation:

  • no update
    • IBRION=-1 (Avoid setting IBRION=-1 with NSW>0 to prevent recomputing the same structure NSW times).

Molecular dynamics

In molecular-dynamics (MD) simulations the positions of the ions are updated using a classical equation of motion for the ions. There are several algorithms for the time propagation in MD controlled by selecting MDALGO and the choice of the thermostats. The MD run performs NSW timesteps of length POTIM.

Frequently, performing an ab-initio calculations in every step of an MD simulation is too expensive so that machine-learned force fields are needed.

Tip: In order to limit the output of the MD simulation, control the verbosity by setting NWRITE=0,1, or reduce the frequency of output using ML_OUTBLOCK, NBLOCK, or KBLOCK.

Structure optimization

VASP optimizes the structure based on the degrees of freedom selected with the ISIF tag and (if used) the selective dynamics POSCAR file. Generally, the larger the number of degrees of freedom, the harder it is to find the optimal solution. To find the solution, VASP provides multiple algorithms:

  • RMM-DIIS (IBRION=1) reduces the forces by linear combination of previous positions. It is the method of choice for larger systems (>20 degrees of freedom) that are reasonably close to the ground-state structure.
  • Conjugate gradient (IBRION=2) finds the optimal step size along a search direction. It is a robust default choice but may need more iterations than RMM-DIIS.
  • Damped molecular dynamics (IBRION=3) runs a MD simulation with decreasing velocity of the ions. Use this for large systems far away from the minimum to get to a better starting point for the other algorithms.

Consult the structure optimization page for advise on how to choose the optimization algorithm.

Computing the phonon modes

The second-order derivatives of the total energy with respect to ionic positions of ion in the direction , is computed using a first-order derivative of the forces . Then, the dynamical matrix is constructed, diagonalized, and the phonon modes and frequencies of the system are reported in the OUTCAR file and vaspout.h5. Also see theory on phonons.

Tip: It may be necessary to set EDIFF because the default (EDIFF = 1E-4) often results in unacceptably large errors.

VASP implements two different methods to compute the phonon modes and can use symmetry to reduce the number of computed displacements:

For finite differences, the elastic tensors and internal strain tensors is computed for ISIF>=3. Compute Born-effective charges, piezoelectric constants, and the ionic contribution to the dielectric tensor by specifying LEPSILON = .TRUE. (linear response theory) or LCALCEPS = .TRUE. (finite external field).

Also see computing the phonon dispersion and DOS.

Analyzing transition states

To study the kinetics of chemical reactions, one may want to construct transition states or follow the reaction path. For the analysis of transition states the following methods are available:

  • Setting IBRION = 40, you can start from a transition state and monitor the energy along an intrinsic-reaction coordinate (IRC). The IRC calculations section describes this method.
  • With the improved dimer method (IBRION = 44), you can search for a the transition state starting from an arbitrary structure in the investigated phase space.
  • The nudged elastic bands method finds an approximate reaction path based on the initial and final structure, i.e., reactant and product.

Interactively supplied positions and lattice vectors

Occasionally, you may want to run VASP for related structures where the overhead of restarting VASP is significant. In these scenarios, VASP provides the following alternatives

  • With IBRION = 11, you can provide new structures via the standard input. For ISIF>=3, a complete POSCAR file is read, otherwise just the positions in fractional coordinates.


Related tags and articles

Related tags: NSW, POTIM, MDALGO, SMASS, NFREE, ISIF, LEPSILON, LCALCEPS

Related files: POSCAR, CONTCAR, XDATCAR, vaspout.h5

Related topics and how-to pages: Time-propagation algorithms in molecular dynamics, Structure optimization, Selective dynamics, Computing the phonon dispersion and DOS, Transition states, IRC calculations, Improved Dimer Method, Writing a Python plugin

Examples that use this tag