|
|
| (91 intermediate revisions by 6 users not shown) |
| Line 1: |
Line 1: |
| {{TAGDEF|MDALGO|0 {{!}} 1 {{!}} 2 {{!}} 3 {{!}} 11 {{!}} 21 {{!}} 13|0}} | | {{TAGDEF|MDALGO|0 {{!}} 1 {{!}} 2 {{!}} 3 {{!}} 4 {{!}} 5 {{!}} 11 {{!}} 21 {{!}} 13 |0}} |
|
| |
|
| Description: {{TAG|MDALGO}} specifies the molecular dynamics simulation protocol (in case {{TAG|IBRION}}=0 and VASP was compiled with [[Precompiler_flags|-Dtbdyn]]). | | Description: Specifies the [[thermostat]] and lattice dynamics for [[molecular-dynamics calculations]] (in case {{TAG|IBRION|0}}). |
| ---- | | ---- |
|
| |
|
| == {{TAG|MDALGO}}=0: Standard molecular dynamics ==
| | The algorithm for the [[thermostat]] and lattice dynamics is a crucial choise for any [[molecular-dynamics calculations|molecular-dynamics (MD) calculations]] ({{TAG|IBRION|0}}). In combination with the selected lattice degrees of freedom ({{TAG|ISIF}}), {{TAG|MDALGO}} determines the [[ensemble]] that is sampled during the [[molecular-dynamics calculations|MD run]]. The main output file is the {{FILE|REPORT}} file. |
| Standard molecular dynamics ({{TAG|IBRION}}=0), the same behavior as if VASP were compiled without [[Precompiler_flags|-Dtbdyn]].
| |
|
| |
|
| == {{TAG|MDALGO}}=1: ''NVT''-ensemble with Andersen thermostat ==
| | {{TAG|MDALGO|op=>=1}} can be applied in the context of standard [[molecular-dynamics calculations]], [[constrained molecular dynamics]], [[metadynamics calculations]], the [[slow-growth approach]], monitoring geometric parameters using the {{FILE|ICONST}} file, [[biased molecular dynamics]], and more. |
| <div id="Andersen"></div>
| | {{NB|mind|{{TAG|MDALGO|0|op=>=}} requires compilation with the precompiler option [[Precompiler options#-Dtbdyn|<code>-Dtbdyn</code>]]. This option is present by default in all [[makefile.include]] templates since {{VASP}} 5.4.4.}} |
| === Andersen thermostat === | |
| ''NVT''-simulation with Andersen thermostat. In the approach proposed by Andersen<ref name="Andersen80"/> the system is thermally coupled to a fictitious heat bath with the desired temperature. The coupling is represented by stochastic impulsive forces that act occasionally on randomly selected particles. The collision probability is defined as an average number of collisions per atom and time-step. This quantity can be controlled by the flag {{TAG|ANDERSEN_PROB}}. The total number of collisions with the heat-bath is written in the file {{FILE|REPORT}} for each MD step.
| |
|
| |
|
| <div id="ConstrMD"></div>
| | == Options == |
| === Constrained molecular dynamics === | |
| {{TAG|Constrained molecular dynamics}}
| |
|
| |
|
| === Slow-growth approach === | | === {{TAG|MDALGO|1}}: [[Andersen thermostat]] === |
| In general, constrained molecular dynamics generates biased statistical averages.
| |
| It can be shown that the correct average for a quantity <math>a(\xi)</math> can be obtained using the formula:
| |
| :<math>
| |
| a(\xi)=\frac{\langle |\mathbf{Z}|^{-1/2} a(\xi^*) \rangle_{\xi^*}}{\langle |\mathbf{Z}|^{-1/2}\rangle_{\xi^*}},
| |
| </math>
| |
| where <math>\langle ... \rangle_{\xi^*}</math> stands for the statistical average of the quantity enclosed in angular parentheses computed for a constrained ensemble and <math>Z</math> is a mass metric tensor defined as:
| |
| :<math>
| |
| Z_{\alpha,\beta}={\sum}_{i=1}^{3N} m_i^{-1} \nabla_i \xi_\alpha \cdot \nabla_i \xi_\beta, \, \alpha=1,...,r, \, \beta=1,...,r,
| |
| </math>
| |
| It can be shown that the free energy gradient can be computed using the equation:<ref name="Carter89"/><ref name="Otter00"/><ref name="Darve02"/><ref name="Fleurat05"/>
| |
| :<math>
| |
| \Bigl(\frac{\partial A}{\partial \xi_k}\Bigr)_{\xi^*}=\frac{1}{\langle|Z|^{-1/2}\rangle_{\xi^*}}\langle |Z|^{-1/2} [\lambda_k +\frac{k_B T}{2 |Z|} \sum_{j=1}^{r}(Z^{-1})_{kj} \sum_{i=1}^{3N} m_i^{-1}\nabla_i \xi_j \cdot \nabla_i |Z|]\rangle_{\xi^*},
| |
| </math>
| |
| where <math>\lambda_{\xi_k}</math> is the Lagrange multiplier associated with the parameter <math>{\xi_k}</math> used in the [[#SHAKE|SHAKE algorithm]].<ref name="Ryckaert77"/>
| |
|
| |
|
| The free-energy difference between states (1) and (2) can be computed by integrating the free-energy gradients over a connecting path: | | :The [[Andersen thermostat]] can be used to sample an [[NVT ensemble]] or [[NVE ensemble]]. It requires setting an appropriate value for {{TAG|ANDERSEN_PROB}}. For an [[NVE ensemble]], set {{TAG|ANDERSEN_PROB|0.0}}. This is usually done after thermalization to a certain target temperature. {{NB|tip|Leave the value for {{TAG|TEBEG}} that was set in the thermalization. For {{TAG|TEBEG|0.1|op=<}}, some part of the code assumes it is used for [[structure optimization]] and not an [[molecular-dynamics calculations|MD run]].|:}} |
| :<math>
| |
| {\Delta}A_{1 \rightarrow 2} = \int_{{\xi(1)}}^{{\xi(2)}}\Bigl( \frac{\partial {A}} {\partial \xi} \Bigr)_{\xi^*} \cdot d{\xi}. | |
| </math>
| |
| Note that as the free-energy is a state quantity, the choice of path connecting (1) with (2) is irrelevant.
| |
|
| |
|
| | === {{TAG|MDALGO|2}}: [[Nosé-Hoover thermostat]] === |
|
| |
|
| * For a constrained molecular dynamics run with Andersen thermostat, one has to:
| | :The [[Nosé-Hoover thermostat]] is currently only available for the [[NVT ensemble]]. It requires setting an appropriate value for {{TAG|SMASS}}. |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| | {{NB|tip|The [[Nosé-Hoover thermostat]] is a special case of the [[Nosé-Hoover chain thermostat]] ({{TAG|MDALGO|4}} with {{TAGDEF|NHC_NCHAINS|1}}). The control tags for {{TAG|MDALGO|4}} may be more convenient to use than the older implementation ({{TAG|MDALGO|2}}).|:}} |
| #Set {{TAG|MDALGO}}=1, and choose an appropriate setting for {{TAG|ANDERSEN_PROB}}
| |
| #Define geometric constraints in the {{FILE|ICONST}}-file, and set the {{TAG|STATUS}} parameter for the constrained coordinates to 0
| |
| #When the free-energy gradient is to be computed, set {{TAG|LBLUEOUT}}=.TRUE.
| |
|
| |
|
| For a slow-growth simulation, one has to additionally:
| | === {{TAG|MDALGO|3}}: [[Langevin thermostat]] === |
| <ol start="5">
| |
| <li>Specify the transformation velocity-related {{TAG|INCREM}}-tag for each geometric parameter with <tt>STATUS=0</tt></li>
| |
| </ol>
| |
|
| |
|
| VASP can handle multiple (even redundant) constraints. Note, however, that a too large number of constraints can cause problems with the stability of the [[#SHAKE|SHAKE algorithm]]. In problematic cases, it is recommended to use a looser convergence criterion (see {{TAG|SHAKETOL}}) and to allow a larger number of iterations (see {{TAG|SHAKEMAXITER}}) in the [[#SHAKE|SHAKE algorithm]]. Hard constraints may also be used in [[#Metadynamics|metadynamics simulations]] (see {{TAG|MDALGO}}=11 {{!}} 21). Information about the constraints is written onto the {{FILE|REPORT}}-file: check the lines following the string: <tt>Const_coord</tt>
| | :The [[Langevin thermostat]] is available for sampling the [[NVT ensemble]], [[NpT ensemble]] and [[NpH ensemble]]. The Langevin dynamics in the [[NpT ensemble]] is calculated by the method of Parrinello and Rahman{{cite|parrinello:prl:1980}}{{cite|parrinello:jap:1981}} combined with a [[Langevin thermostat]]. |
| | :* [[NVT ensemble]]: Set an appropriate value for the friction coefficients ({{TAG|LANGEVIN_GAMMA}}) for all species in the {{FILE|POSCAR}} file to enables the [[Langevin thermostat]]. Fix the cell shape and volume with {{TAG|ISIF|2|op=<=}}. |
| | :* [[NpT ensemble]]: To enable lattice dynamics set {{TAG|ISIF|3}} and specify a separate set of friction coefficient for the lattice degrees-of-freedom ({{TAG|LANGEVIN_GAMMA_L}}) as well as a ficticious mass for the lattice degrees-of-freedom ({{TAG|PMASS}}). At the moment, dynamics with ''fixed volume+variable shape'' ({{TAG|ISIF|4}}) or ''fixed shape+variable volume'' ({{TAG|ISIF|7}}) are not available. Optionally, one may define an external pressure ({{TAG|PSTRESS}}). Like for the NVT ensemble, set an appropriate value for the friction coefficients ({{TAG|LANGEVIN_GAMMA}}) for all species in the {{FILE|POSCAR}} file to enables the [[Langevin thermostat]]. |
|
| |
|
| === Monitoring geometric parameters ===
| | :Also see [[stochastic boundary conditions]]. |
| Geometric parameters with <tt>STATUS = 7</tt> in the {{FILE|ICONST}}-file are monitored during the MD simulation.
| |
| The corresponding values are written onto the {{FILE|REPORT}}-file, for each MD step, after the lines following the string <tt>Monit_coord</tt>.
| |
|
| |
|
| Sometimes it is desirable to terminate the simulation if all values of monitored parameters get larger that some predefined upper and/or lower limits. These limits can be set by the user by means of the {{TAG|VALUE_MAX}} and {{TAG|VALUE_MIN}}-tags.
| | === {{TAG|MDALGO|4}}: [[Nosé-Hoover chain thermostat]] === |
| | :The [[Nosé-Hoover chain thermostat]] can be only used to sample an [[NVT ensemble]] and requires selecting the number of thermostats in the chain via {{TAG|NHC_NCHAINS}} as well as choosing an appropriate setting for the thermostat parameter {{TAG|NHC_PERIOD}}. |
|
| |
|
| To monitor geometric parameters during an MD run:
| | === {{TAG|MDALGO|5}}: [[CSVR thermostat|Canonical sampling through velocity-rescaling (CSVR thermostat)]] === |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| | {{NB|mind|This option is available as of VASP 6.4.3.|:}} |
| #Set {{TAG|MDALGO}}=1, and choose an appropriate setting for {{TAG|ANDERSEN_PROB}}
| | :The [[CSVR thermostat]] can be used to sample an [[NVT ensemble]]. It requires setting {{TAG|CSVR_PERIOD}}. |
| #Define geometric constraints in the {{FILE|ICONST}}-file, and set the <tt>STATUS</tt> parameter for the constrained coordinates to 7
| |
| #Optionally, set the upper and/or lower limits for the coordinates, by means of the {{TAG|VALUE_MAX}} and {{TAG|VALUE_MIN}}-tags, respectively.
| |
|
| |
|
| | === {{TAG|MDALGO|13}}: Multiple [[Andersen thermostat|Andersen thermostats]] === |
| | <div id="multiAnderson"></div> |
| | :Up to three user-defined atomic subsystems may be coupled with independent [[Andersen thermostat|Andersen thermostats]]{{cite|andersen:jcp:1980}} ({{TAG|MDALGO|1}}). The {{FILE|POSCAR}} file must be organized such that the positions of atoms of subsystem ''i+1'' are defined after those for the subsystem ''i'', and the following tags must be set: {{TAG|NSUBSYS}}, {{TAG|TSUBSYS}}, and {{TAG|PSUBSYS}}. |
|
| |
|
| == {{TAG|MDALGO}}=2: ''NVT''-ensemble with Nose-Hoover thermostat== | | === {{TAG|MDALGO|0}} (deprecated) === |
| Nose-Hoover thermostat ({{TAG|SMASS}} needs to be specified in the {{FILE|INCAR}} file).
| | :Selects a [[Nosé-Hoover thermostat]] which allows sampling the [[NVT ensemble]] at temperature {{TAG|TEBEG}}. The [[Nosé-Hoover thermostat]] requires an appropriate setting for {{TAG|SMASS}}. To sample an [[NVE ensemble]] set {{TAG|SMASS|-3}}. {{NB|deprecated|If possible, we recommend using one of the newer Nosé-Hoover thermostat implementations {{VASP}} provides ({{TAG|MDALGO|2 or 4}}). While the results (ensemble averages) should be identical ,this variant comes with some drawbacks regarding post-processing: the atom coordinates in output files will always be wrapped back into the box if atoms cross the periodic boundaries. This makes it impossible to carry out certain analysis, e.g., computing the mean squared displacement (MSD).|:}} |
| | |
| === Constrained molecular dynamics ===
| |
| {{TAG|Constrained molecular dynamics}}
| |
| | |
| === Slow-growth approach ===
| |
| For a short description of the slow-growth approach, see [[#Slowgro|its section]] under {{TAG|MDALGO}}=1.
| |
| | |
| * For a constrained molecular dynamics run with Nose-Hoover thermostat, one has to:
| |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|MDALGO}}=2, and choose an appropriate setting for {{TAG|SMASS}}
| |
| #Define geometric constraints in the {{FILE|ICONST}}-file, and set the <tt>STATUS</tt> parameter for the constrained coordinates to 0
| |
| #When the free-energy gradient is to be computed, set {{TAG|LBLUEOUT}}=.TRUE.
| |
| | |
| For a slow-growth simulation, one has to additionally:
| |
| <ol start="5">
| |
| <li>Specify the transformation velocity-related {{TAG|INCREM}}-tag for each geometric parameter with <tt>STATUS=0</tt></li>
| |
| </ol>
| |
| | |
| VASP can handle multiple (even redundant) constraints. Note, however, that a too large number of constraints can cause problems with the stability of the [[#SHAKE|SHAKE algorithm]]. In problematic cases, it is recommended to use a looser convergence criterion (see {{TAG|SHAKETOL}}) and to allow a larger number of iterations (see {{TAG|SHAKEMAXITER}}) in the [[#SHAKE|SHAKE algorithm]]. Hard constraints may also be used in [[#Metadynamics|metadynamics simulations]] (see {{TAG|MDALGO}}=11 {{!}} 21). Information about the constraints is written onto the {{FILE|REPORT}}-file: check the lines following the string: <tt>Const_coord</tt>
| |
| | |
| === Monitoring geometric parameters ===
| |
| Geometric parameters with <tt>STATUS = 7</tt> in the {{FILE|ICONST}}-file are monitored during the MD simulation.
| |
| The corresponding values are written onto the {{FILE|REPORT}}-file, for each MD step, after the lines following the string <tt>Monit_coord</tt>.
| |
| | |
| Sometimes it is desirable to terminate the simulation if all values of monitored parameters get larger that some predefined upper and/or lower limits. These limits can be set by the user by means of the {{TAG|VALUE_MAX}} and {{TAG|VALUE_MIN}}-tags.
| |
| | |
| To monitor geometric parameters during an MD run:
| |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|MDALGO}}=2, and choose an appropriate setting for {{TAG|SMASS}}
| |
| #Define geometric constraints in the {{FILE|ICONST}}-file, and set the <tt>STATUS</tt> parameter for the constrained coordinates to 7
| |
| #Optionally, set the upper and/or lower limits for the coordinates, by means of the {{TAG|VALUE_MAX}} and {{TAG|VALUE_MIN}}-tags, respectively.
| |
| <div id="Langevin"></div>
| |
| | |
|
| |
|
| == {{TAG|MDALGO}}=3: Langevin thermostat == | | === {{TAG|MDALGO|11}} (deprecated) === |
| '''Note:''' Geometric constraints and metadynamics are not available for Langevin dynamics.
| | :For VASP 5.x {{TAGDEF|MDALGO|11}} selects the [[Andersen thermostat]]. This is replaced by {{TAG|MDALGO|1}}. |
|
| |
|
| === ''NVT''-simulation with Langevin thermostat === | | === {{TAG|MDALGO|21}} (deprecated) === |
| <span id="LangevinEOM">
| | :For VASP 5.x it selects the [[Nosé-Hoover thermostat]]. This is replaced by {{TAG|MDALGO|2}}. |
| The Langevin thermostat<ref name="Allen91"/> maintains the temperature through a modification of Newton's equations of motion
| |
| :<math>
| |
| \dot{r_i} = p_i/m_i \qquad
| |
| \dot{p_i} = F_i - {\gamma}_i\,p_i + f_i,
| |
| </math>
| |
| </span>
| |
| where ''F<sub>i</sub>'' is the force acting on atom ''i'' due to the interaction potential, γ<sub>i</sub> is a friction coefficient, and ''f<sub>i</sub>'' is a random force with dispersion σ<sub>i</sub> related to γ<sub>i</sub> through:
| |
| :<math>
| |
| \sigma_i^2 = 2\,m_i\,{\gamma}_i\,k_B\,T/{\Delta}t
| |
| </math>
| |
| with Δ''t'' being the time-step used in the MD to integrate the equations of motion. Obviously, Langevin dynamics is identical to the classical Hamiltonian in the limit of vanishing γ.
| |
|
| |
|
| *To run an ''NVT''-simulation with a Langevin thermostat, one has to:
| | == Related tags and articles == |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|ISIF}}=2
| |
| #Set {{TAG|MDALGO}}=3 to invoke the Langevin thermostat
| |
| #Specify friction coefficients for all species in the {{FILE|POSCAR}} file, by means of the {{TAG|LANGEVIN_GAMMA}}-tag.
| |
|
| |
|
| <div id="ParrinelloRahman"></div>
| | :::{| cellpadding="5" cellspacing="5" style="width: 90%; border-spacing: 5px;" |
| === ''NpT''-simulation with Langevin thermostat === | | | style="text-align:center; background-color:#DEC4EB;"| [[thermostats]] || style="text-align:center; background-color:#DEC4EB;"| related [[INCAR tag]] |
| | |- |
| | |style="background-color:#D9F8F5;"| [[Langevin thermostat|Langevin thermostat and dynamics]] ||style="background-color:#D9F8F5;"| {{TAG|LANGEVIN_GAMMA}}, {{TAG|LANGEVIN_GAMMA_L}}, {{TAG|PMASS}}, {{TAG|PSTRESS}} |
| | |- |
| | |style="background-color:#D9F8F5;"| [[Andersen thermostat]] ||style="background-color:#D9F8F5;"| {{TAG|ANDERSEN_PROB}} |
| | |- |
| | |style="background-color:#D9F8F5;"| Multiple [[Andersen thermostat|Andersen thermostats]] ||style="background-color:#D9F8F5;"| {{TAG|NSUBSYS}}, {{TAG|TSUBSYS}}, {{TAG|PSUBSYS}} |
| | |- |
| | |style="background-color:#D9F8F5;"| [[Nosé-Hoover thermostat]] ||style="background-color:#D9F8F5;"| {{TAG|SMASS}} |
| | |- |
| | |style="background-color:#D9F8F5;"| [[Nosé-Hoover chain thermostat]] ||style="background-color:#D9F8F5;"| {{TAG|NHC_NCHAINS}}, {{TAG|NHC_PERIOD}}, {{TAG|NHC_NRESPA}}, {{TAG|NHC_NS}} |
| | |- |
| | |style="background-color:#D9F8F5;"| [[CSVR thermostat]] ||style="background-color:#D9F8F5;"| {{TAG|CSVR_PERIOD}} |
| | |} |
|
| |
|
| In the method of Parrinello and Rahman<ref name="Parrinello80"/><ref name="Parrinello81"/>, the equations of motion for ionic and lattice degrees-of-freedom are derived from the following Lagrangian:
| | General MD-related tags: {{TAG|IBRION}}, {{TAG|NSW}}, {{TAG|POTIM}}, {{TAG| ISIF}}, {{TAG|RANDOM_SEED}} |
| :<math> | |
| {\mathcal{L}}(s,h,\dot{s},\dot{h})=\frac{1}{2}\sum_i^N m_i \dot{s_i}^t\,G \dot{s_i}-V(s,h) +\frac{1}{2}W\,\mathrm{Tr}(\dot{h}^t \dot{h}) - p_\mathrm{ext}\Omega, | |
| </math>
| |
| where ''s<sub>i</sub>'' is a position vector in fractional coordinates for atom ''i'', ''h'' is the matrix formed by lattice vectors, the tensor ''G'' is defined as ''G''=''h''<sup>t</sup>''h'', ''p''<sub>ext</sub> is the external pressure, Ω is the cell volume (Ω=det ''h''), and ''W'' is a constant with the dimensionality of mass. Integrating equations of motion based on the Parrinello-Rahman Lagrangian generates an ''NpH'' ensemble, where the enthalpy <math>H=E+p_\mathrm{ext}\Omega</math> is the constant of motion. The Parrinello-Rahman method can be combined with a Langevin thermostat<ref name="Allen91"/> to generate an ''NpT''-ensemble.
| |
|
| |
|
| *To run an ''NpT''-simulation (Parinello-Rahman dynamics) with a Langevin thermostat, one has to:
| | MD output: {{FILE|REPORT}} |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|ISIF}}=3 to allow for relaxation of the cell volume and shape. At the moment, dynamics with ''fixed volume+variable shape'' ({{TAG|ISIF}}=4) or ''fixed shape+variable volume'' ({{TAG|ISIF}}=7) are not available.
| |
| #Set {{TAG|MDALGO}}=3 to invoke the Langevin thermostat
| |
| #Specify friction coefficients for all species in the {{FILE|POSCAR}} file, by means of the {{TAG|LANGEVIN_GAMMA}}-tag.
| |
| #Specify a separate set of friction coefficient for the lattice degrees-of-freedom, using the {{TAG|LANGEVIN_GAMMA_L}}-tag.
| |
| #Set a mass for the lattice degrees-of-freedom, using the {{TAG|PMASS}}-tag.
| |
| #Optionally, one may define an external pressure (in kB), by means of the {{TAG|PSTRESS}}-tag.
| |
|
| |
|
| The temperatures listed in the {{FILE|OSZICAR}} are computed using the kinetic energy including contribution from both atomic and lattice degrees of freedom. The external pressure for a simulation can be computed as one third of the trace of the stress-tensor corrected for kinetic contributions, listed in the {{FILE|OUTCAR}} file. This can be achieved, ''e.g.'' using the following command:
| | {{sc|MDALGO|Howto|Workflows that use this tag}} |
| <code lang="text">
| |
| grep "Total+kin" OUTCAR| awk 'BEGIN {p=0.} {p+=($2+$3+$4)/3.} END {print "pressure (kB):",p}'
| |
| </code>
| |
| | |
| Important: In Parinello-Rahman<ref name="Parrinello80"/><ref name="Parrinello81"/> dynamics (''NpT''), the stress tensor is used to define forces on lattice degrees-of-freedom. In order to achieve a reasonable quality of sampling (and to avoid numerical problems), it is essential to eliminate [[Energy_vs_volume_Volume_relaxations_and Pulay_stress|Pulay stress]]. Unfortunately, this usually requires a rather large value of {{TAG|ENCUT}}. {{TAG|PREC}}=low, frequently used in ''NVT''-MD is not recommended for molecular dynamics with variable cell volume.
| |
| | |
| === Stochastic boundary conditions ===
| |
| In some cases it is desirable to study approach of initially non-equilibrium system to equilibrium. Examples of such simulations include the impact problems when a particle with large kinetic energy hits a surface or calculation of friction force between two surfaces sliding with respect to each other. As shown by Toton ''et al.''<ref name="Toton10"/>, this type of problems can be studied using the stochastic boundary conditions (SBC) derived from the generalized Langevin equation by Kantorovich and Rompotis.<ref name="Kantorovich08"/> In this approach, the system of interest is divided into three regions: (a) fixed atoms, (b) the internal (Newtonian) atoms moving according to Newtonian dynamics, and (c) a buffer region of Langevin atoms (''i.e.'', atoms governed by [[#LangevinEOM|Langevin equations of motion]]) located between (a) and (b).
| |
| | |
| The role of the Langevin atoms is to dissipate heat, while the fixed atoms are needed solely to create the correct potential well for the Langevin atoms to move in. The Newtonian region should include all atoms relevant to the process under study: in the case of the impact problem, for instance, the Newtonian region should contain atoms of the molecule hitting the surface and several uppermost layers of the material forming the surface. Performing molecular dynamics with such a setup guarantees that the system (possibly out of equilibrium initially) arrives at the appropriate canonical distribution.
| |
| | |
| *To run a simulation with stochastic boundary conditions, one has to:
| |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|ISIF}}=2
| |
| #Set {{TAG|MDALGO}}=3 to invoke the Langevin thermostat
| |
| #Prepare the {{FILE|POSCAR}} file in such a way that the Newtonian and Langevin atoms are treated as different species (even if they are chemically identical). In your {{FILE|POSCAR}}, use [[Selective Dynamics]] and the corresponding logical flags to define the frozen and moveable atoms.
| |
| #Specify friction coefficients γ, for all species in the {{FILE|POSCAR}} file, by means of the {{TAG|LANGEVIN_GAMMA}}-tag: set the friction coefficients to 0 for all fixed and Newtonian atoms, and choose a proper γ for the Langevin atoms.
| |
| | |
| ==== Practical example ====
| |
| | |
| Consider a system consisting of 16 hydrogen and 48 silicon atoms. Suppose that eight silicon atoms are considered to be Langevin atoms and the remaining 32 Si atoms are either fixed or Newtonian atoms. The Langevin and Newtonian (or fixed) atoms should be considered as different species, ''i.e.'', the {{FILE|POSCAR}}-file should contain the line like this:
| |
| | |
| Si H Si
| |
| 40 16 8
| |
| | |
| As only the final eight Si atoms are considered to be Langevin atoms, the {{FILE|INCAR}}-file should contain the following line defining the friction coefficients:
| |
| | |
| LANGEVIN_GAMMA = 0.0 0.0 10.0
| |
| | |
| ''i.e.'', for all non-Langevin atoms, γ should be set to zero.
| |
| | |
| == {{TAG|MDALGO}}=11: Biased-MD and metadynamics with Andersen thermostat ==
| |
| === Andersen thermostat ===
| |
| For a short description of the Andersen thermostat see [[#Andersen|its section]] under {{TAG|MDALGO}}=1.
| |
| | |
| <div id="Metadynamics"></div>
| |
| === Metadynamics ===
| |
| {{TAG|Metadynamics}}
| |
| In metadynamics,<ref name="Laio02"/><ref name="Iannuzzi03"/> the bias potential
| |
| that acts on a selected number of geometric parameters (collective variables) ξ={ξ<sub>1</sub>, ξ<sub>2</sub>, ...,ξ<sub>''m''</sub>} is constructed on-the-fly during the simulation. The Hamiltonian for the metadynamics <math>\tilde{H}(q,p)</math> can be written as:
| |
| :<math>
| |
| \tilde{H}(q,p,t) = H(q,p) + \tilde{V}(t,\xi),
| |
| </math>
| |
| where <math>H(q,p)</math> is the Hamiltonian for the original (unbiased) system, and <math>\tilde{V}(t,\xi)</math> is the time-dependent bias potential. The latter term is usually defined as a sum of Gaussian hills with height ''h'' and width ''w'':
| |
| :<math>
| |
| \tilde{V}(t,\xi) = h \sum_{i=1}^{\lfloor t/t_G \rfloor} \exp{\left\{ -\frac{|\xi^{(t)}-\xi^{(i \cdot t_G)}|^2}{2
| |
| w^2} \right\}}.
| |
| </math>
| |
| In practice, <math>\tilde{V}(t,\xi)</math> is updated by adding a new Gaussian with a time increment ''t''<sub>G</sub>, which is typically one or two orders of magnitude greater than the time step used in the MD simulation.
| |
| | |
| In the limit of infinite simulation time, the bias potential is related to the free energy via:
| |
| :<math>
| |
| A(\xi) = - \lim_{t \to \infty} \tilde{V}(t,\xi) + const.
| |
| </math>
| |
| Practical hints as how to adjust the parameters used in metadynamics (''h'', ''w'', ''t''<sub>G</sub>) are given in Refs.<ref name="Ensing05"/><ref name="Laio05"/>.
| |
| | |
| The error estimation in free-energy calculations with metadynamics is discussed in Ref.<ref name="Laio05"/>.
| |
| | |
| | |
| * For a metadynamics run with Andersen thermostat, one has to:
| |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|MDALGO}}=11, and choose an appropriate setting for {{TAG|ANDERSEN_PROB}}
| |
| #Set the parameters {{TAG|HILLS_H}}, {{TAG|HILLS_W}}, and {{TAG|HILLS_BIN}}
| |
| #Define collective variables in the {{FILE|ICONST}}-file, and set the {{TAG|STATUS}} parameter for the collective variables to 5
| |
| #If needed, define the bias potential in the {{FILE|PENALTYPOT}}-file
| |
| | |
| The actual time-dependent bias potential is written to the {{FILE|HILLSPOT}}-file, which is updated after adding a new Gaussian. At the beginning of the simulation, VASP attempts to read the initial bias potential from the {{FILE|PENALTYPOT}}-file. For the continuation of a metadynamics run, copy {{FILE|HILLSPOT}} to {{FILE|PENALTYPOT}}. The values of all collective variables for each MD step are listed in {{FILE|REPORT}}-file, check the lines after the string <tt>Metadynamics</tt>.
| |
| | |
| <div id="BiasedMD"></div>
| |
| | |
| == References ==
| |
| <references>
| |
| <ref name="Andersen80">[http://dx.doi.org/10.1063/1.439486 H. C. Andersen, J. Chem. Phys. 72, 2384 (1980).]</ref>
| |
| <ref name="Ryckaert77">[http://dx.doi.org/10.1016/0021-9991(77)90098-5 J. P. Ryckaert, G. Ciccotti, and H. J. C. Berendsen, J. Comp. Phys. 23, 327 (1977).]</ref>
| |
| <ref name="Carter89">[http://dx.doi.org/10.1016/S0009-2614(89)87314-2 E. A. Carter, G. Ciccotti, J. T. Hynes, and R. Kapral, Chem. Phys. Lett. 156, 472 (1989).]</ref>
| |
| <ref name="Otter00">[http://dx.doi.org/10.1080/00268970009483348 W. K. Den Otter and W. J. Briels, Mol. Phys. 98, 773 (2000).]</ref>
| |
| </references>
| |
| ----
| |
| | |
| [[Category:Molecular Dynamics]][[Category:Theory]][[Category:Howto]]
| |
| | |
| === Biased molecular dynamics ===
| |
| The probability density for a geometric parameter ξ of the system driven by a Hamiltonian:
| |
| :<math>
| |
| H(q,p) = T(p) + V(q), \;
| |
| </math>
| |
| with ''T''(''p''), and ''V''(''q'') being kinetic, and potential energies, respectively, can be written as:
| |
| :<math>
| |
| P(\xi_i)=\frac{\int\delta\Big(\xi(q)-\xi_i\Big) \exp\left\{-H(q,p)/k_B\,T\right\} dq\,dp}{\int \exp\left\{-H(q,p)/k_B\,T\right\}dq\,dp} =
| |
| \langle\delta\Big(\xi(q)-\xi_i\Big)\rangle_{H}.
| |
| </math>
| |
| The term <math>\langle X \rangle_H</math> stands for a thermal average of quantity ''X'' evaluated for the system driven by the Hamiltonian ''H''.
| |
| | |
| If the system is modified by adding a bias potential <math>\tilde{V}(\xi)</math> acting only on a selected internal parameter of the system ξ=ξ(''q''), the Hamiltonian takes a form:
| |
| :<math>
| |
| \tilde{H}(q,p) = H(q,p) + \tilde{V}(\xi),
| |
| </math>
| |
| and the probability density of ξ in the biased ensemble is:
| |
| :<math>
| |
| \tilde{P}(\xi_i)= \frac{\int \delta\Big(\xi(q)-\xi_i\Big) \exp\left\{-\tilde{H}(q,p)/k_B\,T\right\} dq\,dp}{\int \exp\left\{-\tilde{H}(q,p)/k_B\,T\right\}dq\,dp} = \langle\delta\Big(\xi(q)-\xi_i\Big)\rangle_{\tilde{H}}
| |
| </math>
| |
| It can be shown that the biased and unbiased averages are related via a simple formula:
| |
| :<math>
| |
| P(\xi_i)=\tilde{P}(\xi_i) \frac{\exp\left\{\tilde{V}(\xi)/k_B\,T\right\}}{\langle \exp\left\{\tilde{V}(\xi)/k_B\,T\right\} \rangle_{\tilde{H}}}.
| |
| </math>
| |
| More generally, an observable <math>\langle A \rangle_{H}</math>:
| |
| :<math>
| |
| \langle A \rangle_{H} = \frac{\int A(q) \exp\left\{-H(q,p)/k_B\,T\right\} dq\,dp}{\int \exp\left\{-H(q,p)/k_B\,T\right\}dq\,dp}
| |
| </math>
| |
| can be expressed in terms of thermal averages within the biased ensemble:
| |
| :<math>
| |
| \langle A \rangle_{H} =\frac{\langle A(q) \,\exp\left\{\tilde{V}(\xi)/k_B\,T\right\} \rangle_{\tilde{H}}}{\langle \exp\left\{\tilde{V}(\xi)/k_B\,T\right\} \rangle_{\tilde{H}}}.
| |
| </math>
| |
| Simulation methods such as umbrella sampling<ref name="Torrie77"/> use a bias potential to enhance sampling of ξ in regions with low ''P''(ξ<sub>''i''</sub>) such as transition regions of chemical
| |
| reactions.
| |
| The correct distributions are recovered afterwards using the equation for <math>\langle A \rangle_{H}</math> above.
| |
| | |
| A more detailed description of the method can be found in Ref.<ref name="FrenkelSmit"/>.
| |
| Biased molecular dynamics can be used also to introduce soft geometric constraints in which the controlled geometric parameter is not strictly constant, instead it oscillates in a narrow interval
| |
| of values.
| |
| | |
| | |
| * For a biased molecular dynamics run with Andersen thermostat, one has to:
| |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|MDALGO}}=11, and choose an appropriate setting for {{TAG|ANDERSEN_PROB}}
| |
| #In order to avoid updating of the bias potential, set {{TAG|HILLS_BIN}}={{TAG|NSW}}
| |
| #Define collective variables in the {{FILE|ICONST}}-file, and set the <tt>STATUS</tt> parameter for the collective variables to 5
| |
| #Define the bias potential in the {{FILE|PENALTYPOT}}-file
| |
| | |
| The values of all collective variables for each MD step are listed in the {{FILE|REPORT}}-file, check the lines after the string <tt>Metadynamics</tt>.
| |
| | |
| == {{TAG|MDALGO}}=21: Biased-MD and metadynamics with Nose-Hoover Thermostat ==
| |
| Biased-molecular- or [[Metadynamics|meta-dynamics]] with Nose-Hoover Thermostat ({{TAG|SMASS}} needs to be specified in the {{FILE|INCAR}} file).
| |
| | |
| === Metadynamics ===
| |
| For a short description of metadynamics see [[#Metadynamics|its section]] under {{TAG|MDALGO}}=11.
| |
| | |
| * For a metadynamics run with Nose-Hoover thermostat, one has to:
| |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|MDALGO}}=21, and choose an appropriate setting for {{TAG|SMASS}}
| |
| #Set the parameters {{TAG|HILLS_H}}, {{TAG|HILLS_W}}, and {{TAG|HILLS_BIN}}
| |
| #Define collective variables in the {{FILE|ICONST}}-file, and set the <tt>STATUS</tt> parameter for the collective variables to 5
| |
| #If needed, define the bias potential in the {{FILE|PENALTYPOT}}-file
| |
| | |
| The actual time-dependent bias potential is written to the {{FILE|HILLSPOT}}-file, which is updated after adding a new Gaussian. At the beginning of the simulation, VASP attempts to read the initial bias potential from the {{FILE|PENALTYPOT}}-file. For the continuation of a metadynamics run, copy {{FILE|HILLSPOT}} to {{FILE|PENALTYPOT}}. The values of all collective variables for each MD step are listed in {{FILE|REPORT}}-file, check the lines after the string <tt>Metadynamics</tt>.
| |
| | |
| === Biased molecular dynamics ===
| |
| For a short description of biased molecular dynamics see [[#BiasedMD|its section]] under {{TAG|MDALGO}}=11.
| |
| | |
| * For a biased molecular dynamics run with Nose-Hoover thermostat, one has to:
| |
| #Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
| |
| #Set {{TAG|MDALGO}}=21, and choose an appropriate setting for {{TAG|SMASS}}
| |
| #In order to avoid updating of the bias potential, set {{TAG|HILLS_BIN}}={{TAG|NSW}}
| |
| #Define collective variables in the {{FILE|ICONST}}-file, and set the <tt>STATUS</tt> parameter for the collective variables to 5
| |
| #Define the bias potential in the {{FILE|PENALTYPOT}}-file
| |
| | |
| The values of all collective variables for each MD step are listed in the {{FILE|REPORT}}-file, check the lines after the string <tt>Metadynamics</tt>.
| |
| | |
| <div id="multiAnderson"></div>
| |
| == {{TAG|MDALGO}}=13: Multiple Anderson thermostats ==
| |
| Up to three user-defined atomic subsystems may be coupled with independent Andersen thermostats<ref name="Andersen80"/> (see remarks under {{TAG|MDALGO}}=1 as well).
| |
| The {{FILE|POSCAR}} file must be organized such that the positions of atoms of subsystem ''i+1'' are defined after those for the subsystem ''i'', and the following flags must be set by the user:
| |
| *{{TAG|NSUBSYS}}=[int array]
| |
| :Define the last atom for each subsystem (two or three values must be supplied). For instance, if total of 20 atoms is defined in the {{FILE|POSCAR}} file, and the initial 10 atoms belong to the subsystem 1, the next 7 atoms to the subsystem 2, and the last 3 atoms to the subsystem 3, {{TAG|NSUBSYS}} should be defined as follows:
| |
| :<code lang="text">
| |
| :{{TAG|NSUBSYS}}= 10 17 20
| |
| :</code>
| |
| :Note that the last number in the previous example is actually redundant (clearly the last three atoms belong to the last subsystem) and does not have to be user-supplied.
| |
| | |
| *{{TAG|TSUBSYS}}=[real array]
| |
| :Simulation temperature for each subsystem
| |
| *{{TAG|PSUBSYS}}=[real array]
| |
| :Collision probability for atoms in each subsystem. Only the values 0≤{{TAG|PSUBSYS}}≤1 are allowed.
| |
| | |
| == Related Tags and Sections ==
| |
| {{TAG|IBRION}},
| |
| {{TAG|ISIF}},
| |
| {{TAG|SMASS}},
| |
| {{TAG|ANDERSEN_PROB}},
| |
| {{TAG|RANDOM_SEED}},
| |
| {{TAG|LBLUEOUT}},
| |
| {{TAG|SHAKETOL}},
| |
| {{TAG|SHAKEMAXITER}},
| |
| {{TAG|HILLS_H}},
| |
| {{TAG|HILLS_W}},
| |
| {{TAG|HILLS_BIN}},
| |
| {{TAG|INCREM}},
| |
| {{TAG|VALUE_MIN}},
| |
| {{TAG|VALUE_MAX}},
| |
| {{TAG|LANGEVIN_GAMMA}},
| |
| {{TAG|LANGEVIN_GAMMA_L}},
| |
| {{TAG|PMASS}},
| |
| {{TAG|NSUBSYS}},
| |
| {{TAG|TSUBSYS}},
| |
| {{TAG|PSUBSYS}},
| |
| {{FILE|ICONST}},
| |
| {{FILE|PENALTYPOT}},
| |
| {{FILE|HILLSPOT}},
| |
| {{FILE|REPORT}}
| |
| | |
| {{sc|MDALGO|Examples|Examples that use this tag}}
| |
|
| |
|
| == References == | | == References == |
| <references> | | <references> |
| <ref name="Andersen80">[http://dx.doi.org/10.1063/1.439486 H. C. Andersen, J. Chem. Phys. 72, 2384 (1980).]</ref>
| |
| <ref name="Ryckaert77">[http://dx.doi.org/10.1016/0021-9991(77)90098-5 J. P. Ryckaert, G. Ciccotti, and H. J. C. Berendsen, J. Comp. Phys. 23, 327 (1977).]</ref>
| |
| <ref name="Carter89">[http://dx.doi.org/10.1016/S0009-2614(89)87314-2 E. A. Carter, G. Ciccotti, J. T. Hynes, and R. Kapral, Chem. Phys. Lett. 156, 472 (1989).]</ref>
| |
| <ref name="Otter00">[http://dx.doi.org/10.1080/00268970009483348 W. K. Den Otter and W. J. Briels, Mol. Phys. 98, 773 (2000).]</ref>
| |
| <ref name="Darve02">[http://dx.doi.org/10.1080/08927020211975 E. Darve, M. A. Wilson, and A. Pohorille, Mol. Simul. 28, 113 (2002).]</ref>
| |
| <ref name="Fleurat05">[http://dx.doi.org/10.1063/1.1948367 P. Fleurat-Lessard and T. Ziegler, J. Chem. Phys. 123, 084101 (2005).]</ref>
| |
| <ref name="Allen91">M. P. Allen and D. J. Tildesley, ''Computer simulation of liquids'', Oxford university press: New York, 1991.</ref>
| |
| <ref name="Parrinello80">[http://dx.doi.org/10.1103/PhysRevLett.45.1196 M. Parrinello and A. Rahman, Phys. Rev. Lett. 45, 1196 (1980).]</ref>
| |
| <ref name="Parrinello81">[http://dx.doi.org/10.1063/1.328693 M. Parrinello and A. Rahman, J. Appl. Phys. 52, 7182 (1981).]</ref>
| |
| <ref name="Toton10">[http://dx.doi.org/10.1088/0953-8984/22/7/074205 D. Toton, C. D. Lorenz, N. Rompotis, N. Martsinovich, and L. Kantorovich, J. Phys.: Condens. Matter 22, 074205 (2010).]</ref>
| |
| <ref name="Kantorovich08">[http://dx.doi.org/10.1103/PhysRevB.78.094305 L. Kantorovich and N. Rompotis, Phys. Rev. B 78, 094305 (2008).]</ref>
| |
| <ref name="Laio02">[http://dx.doi.org/10.1073/pnas.202427399 A. Laio and M. Parrinello, Proc. Natl. Acad, Sci. USA 99, 12562 (2002).]</ref>
| |
| <ref name="Iannuzzi03">[http://dx.doi.org/10.1103/PhysRevLett.90.238302 M. Iannuzzi, A. Laio, and M. Parrinello, Phys. Rev. Lett. 90, 238302 (2003).]</ref>
| |
| <ref name="Ensing05">[http://dx.doi.org/10.1021/jp045571i B. Ensing, A. Laio, M. Parrinello, and M. L. Klein, J. Phys. Chem. B 109, 6676 (2005).]</ref>
| |
| <ref name="Laio05">[http://dx.doi.org/10.1021/jp045424k A. Laio, A. Rodriguez-Fortea, F. L. Gervasio, M. Ceccarelli, and M. Parrinello, J. Phys. Chem. B 109, 6714 (2005).]</ref>
| |
| <ref name="Torrie77">[http://dx.doi.org/10.1016/0021-9991(77)90121-8 G. M. Torrie and J. P. Valleau, J. Comp. Phys. 23, 187 (1977).]</ref>
| |
| <ref name="FrenkelSmit">D. Frenkel and B. Smit, ''Understanding molecular simulations: from algorithms to applications'', Academic Press: San Diego, 2002.</ref>
| |
| </references> | | </references> |
| ----
| |
|
| |
|
| [[Category:INCAR]][[Category:Molecular Dynamics]][[Category:Howto]] | | [[Category:INCAR tag]][[Category:Molecular dynamics]] |