Input Files

Overview

The  VASP manual  is the "holy bible" of VASP. Read it with care when you have questions. Also check out our  😎Assorted Wisdom  section for some tips/tricks.
There are four key input files needed to run a VASP calculation:
    .1The INCAR: this contains most of the input flags.
    .2The POSCAR: this contains the input structure.
    .3The KPOINTS: this contains details about the k-point grid.
    .4The POTCAR: this contains the pseudopotential details.

INCAR


INCAR
179Bytes, Uploaded last year
There are a  wide assortment  of input arguments that VASP can take in the INCAR file, and there are many subtle rules for when to say which flags to what value. The group's software infrastructure will automatically make sure that your INCAR settings are compatible for the most part.
Please do not try to memorize all the INCAR flags. This is merely for ease of reference. That said, after some time using VASP, you will end up knowing more about these flags than you would ever wish.

Green Circle = "Very important; must learn for running your first calculations."
Yellow Square = "Rather important but not needed right way; learn after you've got the basics down."
Diamond Suit = "A bit more specialized. Come back to this later."

Level of Theory

  • Green Circle ENCUT: this sets the plane-wave kinetic energy cutoff. The higher the value, the more precise your calculations will be at the expense of higher computational cost. At the top of each element's POTCAR file is a parameter named ENMAX. The value of ENCUT , if not explicitly set, is the largest ENMAX value across the elements in your system. In practice, you should set ENCUT to at least 1.3 times this maximum ENMAX value for any structure relaxation involving changes to the cell volume in order to minimize artificial stresses.
  • Rule of thumb: Try at least 520 eV to start. In practice, you should ensure this is converged.
  • Green Circle GGA: this sets the exchange-correlation functional (i.e. the "level of theory"). This has the largest impact on the results of the calculation.
  • Rule of thumb: Try GGA = PE first (i.e. the PBE functional), particularly if you are just learning how to use VASP.
  • Yellow Square IVDW: this sets any van der Waals correction scheme. Grimme's DFT-D methods are common in molecular systems where vdW corrections are particularly important.
  • Rule of thumb: For typical bulk solids, don't set it unless you have reason to. For systems with notable vdW interactions, try IVDW = 12 first.
  • Diamond Suit LDAU/ LDAUJ / LDAUL / LDAUPRINT / LDAUTYPE / LDAUU: these arguments specify details related to the DFT+U method, which corrects so-called "self-interaction errors" of GGA functionals. If you are new to DFT, do not worry about these parameters yet.
  • Diamond Suit LHFCALC / HFSCREEN: these methods specify details related to the use of hybrid functionals. Like DFT+U, this can also correct common "self-interaction errors" of GGA functionals.
  • Diamond Suit METAGGA: this parameter defines a particular meta-GGA functional, which is generally more accurate than a GGA functional but less accurate than a hybrid functional.

SCF

  • Green Circle PREC: specifies the precision used.
  • Rule of thumb: Generally set this to Accurate.
  • Green Circle EDIFF: this sets the SCF convergence tolerance. The lower the value, the more precise your energies and forces will be.
  • Rule of thumb: Try 1e-5 to start.
  • Yellow Square ALGO: this sets the SCF convergence algorithm.
  • Rule of thumb: Try Fast to start. If you have problems, switch to All .
  • Yellow Square ISMEAR: this sets how the partial occupancies are treated (i.e. the smearing method) to smooth out discontinuities near the Fermi level. There are a lot of subtle rules about what value to set for what material, which our software stack will try and set for you where appropriate.
  • Rule of thumb: When in doubt, ISMEAR = 0 is a good bet with a small value of SIGMA (0.01 - 0.05).
  • Yellow Square LASPH: this defines whether non-spherical contributions are included in the energy and forces. Do not mix calculations with True and False for LASPH.
  • Rule of thumb: Always set this to True to make your life easier.
  • Yellow Square LREAL: setting this value to Auto can speed up calculations for large systems but can reduce the quality of the energy and should always be set back to False for computed properties of interest.
  • Rule of thumb: Always set this to False (i.e. the default) to make your life easier, even when VASP complains.
  • Yellow Square SIGMA: specifies the smearing parameter (e.g. width). Like ISMEAR, this is very material-dependent.
  • Rule of thumb: When in doubt, set this to a small value (0.01 - 0.05) along with ISMEAR = 0.

Geometry Optimization

  • Green Circle EDIFFG: this sets the maximum net force for a structure to be considered converged during a geometry optimization. The lower the value, the closer to the true local minimum your structure will be. Note that a negative sign should be used by convention (e.g. EDIFFG = -0.03).
  • Rule of thumb: Use a value of -0.03 or tighter (e.g. -0.01).
  • Green Circle IBRION: this is the geometry optimization algorithm.
  • Rule of thumb: Try IBRION = 2 (conjugate gradient) to start.
  • Green Circle ISIF: this defines which degrees of freedom should be modified during the structure relaxation. ISIF = 2 indicates that the positions are relaxed at fixed cell volume. ISIF = 3 indicates that the positions and cell shape/volume are simultaneously relaxed.
  • Rule of thumb: Use ISIF = 3 for cell relaxations and ISIF = 2 otherwise.
  • Green Circle NSW: specifies the maximum number of geometry optimization steps to consider.
  • Rule of thumb: Set to an arbitrarily large value, e.g. 200.
  • Yellow Square ISYM: this defines whether symmetry constraints should be accounted for.
  • Rule of thumb: Set to 0 for geometry optimizations to ensure the symmetry is allowed to change, unless you are intentionally looking to model a given symmetry.

Magnetization

  • Green Circle ISPIN: this sets whether the calculation should be run without or with spin-polarization. If the system has unpaired electrons, it should be run with spin-polarization.
  • Rule of thumb: When in doubt, start with ISPIN = 2 to see if there are favorable magnetic states. If there aren't, the default value of ISPIN = 1 is fine.
  • Green Circle LORBIT: this parameter specifies how much information related to magnetization is written out to the OUTCAR file.
  • Rule of thumb: Always set this to LORBIT = 11 to make your life easier.
  • Green Circle MAGMOM: this parameter specifies details related to the initial guess for the magnetic moments.
  • Rule of thumb: Initialize each transition metal with a high-spin magnetic configuration as a first attempt. Then go back and try other magnetic configurations, if applicable.
  • Diamond Suit NUPDOWN: forces a particular net number of unpaired electrons.

File I/O

  • Yellow Square ICHARG: whether to write out the charge density to the filesystem. This is useful for post-processing but is quite large.
  • Rule of thumb: No need to change the default value in most cases.
  • Yellow Square ISTART: this defines if the VASP calculation should restart from a pre-existing wavefunction. If a WAVECAR is present in the same directory, VASP will automatically try to restart from it.
  • Rule of thumb: No need to change the default value in most cases.
  • Yellow Square LWAVE: this parameter specifies whether the wavefunction is written out to the filesystem. This is especially useful for restarting a calculation but is quite large.
  • Rule of thumb: No need to change the default value in most cases.
  • Diamond Suit LAECHG: this specifies whether AECCAR files are written out, which are used by certain post-processing codes. Never use LAECHG if NSW is not set to 0.
  • Diamond Suit NEDOS: describes how many points are written out in the density of states output file (DOSCAR).

Miscellaneous

  • Green Circle EFERMI: VASP recommends generally just setting this to MIDGAP. That will yield slightly more consistent Fermi energies (and, as a result, band gaps) but otherwise changes nothing.
  • Rule of thumb: Always set this to MIDGAP to make your life easier if you are using VASP 6.4+.
  • Yellow Square NCORE: this parameter can be tuned for a specific machine and system to speed up calculations by parallelizing over orbitals. The only way to know which value is best is to try them out! It should generally be used in place of NPAR.
  • Yellow Square KPAR: similarly, this parameter tells VASP how to parallelize the k-points. It only makes sense to use if there are many k-points, as a result.

POSCAR


POSCAR
7KB, Uploaded last year
The POSCAR file contains all information needed to define the input structure. The easiest way to generate a POSCAR file is using a program like  ASE ,  🧞Pymatgen , or a visualization program like VESTA. A code-snippet to convert a crystal structure in .cif format to a POSCAR file is shown below:
from ase.io import read, write

atoms = read("/path/to/my.cif")
write("POSCAR", atoms, sort=True)
Alternatively, with Pymatgen:
from pymatgen.core import Structure

structure = Structure.from_file("/path/to/my.cif")
structure.to(filename="POSCAR")

KPOINTS


KPOINTS
69Bytes, Uploaded last year
The KPOINTS file encodes the density of the k-point grid. A greater number of k-points typically indicates a more precise calculation. The number of required k-points to reach convergence is typically smaller as a given lattice dimension increases (i.e. large unit cells require fewer total k-points, on average).

There are many schemes in the  🧞Pymatgen  code for automatically setting appropriate k-point values. We will often use the pymatgen.io.vasp.inputs.Kpoints class and the Kpoints.automatic_density_by_vol() function. An example is shown below:
from pymatgen.io.vasp.inputs import Kpoints
from pymatgen.core import Structure

structure = Structure.from_file("POSCAR")
kpts = Kpoints.automatic_density_by_vol(structure, 100)
print(kpts)
Rule of thumb: Use Kpoints.automatic_density_by_vol() with a density of at least 100 for kppvol. In practice, this is also a parameter you should ensure is converged.

POTCAR

VASP ships with several different variations of pseudopotentials to use. Except in unusual circumstances, you can generally want to use the most up-to-date version of the potpaw_PBE pseudopotentials. Even if you are not using the PBE functional, these are generally still the pseudopotentials you should use.

VASP has a  recommended set  of pseudopotentials to use. The recommendations, for the most part, are reasonable.

The VASP POTCAR files are proprietary and should never be made publicly available (e.g. on GitHub, Zenodo, or anywhere else).