Warning

This tutorial is a work-in-progress

Installing AiiDA and AiiDA-VASP

After all is done and set, run

verdi plugin list aiida.calculations

Configuring AiiDA

verdi computer setup

-> % verdi computer setup
Report: enter ? for help.
Report: enter ! to ignore the default and set no value.
Computer label: perlmutter
Hostname: perlmutter.nersc.gov
Description []: Perlmutter at NERSC
Transport plugin: core.ssh
Scheduler plugin: core.slurm
Shebang line (first line of each script, starting with #!) [#!/bin/bash]:
Work directory on the computer [/scratch/{username}/aiida/]:
Mpirun command [mpirun -np {tot_num_mpiprocs}]: srun -n {tot_num_mpiprocs} -c 2
Default number of CPUs per machine: 2
Default amount of memory per machine (kB).: 12800000
Escape CLI arguments in double quotes [y/N]:
Success: Computer<1> perlmutter created
Report: Note: before the computer can be used, it has to be configured with the command:
Report:   verdi -p ar computer configure core.ssh perlmutter
---
label: "perlmutter"
hostname: "perlmutter.nersc.gov"
transport: "core.ssh"
description: "NERSC Perlmutter cluster"
scheduler: "core.slurm"
work_dir: "/pscratch/sd/a/{username}/aiida/"
default_memory_per_machine: 128000000
mpirun_command: "srun -n {tot_num_mpiprocs} -c 2"
mpiprocs_per_machine: "32"
prepend_text: |
  ### computer prepend_text start ###
  #SBATCH -C cpu
  #SBATCH -q regular
  #SBATCH -A m4068
  # OMP Settings
  export OMP_PLACES=threads
  export OMP_PROC_BIND=true
  export OMP_NUM_THREADS=1
  ### computer prepend_text end ###

After configuring a computer, you cannot edit its contents. If you want to edit something, you must create a new computer.

Enter the information as

verdi computer configure core.ssh perlmutter --config perlmutter.yaml

Be sure to set the path to the .ssh file added with sshproxy utility fron NERSC. To test that the computer is working run

verdi computer test perlmutter

Configuring AiiDA-VASP

We now create a code using the command

verdi code configure core.code.installed --configure vasp.yaml

which uses the following configuration parameters

# vasp.yaml
---
label: "vasp-std"
description: "VASP 5.4.4 on NERSC Perlmutter"
computer: "perlmutter"
filepath_executable: "/global/common/software/nersc9/vasp/vasp/5.4.4-cpu/bin/vasp_std"
default_calc_job_plugin: "vasp.vasp"
prepend_text: |
  module purge
  module load vasp 

append_text: ""

When running verdi code show vasp-std@perlmutter, we should see the specifics (just as in AiiDA-VASP tutorial)

Adding POTCARs

Since I work with pymatgen, we will upload the potentials from such source. You need to have pymatgen in your environment installed and the POTCAR files configured appropriately (see the POTCAR Setup section).

aiida-vasp potcar upload-from-pymatgen --name=PBE.54 --description="PBE from pymatgen"