Skip to main content

Using VASP on the Eagle System

Learn how to use the VASP (Vienna Ab initio Simulation Package) licensed software on Eagle.

VASP computes an approximate solution to the many-body Schrödinger equation, either within density functional theory (DFT), solving the Kohn-Sham equations, or within the Hartree-Fock (HF) approximation, solving the Roothaan equations. Hybrid functionals that mix the Hartree-Fock approach with density functional theory are implemented as well. Furthermore, Green's functions methods (GW quasiparticles, and ACFDT-RPA) and many-body perturbation theory (2nd-order Møller-Plesset) are available in VASP.

In VASP, central quantities, like the one-electron orbitals, the electronic charge density, and the local potential are expressed in plane wave basis sets. The interactions between the electrons and ions are described using norm-conserving or ultrasoft pseudopotentials, or the projector-augmented-wave method.

To determine the electronic ground state, VASP makes use of efficient iterative matrix diagonalization techniques, like the residual minimization method with direct inversion of the iterative subspace (RMM-DIIS) or blocked Davidson algorithms. These are coupled to highly efficient Broyden and Pulay density mixing schemes to speed up the self-consistency cycle.

For further details, documentation, forums, and FAQs, see the VASP website.

Accessing VASP on Eagle

The VASP license requires users to be a member of a "workgroup" defined by the University of Vienna or Materials Design. If you are receiving "Permission denied" errors when trying to use VASP, you must be made part of the "vasp" Linux group first. To join, please e-mail HPC-Help@nrel.gov with the following information:

  • Your name
  • Whether you are licensed through Vienna (academic) or Materials Design, Inc. (commercial)
  • Your VASP license ID (if licensed through Vienna), or proof of current licensed status (if through Materials Design)
  • The workgroup PI.

Once status can be confirmed, we can provide access to our VASP builds on Eagle.

Setting Up Software Environment

In order to use VASP, set up the software environment via, e.g.:

module purge
module load vasp/5.4.4

Three distinct executables have been made available:

  1. vasp_gam is for Gamma-point-only runs typical for large unit cells;
  2. vasp_std is for general k-point meshes with collinear spins; and,
  3. vasp_ncl is for general k-point meshes with non-collinear spins.

vasp_gam and vasp_std builds include the alternative optimization and transition state theory tools from University of Texas-Austin developed by Graeme Henkelman's group, and implicit solvation models from the University of Florida developed by Mathew and Hennig.

An example job submission script is shown here:

  #!/bin/bash --login
#SBATCH --job-name job_name   # Replace job_name with your own
#SBATCH --ntasks=72 # This will deliver 2 36-core nodes
#SBATCH --time=02:00:00  # REPLACE
#SBATCH –-account=account_id  # Replace with your allocation ID
#SBATCH --error=%x-%A.err # This will create stderr file <job_name>-<jobid>.err
#SBATCH --output=%x-%A.out . # This will create stdout file <job_name>-<jobid>.out

module purge
module load vasp/5.4.4
 
JOB_BASENAME=$SLURM_JOB_NAME  # Captures the –N value from above
SCRATCH=/scratch/$USER/$JOB_BASENAME
 
if [ -d $SCRATCH ]
then
   rm -rf $SCRATCH
fi
mkdir $SCRATCH

cd $SLURM_SUBMIT_DIR # Assumes you submitted job from directory containing VASP input

# Minimal files needed for VASP run
cp INCAR KPOINTS POSCAR POTCAR  $SCRATCH/.

cd $SCRATCH
srun -n $SLURM_NTASKS vasp_gam > $JOB_BASENAME.log

We are currently establishing workflow and testing the GPU-enabled version of VASP for general k-point calculations. We will update this information once it becomes available.