VASP via AMS

VASP support in the Amsterdam Modeling Suite

General

With AMS2019.3, the graphical user interface supports setting up, running and visualizing some results from calculations run using the Vienna Ab initio Simulation Package, VASP, version 5.X. VASP itself is not included in the Amsterdam Modeling Suite, but needs to be obtained and installed separately. As the VASP code has not been developed by SCM, we cannot give support for VASP issues other than use via our GUI or PLAMS.

VASP as an external engine

The GUI supports setting up calculations with VASP as an external engine to the AMS driver, hence “VASP via AMS”. This means that the AMS driver handles all changes to the system’s geometry during for example a geometry optimization, NEB calculation, or molecular dynamics simulation. The energy and forces at each step are calculated by a single point VASP calculation. Efficient use of restart files minimize the resulting overhead.

VASP can also natively perform geometry optimizations, NEB calculations, and molecular dynamics simulations, but the VASP-via-AMS feature only supports those types of calculations via the AMS driver.

AMS driver tasks that change the number of atoms from one step to the next, for example Grand-Canonical Monte Carlo, Molecule Gun, or the numerical calculation of phonons (via a supercell), are currently not supported by the VASP-via-AMS interface.

Tutorials

There are tutorials that show how to use VASP via the GUI, and via the python scripting toolkit PLAMS.

Setting up a VASP calculation

VASP executable and number of processes (parallelization)

There needs to be a working VASP installation on the machine where the calculation is run. Specify the exact command you would like to execute to run VASP as the Command to execute VASP on the main VASP page in AMSinput. For example, set it to mpirun -np 16 vasp, if you use mpirun to launch VASP and would like to parallelize over 16 processes.

Note

The environment variable NSCM must be set to 1. This is automatically done by AMSinput.

Pseudopotentials and PAW potentials (POTCAR)

VASP requires that pseudopotentials or PAW potentials be used for each element. Such potentials are distributed with VASP in files called POTCAR or POTCAR.Z. For example, the following files might exist for PAW potentials intended for use with the PBE density functional:

/some/path/PBE_PAW/H/POTCAR
/some/path/PBE_PAW/O/POTCAR
/some/path/PBE_PAW/O_h/POTCAR
/some/path/PBE_PAW/O_s/POTCAR

In this case, /some/path/PBE_PAW would be a POTCAR Library, that can be entered on the main VASP in AMSinput. That would by default use the /some/path/PBE_PAW/H/POTCAR and /some/path/PBE_PAW/O/POTCAR files for H and O, respectively. To specify other POTCAR files, for example the harder (O_h) or softer (O_s) PAW potentials for O, select those files on the Details → Pseudopotentials page.

If you set a POTCAR library, it will be remembered for the next time you launch AMSinput.

Note: The POTCAR library is a path on the machine running AMSinput, which need not be the same machine as where the calculation is eventually run.

Tip: If as an example you frequently use the O_h/POTCAR file for O atoms, consider creating a custom POTCAR library where this file is instead moved to O/POTCAR, so that it is automatically selected if you specify the custom POTCAR library.

k-point sampling (KPOINTS)

You can specify the grid sizes for Monkhorst-Pack or Gamma-centered k-point grids, together with fractional k-point coordinate displacements, on the main page in AMSinput. If you would like to use a custom KPOINTS file (to be read by VASP), select your file under Details → Expert VASP → KPOINTS File. That file will override any other specified k-point settings.

Currently, to specify a path through the Brillouin zone for band structure calculations, or to use some manually specified set of k-points, you must generate such a KPOINTS file yourself.

Other settings (INCAR)

Many calculation settings can be set using the GUI, for example,

  • The planewave energy cutoff (main panel)

  • The exchange-correlation functional (main panel)

  • Fractional occupation scheme (smearing) (main panel)

  • van der Waals corrections (Model → Van der Waals correction)

  • Hubbard U parameters for different elements (Model → Hubbard U)

  • WAVECAR or CHGCAR files for restarting or initializing a calculation (Details → Expert VASP)

Moreover, you can set arbitrary settings as “Additional INCAR options” on the Details → Expert VASP page. In case of any conflict between these and other INCAR-related settings set in the GUI, the “Additional INCAR options” take precedence.

You can also use your own INCAR file (Details → Expert VASP). That will ignore all INCAR-related settings in the GUI.

Note: the INCAR tags NSW, IBRION, ISIF, and LWAVE are automatically set by the AMS driver before VASP is executed.

Running VASP via AMS

Running VASP with AMSjobs

You can run a VASP-via-AMS job just like any other job using AMSjobs. If a geometry optimization, molecular dynamics simulation, or NEB calculation was performed, you can visualize the results in AMSmovie.

Note that the AMS driver enforces that LWAVE be set to .TRUE., thus leaving the WAVECAR file on disk. This file can become rather large, so if you do not need it for post-analysis, or for initializing another calculation, you could consider removing this file after the calculation has completely finished.

Preprocessing the input

You can also choose to only do the necessary preprocessing of a job before VASP is executed, by selecting “Only preprocess” on the Details → Expert VASP page. By running such a job, the INCAR, POSCAR, POTCAR, KPOINTS, and any other auxiliary input files will be left on disk in the folder jobname.results/external, but VASP will not be executed. It may be useful to manually inspect the contents of these files, to see exactly what the input to VASP is. For the preprocessing step, no working installation of VASP is needed.

Scripting support

Using VASP-via-AMS via the Python scripting framework PLAMS is fully supported, see the tutorial.

VASP via AMS without the GUI

This section describes how to set up a VASP-via-AMS calculation without the GUI. Please note that the keyword names, and the syntax for setting up a VASP-via-AMS calculation, may change in future versions of the Amsterdam Modeling Suite. For this reason, we recommend setting up the calculation via the GUI.

Before ams is executed, the pertinent POTCAR (as read by VASP) must be created in $AMS_RESULTSDIR.

VASP runs as an external engine to the AMS driver. The engine block to the AMS input file should read:

Engine External
   InputDefinition $AMSBIN/input_def/vasp.json
   Execute "$AMSBIN"/amspython "$AMSHOME"/scripting/standalone/external_engines/vasp.py
   Input
      ...
   EndInput
EndEngine

where $AMSHOME and $AMSBIN are replaced by their respective values, and where the allowed settings in the Input block are the following:

CHGCARFile
Type

String

GUI name

CHGCAR file

Description

Use a custom CHGCAR file for initializing the charge density. Note: You must also set ICHARG to an appropriate value for this CHGCAR file to be read by VASP.

EnergyChoice
Type

Multiple Choice

Default value

FreeEnergy

Options

[FreeEnergy, EnergyWithoutEntropy, EnergySigmaToZero]

GUI name

Energy from OUTCAR

Description

The energy from the VASP output which is used with the AMS driver.

EnergyCutoff
Type

Float

Default value

400.0

Unit

eV

GUI name

Planewave energy cutoff

Description

The energy cutoff for the planewave basis set. VASP keyword: ENCUT

INCARFile
Type

String

GUI name

INCAR file

Description

Use a custom INCAR file. The keywords NSW, IBRION, ISIF, and LWAV must not be set in this INCAR file, since they are controlled by the AMS driver.

Initialize
Type

String

GUI name

WAVECAR file

Description

Path to a WAVECAR (wavefunction) file from a previous calculation that is used to initialize the present calculation. If specified, the file will be copied into the new calculation directory and the VASP keyword ISTART will be set to 1.

KPOINTSFile
Type

String

GUI name

KPOINTS file

Description

Use a custom KPOINTS file. This will override any other settings related to the k-point sampling.

KPOINTSOrigin
Type

Multiple Choice

Default value

Monkhorst-Pack

Options

[Gamma-centered, Monkhorst-Pack]

GUI name

Type of k-point grid

Description

Type of regular k-point grid. Gamma-centered k-point grids always include the Gamma point, whereas Monkhorst-Pack grids do not include the Gamma point if any of the k-point grid dimensions is even. To use a custom set of k-points, or to specify paths in the Brillouin zone, prepare such a KPOINTS file manually and set the KPOINTSFile setting.

LDAU
Type

Bool

Default value

No

GUI name

Use DFT+U

Description

Enables a DFT+U calculation. The options LMAXMIX, LDAUType, LDAUU, LDAUJ, and LDAUL must also be set.

LDAUJ
Type

Float List

Description

LDAUL
Type

String

Description

LDAUType
Type

Multiple Choice

Default value

2

Options

[1, 2, 4]

GUI name

Hubbard U-Type

Description

1: The rotationally invariant DFT+U introduced by Liechtenstein et al. 2: The simplified (rotationally invariant) approach to DFT+U, introduced by Dudarev et al. 4: Same as type 1, but without exchange splitting. VASP keyword: LDAUTYPE.

LDAUU
Type

Float List

Description

LMAXMIX
Type

Integer

Default value

2

GUI name

LMAXMIX

Description

VASP keyword: LMAXMIX

Misc
Type

Non-standard block

GUI name

Additional INCAR options

Description

The contents of this block are copied verbatim into the VASP INCAR file. Note: do not set NSW, IBRION, ISIF or LWAV in this block, as those keys are set by the AMS driver.

nk1
Type

Integer

Default value

1

Description

Number of k-points in the first dimension

nk2
Type

Integer

Default value

1

Description

Number of k-points in the second dimension

nk3
Type

Integer

Default value

1

Description

Number of k-points in the third dimension

Occupation
Type

Multiple Choice

Default value

Gaussian

Options

[Gaussian, Fermi, 1stOrderMethfesselPaxton, 2ndOrderMethfesselPaxton, TetrahedronMethodWithoutBlochlCorrections, TetrahedronMethodWithBlochlCorrections]

GUI name

Type of smearing

Description

Type of electronic smearing (fractional occupation scheme). VASP keyword: ISMEAR

OnlyPreprocessing
Type

Bool

Default value

No

GUI name

Only preprocess

Description

If Yes, VASP will not be executed. Instead, the first set of input files (e.g. INCAR, POSCAR, POTCAR, KPOINTS) that would have been read by VASP will be left on disk for inspection.

POTCARLibrary
Type

String

GUI name

Path to POTCAR library

Description

Path to the POTCAR (pseudopotential) library, as delivered with VASP. This library must be accessible on the machine currently running AMSinput. For example, setting this to /library/PBE/PAW/ will use /library/PBE/PAW/Cu/POTCAR as the POTCAR file for Cu atoms by default. Click the arrow to see or change exactly which POTCAR files are used.

Precision
Type

Multiple Choice

Default value

Normal

Options

[Single, Normal, Accurate]

GUI name

Precision

Description

VASP keyword: PREC

sk1
Type

Float

Default value

0.0

Description

Fractional shift of the k-mesh in the first dimension

sk2
Type

Float

Default value

0.0

Description

Fractional shift of the k-mesh in the second dimension

sk3
Type

Float

Default value

0.0

Description

Fractional shift of the k-mesh in the third dimension

Smearing
Type

Float

Default value

0.2

Unit

eV

GUI name

Smearing width

Description

VASP keyword: SIGMA

SpinPolarization
Type

Bool

Default value

No

GUI name

Spin-polarization

Description

Determines if a spin-polarized calculation is performed. If set, the VASP keyword ISPIN is set to 2.

VASPExec
Type

String

Default value

GUI name

Command to execute VASP

Description

Command used to execute VASP. For example: mpirun -np 4 vasp

vdW
Type

Multiple Choice

Default value

Disable

Options

[Disable, DFT-D2, DFT-D3, DFT-D3(BJ), TS, TSWithIterativeHirshfeldPartitioning, ManyBodyDispersionEnergyMethod, IDVW=4]

GUI name

van der Waals method

Description

The van der Waals correction method. VASP keyword: IVDW Default: IVDW = 0 (Disable)

Verbosity
Type

Bool

Default value

No

GUI name

Verbosity

Description

If set, more detailed information is printed in the output file.

XC
Type

Multiple Choice

Default value

Auto

Options

[Auto, LDA, PBE, PW91, HF, PBE0, HSE06, B3LYP, 03, 05, 10, 20, 91, AM, B3, B5, BF, BO, CA, CO, HL, MK, OR, PE, PL, PS, PZ, RA, RE, RP, VW, WI]

GUI name

XC functional

Description

The exchange-correlation functional. This setting *must* be consistent with POTCAR. If your desired functional is not present in the list, choose Auto and set the GGA tag manually under Additional INCAR options. Note: not all functionals are implemented in all versions of VASP. Auto: The XC functional is determined by the information in POTCAR. The GGA setting is not set. LDA: the VASP GGA setting is set to an empty string. PBE: sets GGA = PE. PW91: sets GGA = 91. HF: Hartree-Fock. Sets LHFCALC = .TRUE, AEXX = 1, ALDAC = 0, AGGAC = 0. PBE0: sets GGA = PE, LHFCALC = .TRUE. HSE06: sets GGA = PE, LHFCALC = .TRUE., HFSCREEN = 0.2. B3LYP: sets LHFCALC = .TRUE., GGA = B3, AEXX = 0.2, AGGAX = 0.72, AGGAC = 0.81, ALDAC = 0.19. All other options set the VASP GGA setting to the corresponding value. For more information, see the VASP manual.