VASP calculation

Inputs

parameters

The input parameters (the content of the INCAR file). This is of the AiiDA data type Dict, containing keys-value pairs that would be given in an INCAR file when running VASP manually. The conversion (parsing) from parameters to a VASP INCAR file is handled by Incar. Example:

parameters = Dict(dict={
   'system': 'System Name',
   'nbands': 24,
   'gga': 'PE',
   'gga_compat: False,
   'encut': 280.0}
)

Key names are case-insensitive, which should be considered when querying the database. Values can be given in their python representation or as strings (strings also may include unit specifications).

dynamics

A dictionary containing information about how the calculation should obey the dynamics of the system. Currently only one flag is respected, that is the positions_dof which contains a list, one entry per position which contains another list, e.g. [True, True, False] that describes the flags to set in POSCAR after each position in order to control the selective dynamics. Example:

dynamics = Dict(dict={'positions_dof':
  [[True, True, True],
   [False, True, False]
  ]}
)

kpoints

The k-point mapping of the reciprocal space. This is of the AiiDA data type KpointsData and can either be given as a mesh, list or path. This information is transformed into either of two kinds of KPOINTS file; a mesh or an explicit list. The transformation of k-point paths to lists of k-points is left to AiiDA to ensure consistency over codes. Mesh files are written as such because VASP treats them differently than lists and many use cases do not work with lists. The conversion (parsing) from kpoints to a VASP KPOINTS file is handled by Kpoints. Example:

k_mesh = KpointsData()
k_mesh.set_kpoints_mesh([4, 4, 4], offset=[0, 0, 0]) # a fairly sparse mesh

This leads to the following KPOINTS:

Automatic mesh
0
Gamma
4 4 4
0 0 0

Whereas

my_kpoints = [[0.0, 0.0, 0.0],
              [0.1, 0.1, 0.1],
              ...
              ]
my_weights = [1., 2., ...]
assert(len(my_kpoints) == 10)
assert(len(my_weights) == 10)
k_list = KpointsData()
k_list.set_kpoints(my_kpoints)

leads to:

Explicit list
10
Direct
0.0 0.0 0.0 1.0
0.1 0.1 0.1 2.0
...

To use a k-point path requires knowledge of the structure beforehand

structure = CifData.get_or_create('<path-to-cif-file>')
k_path = KpointsData()
k_path.set_cell(structure.get_ase().get_cell())
k_path.set_kpoints_path(value=[('G', 'M'), ('M', ...), ... ])

This leads to:

Explicit list
<Number of AiiDA generated kpoints>
Direct
0  0  0  1.0
...

Look at the class documentation for KpointsData for more information on how to influence the generation of kpoints from paths. One can also utilize SeeK-path to create consitent explicit lists of k-points to be used for band structure extractions. This is demonstrated in Bands workchain.

structure

The structure of the atomic layout. This is of the AiiDA data type StructureData or CifData. The conversion (parsing) to (from) structure from (to) a VASP POSCAR file is handled by Poscar.

potential

A namespace containing the potentials to use for each element (the POTCAR files). This is of the AiiDA-VASP data type PotcarData. How to upload VASP POTCAR files can be found at Potentials. Once uploaded they can be obtained as follows:

# input_structure is for instance InAs
potcar_mapping = {'In': 'In_d', 'As': 'As'}
potcars = PotcarData.get_potcars_from_structure(structure=input_structure, family_name='PBE.54', mapping=potcar_mapping)

One POTCAR node must be given to the calculations for each element in the system. The calculations take responsibility for ordering the elements consistently between POSCAR and POTCAR.

charge_density

The charge density of the electrons (the CHGCAR file). This is of the AiiDA-VASP data type ChargedensityData and contains a CHGCAR file from a previous (self-consistent) run. This input is optional.

wavefunctions

The plane wave coefficients (the WAVECAR file). This is of the AiiDA-VASP data type WavefunData containing a WAVECAR (or WAVEDER) file from a previous (self-consistent) run. This input is optional.

wannier_parameters

Dict containing information that would be given to Wannier90 in a VASP run with LWANNIER90 = TRUE.

Keyword parameters are mapped to key-value pairs, begin-end blocks are represented as lists with an entry per line. Numerical and boolean values can be given as python or string representations of the respective type. An example

wannier_parameters = Dict(dict={
   "num_bands": 24,
   "num_wann": 8,
   "projections": [
      ["In: s; px; py; pz"],
      ["As: s; px; py; pz"]
   ]
})

Outputs

Each Calculation in AiiDA has at least the following two output nodes:

  • retrieved: An AiiDA data type FolderData, containing information about the folder in the file repository holding the retrieved files after a run of a Calculation is completed (e.g. a regular VASP run). Each successfully completed VASP calculation will retrieve at least vasprun.xml and typically more files.

  • remote_folder: An AiiDA data type RemoteData, containing infomation about the directory on the remote computer where the Calculation ran.

In addition to input parameters, a number of VASP specific output nodes may be generated depending on the specific Calculation.

misc

A dictionary container that houses all system size independent properties. It is of an AiiDA data type Dict and contains the keys for the maximum force, stress and total energies.

kpoints

KpointsData containing output k-points read from the output file IBZKPT. This node contains a list of k-points which can be passed to other codes or used to construct input kpoints for a VASP calculation with hybrid functionals.

Applies to:

chargedensities

ChargeDensity containing the CHGCAR output file.

Applies to:

wavefunctions

ChargedensityData containing a WAVECAR file from a previous (self-consistent) run.

Applies to:

bands

BandsData containing the bands information read from EIGENVAL and/or vasprun.xml.

Applies to:

dos

ArrayData containing the DOS information read from DOSCAR and/or vasprun.xml.

Applies to:

wannier_parameters

Dict with a representation of the wannier90.win file generated by the VASP2Wannier90 interface, if LWANNIER90=True was given as an input parameter.

Applies to:

wannier_data

ArchiveData, holding a compressed tar archive of the wannier_setup output files.

Applies to: