MDALGO

From VASP Wiki
Revision as of 13:46, 21 October 2025 by Huebsch (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

MDALGO = 0 | 1 | 2 | 3 | 4 | 5 | 11 | 21 | 13
Default: MDALGO = 0 

Description: Specifies the thermostat for MD calculations (in case IBRION = 0).


Mind: All options except MDALGO = 0 require a VASP executable which was compiled with the -Dtbdyn precompiler option enabled. This is usually the case because the option is present by default in all shipped makefile.include templates since VASP 5.4.4.

MDALGO=1,2,3,4,5 can be applied in the context of

The main output file is the REPORT file.

MDALGO = 0 : Standard molecular dynamics

Selects a Nosé-Hoover thermostat which allows sampling the NVT ensemble at temperature TEBEG. The Nosé-Hoover thermostat requires an appropriate setting for SMASS. To sample an NVE ensemble set SMASS = -3 .

Deprecated: If possible, we recommend using one of the newer Nosé-Hoover thermostat implementations VASP provides (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).

MDALGO = 1 : Andersen thermostat

The Andersen thermostat can be used to sample an NVT ensemble, which requires setting an appropriate value for ANDERSEN_PROB.

For ANDERSEN_PROB = 0.0 , the thermostat is inactive, such that the NVE ensemble is sampled. This is usually done after thermalization to a certain target temperature.

Tip: Leave the value for TEBEG that was set in the thermalization. For TEBEG = <0.1 , some part of the code assumes it is used for structure optimization and not an MD run.

MDALGO = 2 : Nosé-Hoover thermostat

The Nosé-Hoover thermostat is currently only available for the NVT ensemble. It requires setting an appropriate value for SMASS.

Tip: The Nosé-Hoover thermostat is a special case of the Nosé-Hoover chain thermostat (MDALGO = 4  with NHC_NCHAINS = 1 ). The control tags for MDALGO = 4  may be more convenient to use than the older implementation (MDALGO = 2 ).

MDALGO = 3 : Langevin thermostat

The Langevin thermostat is available for sampling an NVT ensemble as well as sampling an NpT ensemble.

  1. 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.
  2. Specify friction coefficients for all species in the POSCAR file by means of the LANGEVIN_GAMMA tag.
  3. Specify a separate set of friction coefficient for the lattice degrees-of-freedom using the LANGEVIN_GAMMA_L tag.
  4. Set a mass for the lattice degrees-of-freedom using the PMASS tag.
  5. Optionally, one may define an external pressure (in kB) by means of the PSTRESS tag.

Also see stochastic boundary conditions.

MDALGO = 4 : Nosé-Hoover chain thermostat

The Nosé-Hoover chain thermostat can be used to sample an NVT ensemble and requires selecting the number of thermostats in the chain via NHC_NCHAINS as well as choosing an appropriate setting for the thermostat parameter NHC_PERIOD.

MDALGO=5: Canonical sampling through velocity-rescaling (CSVR thermostat)

Mind: This option is available as of VASP 6.4.3.

The CSVR thermostat can be used to sample an NVT ensemble. It requires setting CSVR_PERIOD.

MDALGO=13: Multiple Andersen thermostats

Up to three user-defined atomic subsystems may be coupled with independent Andersen thermostats[3] (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:

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.
Simulation temperature for each subsystem
Collision probability for atoms in each subsystem. Only the values 0≤PSUBSYS≤1 are allowed.

Related tags and articles

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

Examples that use this tag

References