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.

This feature is currently under active development, and should be considered experimental. We encourage users to report any problems they encounter, and to inform us about what type of features they would like to see added.

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.