IBRION: Difference between revisions

From VASP Wiki
 
(29 intermediate revisions by 8 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
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 (Avoid setting {{TAG|IBRION}}=-1 with {{TAG|NSW}}>0 to prevent recomputing the same structure {{TAG|NSW}} times).


== {{TAG|IBRION}}=-1: no update.==
:::* [[#Molecular dynamics|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


== {{TAG|IBRION}}=0: molecular dynamics.==
:::* [[#Structure optimization|Structure optimization]]
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.
:::** {{TAG|IBRION}}=1 RMM-DIIS
:::** {{TAG|IBRION}}=2 conjugate gradient
:::** {{TAG|IBRION}}=3 damped molecular dynamics


'''Mind''': At the moment only constant volume MD's are possible.
:::* [[#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


== {{TAG|IBRION}}=1: ionic relaxation (RMM-DIIS).==
:::* [[#Analyzing transition states|Analyzing transition states]]
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.
:::** {{TAG|IBRION}}=40 [[IRC calculations|intrinsic-reaction-coordinate calculations]]
:::** {{TAG|IBRION}}=44 [[improved dimer method]]


The implemented algorithm is called RMM-DIIS.<ref name="pulay:cpl:80"/> 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.
:::* [[#User-supplied interactive changes|User-supplied interactive changes]]
:::** {{TAG|IBRION}}=11 from standard input
:::** {{TAG|IBRION}}=12 from Python plugin


There are two algorithms build in to remove information from the iteration history:
----
#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}}).
#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.
== Molecular dynamics ==


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


== {{TAG|IBRION}}=2: ionic relaxation (conjugate gradient algorithm).==
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.
A conjugate-gradient algorithm (a simple discussion of this algorithm can be found for instance in ''Numerical Recipes'', by Press ''et al.''<ref name="press"/>) is used to relax the ions into their instantaneous groundstate. In the first step ions (and cell shape) are changed along the direction of the steepest descent (i.e. the direction of the calculated forces and stress tensor). The conjugate gradient method requires a line minimization, which is performed in several steps:
{{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}}.}}
#First a trial step into the search direction (scaled gradients) is done, with the length of the trial step controlled by the {{TAG|POTIM}} tag. Then the energy and the forces are recalculated.
#The approximate minimum of the total energy is calculated from a cubic (or quadratic) interpolation taking into account the change of the total energy and the change of the forces (3 pieces of information), then a corrector step to the approximate minimum is performed.
#After the corrector step the forces and energy are recalculated and it is checked whether the forces contain a significant component parallel to the previous search direction. If this is the case, the line minimization is improved by further corrector steps using a variant of Brent's algorithm.<ref name="press"/>


To summarize: In the first ionic step the forces are calculated for the initial configuration read from the {{FILE|POSCAR}} file, the second step is a trial (or predictor step), the third step is a corrector step. If the line minimization is sufficiently accurate in this step, the next trial step is performed.
== Structure optimization ==


:NSTEP:
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.
:# initial positions
Generally, the larger the number of degrees of freedom, the harder it is to find the optimal solution.
:# trial step
To find the solution, VASP provides multiple algorithms:
:# corrector step, i.e. positions corresponding to anticipated minimum
:# trial step
:# corrector step
::...
== {{TAG|IBRION}}=3: ionic relaxation (damped molecular dynamics).==
If a damping factor is supplied in the {{FILE|INCAR}} file by means of the {{TAG|SMASS}} tag, a damped second order equation of motion is used for the update of the ionic degrees of freedom:
:<math>
{\ddot {\vec x}} = -2 \alpha {\vec F} - \mu  {\dot {\vec x}},
</math>
where {{TAG|SMASS}} supplies the damping factor &mu;, and {{TAG|POTIM}} controls &alpha;. A simple velocity Verlet algorithm is used to integrate the equation, the discretised equation reads:  
:<math>
\begin{align}
{\vec v_{N+1/2}} =&  \Big((1-\mu/2) {\vec v_{N-1/2}} - 2\alpha {\vec F_N} \Big)/(1+\mu/2)\\
{\vec x_{N+1}} =&  {\vec x_{N+1}} + {\vec v_{N+1/2}}
\end{align}
</math>
One may immediately recognize, that &mu;=2 is equivalent to a simple steepest descent algorithm (of course without line optimization). Hence, &mu;=2 corresponds to maximal damping, &mu;=0 corresponds to no damping. The optimal damping factor depends on the Hessian matrix (matrix of the second derivatives of the energy with respect to the atomic positions). A reasonable first guess for &mu; is usually 0.4.


Mind that our implementation is particular user-friendly, since changing &mu; usually does not require to re-adjust the time step {{TAG|POTIM}}. To choose an optimal time step and damping factor, we recommend the following two step procedure: First fix &mu; (for instance to 1) and adjust {{TAG|POTIM}}. {{TAG|POTIM}} should be chosen as large as possible without getting divergence in the total energy. Then decrease &mu; and keep {{TAG|POTIM}} fixed. If {{TAG|POTIM}} and {{TAG|SMASS}} are chosen correctly, the damped molecular dynamics mode usually outperforms the conjugate gradient method by a factor of two.
* 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.


If {{TAG|SMASS}} is not set in the {{FILE|INCAR}} file (respectively {{TAG|SMASS}}<0), a velocity quench algorithm is used. In this case the ionic positions are updated according using the following algorithm: '''F''' are the current forces, and &alpha; equals {{TAG|POTIM}}. This equation implies that, if the forces are antiparallel to the velocities, the velocities are quenched to zero. Otherwise the velocities are made parallel to the present forces, and they are increased by an amount that is proportional to the forces.
Consult the [[structure optimization]] page for advise on how to choose the optimization algorithm.


'''Mind''': For {{TAG|IBRION}}=3, a reasonable time step ''must'' be supplied by the {{TAG|POTIM}} parameter. Too large time steps will result in divergence, too small ones will slow down the convergence. The stable time step is usually twice the ''smallest'' line minimization step in the conjugate gradient algorithm.
== Computing the phonon modes ==


<span id="ibrion56">
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:


== {{TAG|IBRION}}=5 and 6: second derivatives, Hessian matrix and phonon frequencies (finite differences).==
* {{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


A how to for phonon calculations from finite differences is also found here: {{TAG|Phonons from finite differences}}.
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).


{{TAG|IBRION}}=5, is available as of VASP.4.5, {{TAG|IBRION}}=6 starting from VASP.5.1. Both flags allow to determine the Hessian matrix (matrix of the second derivatives of the energy with respect to the atomic positions) and the vibrational frequencies of a system. Only zone centered (&Gamma;-point) frequencies are calculated automatically and printed after
Also see [[computing the phonon dispersion and DOS]].


Eigenvectors and eigenvalues of the dynamical matrix
== Analyzing transition states ==


To calculate the Hessian matrix, finite differences are used, i.e. each ion is displaced in the direction of each Cartesian coordinate, and from the forces the Hessian matrix is determined. The two modes differ in the way symmetry is considered. For {{TAG|IBRION}}=5, all atoms are displaced in all three Cartesian directions, resulting in a significant computational effort even for moderately sized high symmetry systems. For {{TAG|IBRION}}=6, only symmetry inequivalent displacements are considered, and the remainder of the Hessian matrix is filled using symmetry considerations.
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:


Selective dynamics are presently only supported for {{TAG|IBRION}}=5; in this case, only those components of the Hessian matrix are calculated for which the selective dynamics tags are set to .TRUE. in the {{FILE|POSCAR}} file. Contrary to the conventional behavior, the selective dynamics tags now refer to the Cartesian components of the Hessian matrix. For the following {{FILE|POSCAR}} file, for instance,
* 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.


Cubic BN
== Interactively supplied positions and lattice vectors ==
    3.57
  0.0 0.5 0.5
  0.5 0.0 0.5
  0.5 0.5 0.0
    1 1
selective
Direct
  0.00 0.00 0.00  F F F
  0.25 0.25 0.25  T F F


atom 2 is displaced in the ''x''-direction only, and only the ''x''-component of the second atom of the Hessian matrix is calculated.
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


Three parameters influence the determination of the Hessian matrix: The parameter {{TAG|NFREE}} determines how many displacements are used for each direction and ion, and {{TAG|POTIM}} determines the step size. The step size is defaulted to 0.015 &Aring;(starting from VASP.5.1), if too large values are supplied in the input file. Expertise shows that this is a very reasonable compromise.
* 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.


{{TAG|NFREE}}=2 uses central differences, ''i.e.'', each ion is displaced by a small positive and negative displacement, &plusmn;{{TAG|POTIM}}, along each of the cartesian directions. For {{TAG|NFREE}}=4, four displacement along each of the cartesian directions are used: &plusmn;{{TAG|POTIM}} and &plusmn;2&times;{{TAG|POTIM}}.
<!--
* 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.
-->


For {{TAG|NFREE}}=1, only a single displacement is applied (it is strongly discouraged to use {{TAG|NFREE}}=1).
== Related tags and articles ==


Finally, {{TAG|IBRION}}=6 and {{TAG|ISIF}}&ge;3 allows to calculate the elastic constants. The elastic tensor is determined by performing six finite distortions of the lattice and deriving the elastic constants from the strain-stress relationship.<ref name="lepage:prb:02"/> The elastic tensor is calculated both, for rigid ions, as well, as allowing for relaxation of the ions. The elastic moduli for rigid ions are written after the line
Related tags: {{TAG|NSW}},
 
{{TAG|POTIM}},
SYMMETRIZED ELASTIC MODULI (kBar)
{{TAG|MDALGO}},
 
The ionic contributions are determined by inverting the ionic Hessian matrix and multiplying with the internal strain tensor,<ref name="wu:prb:05"/> and the corresponding contributions are written after the lines:
 
ELASTIC MODULI CONTR FROM IONIC RELAXATION (kBar)
 
The final elastic moduli including both, the contributions for distortions with rigid ions and the contributions from the ionic relaxations, are summarized at the very end:
 
TOTAL ELASTIC MODULI (kBar)
 
There are a few caveats to this approach: most notably the plane wave cutoff needs to be sufficiently large to converge the stress tensor. This is usually only achieved if the default cutoff is increased by roughly 30%, but it is strongly recommended to increase the cutoff systematically (e.g. in steps of 15%), until full convergence is achieved.
 
Born effective charges, piezoelectric constants, and the ionic contribution to the dielectric tensor can be
calculated additionally by specifying {{TAG|LEPSILON}}=.TRUE. (linear response theory) or {{TAG|LCALCEPS}}=.TRUE. (finite external field).
 
'''Comments with respect to older releases (pre VASP.5.1)''': In some older versions, {{TAG|NSW}} (number of ionic steps) must be set to 1 in the {{FILE|INCAR}} file, since {{TAG|NSW}}=0 sets the {{TAG|IBRION}}=&minus;1 regardless of the value supplied in the {{FILE|INCAR}} file.
 
Furthermore, although VASP.4.6 supports {{TAG|IBRION}}=5-6, VASP.4.6 does not change the set of '''k'''-points automatically (often the displaced configurations require a different '''k'''-point grid). Hence, the finite difference routine might yield incorrect results in VASP.4.6.
</span>
 
== {{TAG|IBRION}}=7 and 8: second derivatives, Hessian matrix, and phonon frequencies (perturbation theory).==
{{TAG|IBRION}}=7 and {{TAG|IBRION}}=8 are only supported as of VASP.5.1. It determines the Hessian matrix (matrix of second derivatives with respect to the position of the ions) using density functional perturbation theory. {{TAG|IBRION}}=7 does not apply symmetry, whereas {{TAG|IBRION}}=8 uses symmetry to reduce the number of displacements. The output is similar as for [[IBRION#ibrion56|'''IBRION'''=5 and 6]]. Specifically, the second derivates with respect to ionic displacements (interatomic force constants) and the mixed second derivative with respect to the strain and the ionic displacement (internal strain tensor) are evaluated. Although the contributions from the ionic relaxations to the elastic tensor are calculated, the ion-clamped elastic tensor (rigid ion) is not determined. Born effective charges, piezoelectric constants and the ionic contributions to the dielectric tensor are calculated if {{TAG|LEPSILON}}=.TRUE. is specified in the INCAR file.
 
In general, the density functional perturbation routines in VASP are somewhat rudimentary and only support displacements commensurate with the supercell. In other words, VASP can only determine phonon frequencies at the Gamma point of the supercell. Therefore, the code offers little advantages over the finite  differences methods discussed above. In particular, the linear response is limited to LDA and GGA functionals and it does not determine the elastic tensors, since the linear response with respect to the strain tensor is not implemented. The only advantage of the linear response routines is that they eliminate the need to choose the magnitude of the finite displacement. Therefore, it might be helpful to first calculate phonon frequencies using linear response and then to switch to finite differences and determine the largest displacement that will produce results compatible with the linear response routines.
 
A few technical comments are in order at this point. VASP solves the linear Sternheimer equation to determined the linear response of the orbitals. Hence, unoccupied orbitals are not required. Internally, the VASP routines for linear response rely on finite differences in two places. (i)  The first place is the determination of the second derivative of the exchange correlation functional: since most functionals do not support an algebraic determination of second derivatives, VASP generally resorts to finite differences to determine the second order change of the exchange correlation-potential and the PAW one-center terms for each atomic displacement. (ii) Second, after VASP has determined the first-order change of the orbitals, it computes all second derivatives using finite displacements. To do this, VASP displaces the selected atoms in the selected directions adds the calculated linear response to the orbitals, and finally determines the differences in the forces and the stress for a positive and negative displacement. It can be shown that this yields exactly the second order force constants and the internal strain tensor, respectively. The Born effective charges are determined by contracting the linear response of the orbitals over the "polarization" vector (30) in Ref. 4.
 
== {{TAG|IBRION}}=44: the Improved Dimer Method.==
This method is described in the {{TAG|Improved Dimer Method}} section.
 
== Some general comments ==
For {{TAG|IBRION}}=1, 2, and 3, the flag {{TAG|ISIF}} determines whether the ions and/or the cell shape is changed. Update of the cell shape is supported for molecular dynamics ({{TAG|IBRION}}=0) only if the dynamics module of Tomas Bucko (precompiler flag <tt>-Dtbdyn</tt>) is used.
 
Within all relaxation algorithms ({{TAG|IBRION}}=1, 2, and 3) the parameter {{TAG|POTIM}} should be supplied in the {{FILE|INCAR}} file. For {{TAG|IBRION}}>0, ''the forces are scaled internally before calling the minimization routine''. Therefore for relaxations, {{TAG|POTIM}} has no physical meaning and serves only as a scaling factor. For many systems, the optimal {{TAG|POTIM}} is around 0.5. Because the Quasi-Newton algorithm and the damped algorithms are sensitive to the choice of this parameter, use {{TAG|IBRION}}=2, if you are not sure how large the optimal {{TAG|POTIM}} is.
 
In this case, the {{FILE|OUTCAR}} file and <tt>stdout</tt> will contain a line indicating a reliable {{TAG|POTIM}}. For {{TAG|IBRION}}=2, the following lines will be written to <tt>stdout</tt> after each corrector step (usually each odd step):
 
  trial: gam=  .00000 g(F)=  .152E+01 g(S)=  .000E+00 ort = .000E+00
  (trialstep = .82)
 
The quantity <tt>gam</tt> is the conjugation parameter to the previous step, <tt>g(F)</tt> and <tt>g(S)</tt> are the norm of the force respectively the norm of the stress tensor. The quantity <tt>ort</tt> is an indicator whether this search direction is orthogonal to the last search direction (for an optimal step this quantity should be much smaller than <tt>(g(F) + g(S))</tt>. The quantity <tt>trialstep</tt> is the size of the current trialstep. This value is the average step size leading to a line minimization in the previous ionic step. An optimal {{TAG|POTIM}} can be determined, by multiplying the current {{TAG|POTIM}} with the quantity trialstep.
 
After at the end of a trial step, the following lines are written to <tt>stdout</tt>:
 
  trial-energy change:  -1.153185  1.order  -1.133  -1.527  -.739
  step:  1.7275(harm=  2.0557)  dis=  .12277 
                            next Energy= -1341.57 (dE= -.142E+01)
 
The quantity <tt>trial-energy</tt> change is the change of the energy in the trial step. The first value after <tt>1.order</tt> is the expected energy change calculated from the forces: ('''F'''(start)+'''F'''(trial))/2&times;change of positions. The second and third value corresponds to  '''F'''(start)&times;change of positions, and '''F'''(trial)&times;change of positions.
 
The first value in the second line is the size of the step leading to a line minimization along the current search direction. It is calculated from a third order interpolation formula using data from the start and trial step (forces and energy change). <tt>harm</tt> is the optimal step using a second order (or harmonic) interpolation. Only information on the forces is used for the harmonic interpolation. Close to the minimum both values should be similar. <tt>dis</tt> is the maximum distance moved by the ions in fractional (direct) coordinates. <tt>next Energy</tt> gives an indication how large the next energy should be (i.e. the energy at the minimum of the line minimization), dE is the estimated energy change.
 
The {{FILE|OUTCAR}} file will contain the following lines, at the end of each trial step:
 
  trial-energy change:  -1.148928  1.order  -1.126  -1.518  -.735
  (g-gl).g =  .152E+01      g.g  =  .152E+01  gl.gl    =  .000E+00
  g(Force)  =  .152E+01  g(Stress)=  .000E+00 ortho    =  .000E+00
  gamma    =    .00000
  opt step  =  1.72745  (harmonic =  2.05575) max dist = .12277085
  next E    = -1341.577507  (d E  =  1.42496)
 
The line <tt>trial-energy change</tt> was already discussed. <tt>g(Force)</tt> corresponds to <tt>g(F)</tt>, <tt>g(Stress)</tt> to <tt>g(S)</tt>, <tt>ortho</tt> to <tt>ort</tt>, <tt>gamma</tt> to <tt>gam</tt>. The values after <tt>gamma</tt> correspond to the second line (<tt>step:</tt> ...) previously described.
 
== Related Tags and Sections ==
{{TAG|NSW}},
{{TAG|SMASS}},
{{TAG|SMASS}},
{{TAG|POTIM}},
{{TAG|NFREE}},
{{TAG|NFREE}},
{{TAG|ISIF}},
{{TAG|ISIF}},
{{TAG|LEPSILON}},
{{TAG|LEPSILON}},
{{TAG|LCALCEPS}},
{{TAG|LCALCEPS}}
{{TAG|Improved Dimer Method}}
 
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}}
{{sc|IBRION|Examples|Examples that use this tag}}


== References ==
[[Category:INCAR tag]][[Category:Ionic minimization]][[Category:Molecular dynamics]][[Category:Phonons]][[Category:Transition states]]
<references>
<ref name="pulay:cpl:80">[http://dx.doi.org/10.1016/0009-2614(80)80396-4 P. Pulay, Chem. Phys. Lett. 73, 393 (1980).]</ref>
<ref name="press">W. H. Press, B. P. Flannery, S. A. Teukolsky, and W. T. Vetterling, ''Numerical Recipes'' (Cambridge University Press, New York, 1986).</ref>
<ref name="lepage:prb:02">[http://link.aps.org/doi/10.1103/PhysRevB.65.104104 Y. Le Page and P. Saxe, Phys. Rev. B 65, 104104 (2002).]</ref>
<ref name="wu:prb:05">[http://link.aps.org/doi/10.1103/PhysRevB.72.035105 X. Wu, D. Vanderbilt, and D. R. Hamann, Phys. Rev. B 72, 035105 (2005).]</ref>
</references>
----
 
[[Category:INCAR]][[Category:Structural Optimization]][[Category:Molecular Dynamics]][[Category:Ionic Minimization Methods]][[Category:Lattice Vibrations]][[Category:Phonons]]

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