MDALGO
MDALGO = 0 | 1 | 2 | 3 | 11 | 21 | 13
Default: MDALGO = 0
Description: MDALGO specifies the molecular dynamics simulation protocol (in case IBRION=0 and VASP was compiled with -Dtbdyn).
MDALGO=0: Standard molecular dynamics
Standard molecular dynamics (IBRION=0), the same behavior as if VASP were compiled without -Dtbdyn.
MDALGO=1: NVT-ensemble with Andersen thermostat
Andersen thermostat
NVT-simulation with Andersen thermostat. In the approach proposed by Andersen[1] 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 ANDERSEN_PROB. The total number of collisions with the heat-bath is written in the file REPORT for each MD step.
Constrained molecular dynamics
Constrained molecular dynamics
Slow-growth approach
In general, constrained molecular dynamics generates biased statistical averages. It can be shown that the correct average for a quantity can be obtained using the formula:
where stands for the statistical average of the quantity enclosed in angular parentheses computed for a constrained ensemble and is a mass metric tensor defined as:
It can be shown that the free energy gradient can be computed using the equation:[2][3][4][5]
where is the Lagrange multiplier associated with the parameter used in the SHAKE algorithm.[6]
The free-energy difference between states (1) and (2) can be computed by integrating the free-energy gradients over a connecting path:
Note that as the free-energy is a state quantity, the choice of path connecting (1) with (2) is irrelevant.
- For a constrained molecular dynamics run with Andersen thermostat, one has to:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set MDALGO=1, and choose an appropriate setting for ANDERSEN_PROB
- Define geometric constraints in the ICONST-file, and set the STATUS parameter for the constrained coordinates to 0
- When the free-energy gradient is to be computed, set LBLUEOUT=.TRUE.
For a slow-growth simulation, one has to additionally:
- Specify the transformation velocity-related INCREM-tag for each geometric parameter with STATUS=0
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 algorithm. In problematic cases, it is recommended to use a looser convergence criterion (see SHAKETOL) and to allow a larger number of iterations (see SHAKEMAXITER) in the SHAKE algorithm. Hard constraints may also be used in metadynamics simulations (see MDALGO=11 | 21). Information about the constraints is written onto the REPORT-file: check the lines following the string: Const_coord
Monitoring geometric parameters
Geometric parameters with STATUS = 7 in the ICONST-file are monitored during the MD simulation. The corresponding values are written onto the REPORT-file, for each MD step, after the lines following the string Monit_coord.
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 VALUE_MAX and VALUE_MIN-tags.
To monitor geometric parameters during an MD run:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set MDALGO=1, and choose an appropriate setting for ANDERSEN_PROB
- Define geometric constraints in the ICONST-file, and set the STATUS parameter for the constrained coordinates to 7
- Optionally, set the upper and/or lower limits for the coordinates, by means of the VALUE_MAX and VALUE_MIN-tags, respectively.
MDALGO=2: NVT-ensemble with Nose-Hoover thermostat
Nose-Hoover thermostat (SMASS needs to be specified in the INCAR file).
Constrained molecular dynamics
Constrained molecular dynamics
Slow-growth approach
For a short description of the slow-growth approach, see its section under MDALGO=1.
- For a constrained molecular dynamics run with Nose-Hoover thermostat, one has to:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set MDALGO=2, and choose an appropriate setting for SMASS
- Define geometric constraints in the ICONST-file, and set the STATUS parameter for the constrained coordinates to 0
- When the free-energy gradient is to be computed, set LBLUEOUT=.TRUE.
For a slow-growth simulation, one has to additionally:
- Specify the transformation velocity-related INCREM-tag for each geometric parameter with STATUS=0
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 algorithm. In problematic cases, it is recommended to use a looser convergence criterion (see SHAKETOL) and to allow a larger number of iterations (see SHAKEMAXITER) in the SHAKE algorithm. Hard constraints may also be used in metadynamics simulations (see MDALGO=11 | 21). Information about the constraints is written onto the REPORT-file: check the lines following the string: Const_coord
Monitoring geometric parameters
Geometric parameters with STATUS = 7 in the ICONST-file are monitored during the MD simulation. The corresponding values are written onto the REPORT-file, for each MD step, after the lines following the string Monit_coord.
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 VALUE_MAX and VALUE_MIN-tags.
To monitor geometric parameters during an MD run:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set MDALGO=2, and choose an appropriate setting for SMASS
- Define geometric constraints in the ICONST-file, and set the STATUS parameter for the constrained coordinates to 7
- Optionally, set the upper and/or lower limits for the coordinates, by means of the VALUE_MAX and VALUE_MIN-tags, respectively.
MDALGO=3: Langevin thermostat
Note: Geometric constraints and metadynamics are not available for Langevin dynamics.
NVT-simulation with Langevin thermostat
The Langevin thermostat[7] maintains the temperature through a modification of Newton's equations of motion
where Fi is the force acting on atom i due to the interaction potential, γi is a friction coefficient, and fi is a random force with dispersion σi related to γi through:
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:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set ISIF=2
- Set MDALGO=3 to invoke the Langevin thermostat
- Specify friction coefficients for all species in the POSCAR file, by means of the LANGEVIN_GAMMA-tag.
NpT-simulation with Langevin thermostat
In the method of Parrinello and Rahman[8][9], the equations of motion for ionic and lattice degrees-of-freedom are derived from the following Lagrangian:
where si 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=hth, pext 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 is the constant of motion. The Parrinello-Rahman method can be combined with a Langevin thermostat[7] to generate an NpT-ensemble.
- To run an NpT-simulation (Parinello-Rahman dynamics) with a Langevin thermostat, one has to:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set ISIF=3 to allow for relaxation of the cell volume and shape. At the moment, dynamics with fixed volume+variable shape (ISIF=4) or fixed shape+variable volume (ISIF=7) are not available.
- Set MDALGO=3 to invoke the Langevin thermostat
- Specify friction coefficients for all species in the POSCAR file, by means of the LANGEVIN_GAMMA-tag.
- Specify a separate set of friction coefficient for the lattice degrees-of-freedom, using the LANGEVIN_GAMMA_L-tag.
- Set a mass for the lattice degrees-of-freedom, using the PMASS-tag.
- Optionally, one may define an external pressure (in kB), by means of the PSTRESS-tag.
The temperatures listed in the 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 OUTCAR file. This can be achieved, e.g. using the following command:
grep "Total+kin" OUTCAR| awk 'BEGIN {p=0.} {p+=($2+$3+$4)/3.} END {print "pressure (kB):",p}'
Important: In Parinello-Rahman[8][9] 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 Pulay stress. Unfortunately, this usually requires a rather large value of ENCUT. 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.[10], this type of problems can be studied using the stochastic boundary conditions (SBC) derived from the generalized Langevin equation by Kantorovich and Rompotis.[11] 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 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: IBRION=0, TEBEG, POTIM, and NSW
- Set ISIF=2
- Set MDALGO=3 to invoke the Langevin thermostat
- Prepare the 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 POSCAR, use Selective Dynamics and the corresponding logical flags to define the frozen and moveable atoms.
- Specify friction coefficients γ, for all species in the POSCAR file, by means of the 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 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 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.
MDALGO=11: Biased-MD and metadynamics with Andersen thermostat
Andersen thermostat
For a short description of the Andersen thermostat see its section under MDALGO=1.
Metadynamics
Biased molecular dynamics
The probability density for a geometric parameter ξ of the system driven by a Hamiltonian:
with T(p), and V(q) being kinetic, and potential energies, respectively, can be written as:
The term 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 acting only on a selected internal parameter of the system ξ=ξ(q), the Hamiltonian takes a form:
and the probability density of ξ in the biased ensemble is:
It can be shown that the biased and unbiased averages are related via a simple formula:
More generally, an observable :
can be expressed in terms of thermal averages within the biased ensemble:
Simulation methods such as umbrella sampling[12] use a bias potential to enhance sampling of ξ in regions with low P(ξi) such as transition regions of chemical reactions. The correct distributions are recovered afterwards using the equation for above.
A more detailed description of the method can be found in Ref.[13]. 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: IBRION=0, TEBEG, POTIM, and NSW
- Set MDALGO=11, and choose an appropriate setting for ANDERSEN_PROB
- In order to avoid updating of the bias potential, set HILLS_BIN=NSW
- Define collective variables in the ICONST-file, and set the STATUS parameter for the collective variables to 5
- Define the bias potential in the PENALTYPOT-file
The values of all collective variables for each MD step are listed in the REPORT-file, check the lines after the string Metadynamics.
MDALGO=21: Biased-MD and metadynamics with Nose-Hoover Thermostat
Biased-molecular- or meta-dynamics with Nose-Hoover Thermostat (SMASS needs to be specified in the INCAR file).
Metadynamics
For a short description of metadynamics see its section under MDALGO=11.
- For a metadynamics run with Nose-Hoover thermostat, one has to:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set MDALGO=21, and choose an appropriate setting for SMASS
- Set the parameters HILLS_H, HILLS_W, and HILLS_BIN
- Define collective variables in the ICONST-file, and set the STATUS parameter for the collective variables to 5
- If needed, define the bias potential in the PENALTYPOT-file
The actual time-dependent bias potential is written to the 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 PENALTYPOT-file. For the continuation of a metadynamics run, copy HILLSPOT to PENALTYPOT. The values of all collective variables for each MD step are listed in REPORT-file, check the lines after the string Metadynamics.
Biased molecular dynamics
For a short description of biased molecular dynamics see its section under MDALGO=11.
- For a biased molecular dynamics run with Nose-Hoover thermostat, one has to:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW
- Set MDALGO=21, and choose an appropriate setting for SMASS
- In order to avoid updating of the bias potential, set HILLS_BIN=NSW
- Define collective variables in the ICONST-file, and set the STATUS parameter for the collective variables to 5
- Define the bias potential in the PENALTYPOT-file
The values of all collective variables for each MD step are listed in the REPORT-file, check the lines after the string Metadynamics.
MDALGO=13: Multiple Anderson thermostats
Up to three user-defined atomic subsystems may be coupled with independent Andersen thermostats[1] (see remarks under MDALGO=1 as well). The 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:
- 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 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, NSUBSYS should be defined as follows:
- NSUBSYS= 10 17 20
- 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.
- TSUBSYS=[real array]
- Simulation temperature for each subsystem
- PSUBSYS=[real array]
- Collision probability for atoms in each subsystem. Only the values 0≤PSUBSYS≤1 are allowed.
Related Tags and Sections
IBRION, ISIF, SMASS, ANDERSEN_PROB, RANDOM_SEED, LBLUEOUT, SHAKETOL, SHAKEMAXITER, HILLS_H, HILLS_W, HILLS_BIN, INCREM, VALUE_MIN, VALUE_MAX, LANGEVIN_GAMMA, LANGEVIN_GAMMA_L, PMASS, NSUBSYS, TSUBSYS, PSUBSYS, ICONST, PENALTYPOT, HILLSPOT, REPORT
References
- ↑ a b H. C. Andersen, J. Chem. Phys. 72, 2384 (1980).
- ↑ E. A. Carter, G. Ciccotti, J. T. Hynes, and R. Kapral, Chem. Phys. Lett. 156, 472 (1989).
- ↑ W. K. Den Otter and W. J. Briels, Mol. Phys. 98, 773 (2000).
- ↑ E. Darve, M. A. Wilson, and A. Pohorille, Mol. Simul. 28, 113 (2002).
- ↑ P. Fleurat-Lessard and T. Ziegler, J. Chem. Phys. 123, 084101 (2005).
- ↑ J. P. Ryckaert, G. Ciccotti, and H. J. C. Berendsen, J. Comp. Phys. 23, 327 (1977).
- ↑ a b M. P. Allen and D. J. Tildesley, Computer simulation of liquids, Oxford university press: New York, 1991.
- ↑ a b M. Parrinello and A. Rahman, Phys. Rev. Lett. 45, 1196 (1980).
- ↑ a b M. Parrinello and A. Rahman, J. Appl. Phys. 52, 7182 (1981).
- ↑ D. Toton, C. D. Lorenz, N. Rompotis, N. Martsinovich, and L. Kantorovich, J. Phys.: Condens. Matter 22, 074205 (2010).
- ↑ L. Kantorovich and N. Rompotis, Phys. Rev. B 78, 094305 (2008).
- ↑ G. M. Torrie and J. P. Valleau, J. Comp. Phys. 23, 187 (1977).
- ↑ D. Frenkel and B. Smit, Understanding molecular simulations: from algorithms to applications, Academic Press: San Diego, 2002.
Cite error: <ref>
tag with name "Laio02" defined in <references>
is not used in prior text.
Cite error: <ref>
tag with name "Iannuzzi03" defined in <references>
is not used in prior text.
Cite error: <ref>
tag with name "Ensing05" defined in <references>
is not used in prior text.
Cite error: <ref>
tag with name "Laio05" defined in <references>
is not used in prior text.