HPC/Applications/vasp
Requesting Access
Both VASP-4 and VASP-5 major versions are available on Carbon, and require a license. VASP-5 is a separate license, which includes access to VASP-4 and potpaw_PBE potentials.
You are welcome to use the Carbon binaries, but I (stern) need written or emailed confirmation of your license status. Please kindly ask the vaspmaster to confirm to me that you hold or are covered by a license. You may wish to use the following template.
To: [email protected] CC: [email protected] Subject: License confirmation
We are users of the Center for Nanoscale Materials at Argonne National Laboratory. We would like to use the VASP installation at this site. Please reply and confirm to Michael Sternberg <[email protected]> that we hold the license numbers VASP-4 … VASP-5 … with the following people in my research group: … … With best regards, …
Module considerations
- Review the available modules for each major version:
- Choose and add one of the following lines to your ~/.bashrc file:
module load vasp # sets $VASP_HOME module load vasp5 # sets $VASP5_HOME
- Each module points to an installation directory using an environment variable corresponding to the module name. Do not hardcode the directory anywhere, as that location is determined by the module and may change in subsequent versions. There should not be a reason to do so, since
$PATH
will be managed appropriately.
- Each module provides several binaries (see next section).
- You do not need to specify a path for vasp for the mpirun statement in the PBS job script.
- The modules are mutually exclusive.
- Potentials are available in
/opt/soft/vasp-pot
.
To access Graeme Henkelman's script suite, load the vasp-vtstscripts module. It works with both the vasp and vasp5 modules above. In either case, choose one of the VTST-patched binaries from the table below. The unpatched vasp binaries will not interoperate with the script suite.
module load vasp-vtstscripts
Binaries
Some options for VASP cannot be configured at runtime (by input data) but must be chosen when compiling. Since no single set of compile-time choices is appropriate for all uses, a number of binaries are provided, distinguished by their name.
The modules from versions vasp/4.6.35-mkl-13 and vasp5/5.2.12a-mkl-4 onwards, respectively,
contain several binaries built using different sets of preprocessor flags in the Makefile.
Earlier modules only contain two binaries, vasp
and vasp-gamma
.
Additional binaries are provided for useful preprocessor flag combinations
after applying patches from the group of Graeme Henkelman (UT Austin) to the source code:
To verify the binaries available for a module, run the appropriate command, once the module has been loaded:
ls $VASP_HOME/bin ls $VASP5_HOME/bin
Choose a binary appropriate for your task and pass its name to mpirun
in the job script.
There is no need for full path names.
Copy a sample job script from:
$VASP_HOME/vasp.job $VASP5_HOME/vasp.job
Available binaries and their compile-time flags used
This table lists the names of the binaries compiled from
- combinations of preprocessor flags, and
- variants of the source code, primarily enhancing capabilities of ionic updates.
Versions and capabilities | Flags used | Binary names | ||||
Official | Constrained Cell relaxation1 | Patched for VTST2 | Patched for Bader-projected DOS3 | |||
Conventional, Versions 4.x–5.3 |
(none) | vasp | vasp-cellz | vasp-vtst | vasp-baderdos | |
---|---|---|---|---|---|---|
-DNGZhalf | vasp-chargehalf | vasp-cellz-chargehalf | vasp-vtst-chargehalf | vasp-baderdos-chargehalf | ||
-DwNGZhalf | vasp-gamma | vasp-cellz-gamma | vasp-vtst-gamma | vasp-baderdos-gamma | ||
-DwNGZhalf -DNGZhalf | vasp-gamma-chargehalf | vasp-cellz-gamma-chargehalf | vasp-vtst-gamma-chargehalf | vasp-baderdos-gamma-chargehalf | ||
Advanced MD techniques,4 Versions 5.2 and 5.3 |
-Dtbdyn | vasp-tbdyn | – | – | not useful | |
-Dtbdyn -DNGZhalf | vasp-tbdyn-chargehalf | |||||
-Dtbdyn -DwNGZhalf | vasp-tbdyn-gamma | |||||
-Dtbdyn -DwNGZhalf -DNGZhalf | vasp-tbdyn-gamma-chargehalf | |||||
Version 5.44,5 | -Dtbdyn | – | vasp_ncl | vasp_vtst_ncl | TBD | |
-Dtbdyn -DNGZhalf | vasp_std | vasp_vtst_std | ||||
-Dtbdyn -DwNGZhalf -DNGZhalf | vasp_gam | vasp_vtst_gam | ||||
(GPU6) | vasp_gpu_ncl | vasp_vtst_gpu_ncl | ||||
(GPU6) -DNGZhalf | vasp_gpu | vasp_vtst_gpu |
1) Stress tensor selectively zeroed in subroutine CONSTR_CELL_RELAX
2) http://theory.cm.utexas.edu/vtsttools/ . The dimer method was broken for vasp5/5.3.3 prior to 5.3.3p3-mkl-2.
3) http://theory.cm.utexas.edu/vtsttools/dos/ (now defunct)
4) http://cms.mpi.univie.ac.at/vasp/vasp/Advanced_MD_techniques.html
5) Axis-selective constrained cell relaxation, controlled via an optional input file CELL_RELAX
, is compiled into all binaries.
6) http://cms.mpi.univie.ac.at/wiki/index.php/GPU_port_of_VASP
Explanation of flags
- File
vasp.5.2/makefile.linux_pg
in the souce code explains:
#----------------------------------------------------------------------- # possible options for CPP: # NGXhalf charge density reduced in X direction # wNGXhalf gamma point only reduced in X direction # avoidalloc avoid ALLOCATE if possible # IFC work around some IFC bugs # CACHE_SIZE 1000 for PII,PIII, 5000 for Athlon, 8000 P4 # RPROMU_DGEMV use DGEMV instead of DGEMM in RPRO (usually faster) # RACCMU_DGEMV use DGEMV instead of DGEMM in RACC (faster on P4) # **** definitely use -DRACCMU_DGEMV if you use the mkl library #----------------------------------------------------------------------- … #----------------------------------------------------------------------- # additional options for CPP in parallel version (see also above): # NGZhalf charge density reduced in Z direction # wNGZhalf gamma point only reduced in Z direction # scaLAPACK use scaLAPACK (usually slower on 100 Mbit Net) #-----------------------------------------------------------------------
- In the new build system (since version 5.4) the direct use of the
-D*NG*half
options has been replaced by the make(1) argumentVERSION={std,gam,ncl}
.
Common flags
-DIFC -DRPROMU_DGEMV -DRACCMU_DGEMV -DCACHE_SIZE=16000 -DMPI -DMPI_BLOCK=8000
General patches
The following modifications have been applied and are active in all binaries:
vdW-DF functional
The vdW-DF functional of Langreth and Lundqvist et al.
is implemented in all the *-chargehalf
binaries of the vasp5 module.
No specific preparations are needed other than setting the INCAR flags as documented. The binaries will find the required precalculated kernel file vdw_kernel.bindat
by means of the environment variable $VASP5_HOME
which is set by the module.
This is a Carbon-specific extension.
Solvation Model
All binaries above build 5.4.1.3-8-* contain the VASPsol solvation model of the Hennig group at Univ. of Florida..
Constrained Cell Relaxation
Likewise, in all binaries above build 5.4.1.3-8-* the relaxation of the unit cell may be constrained
along one or more axes by creating a supplementary input file CELL_RELAX
.
The subroutine CONSTR_CELL_RELAX
,
having been a placeholder in the original source files,
was extended to read (and re-read) this file in each call and apply the containts
to the force components of each basis vector.
The performance impact from the multiple reads is expected to be minimal.
This is a Carbon-specific extension.
- File format
cell relaxation - fixed string, for validation only, leading spaces ignored. ix iy iz - 3 integer flags, indicating which cartesian components of the basis vectors are allowed to be changed; 0 means no (fixed), non-zero means yes (can change).
- Examples
- To relax the entire cell (identical to default behavior):
cell relaxation 1 1 1
- To relax along z only:
cell relaxation 0 0 1
- Author
- Michael Sternberg.
Usage under ASE
VASP calculations can be set up, run, and analyzed using the calculator interface of the ASE package, available on Carbon under both the ase3 and atk modules. ASE is told how to use VASP by means of environment variables which the modules define for you with sensible defaults:
VASP_PP_PATH VASP_COMMAND
- The calculator will create and possibly overwrite VASP input files in the current directory, and then run VASP therein. To minimize clutter, consider setting up and changing into a run-specific directory before initializing the calculator.
VASP_COMMAND
normally uses thevasp
binary (see above), and will run in parallel when called under a PBS job. That decision is based on thePBS_NODEFILE
environment variable being present.- You can supply another executable name or path in the variable
VASP_BINARY
. - The ASE calculator supports an alternative calling interface, a python script named in
VASP_SCRIPT
. This variable is not set by default on Carbon. If you wish to define a personalVASP_SCRIPT
, unsetVASP_COMMAND
in tandem.VASP_COMMAND
takes precendence overVASP_SCRIPT
.- The stdout stream is redirected to a file under
VASP_COMMAND
, but will appear on ASE's stdout underVASP_SCRIPT
. - Inspect the calculator source code for details; see function
run(self)
.
Usage under ATK/VNL
The ATK package (module atk) supports two different ways to interface with VASP.
- The ase calculator interface – see previous section.
- The VASPScripter AddOn.
- The scripter "merely" helps you to set up the VASP input files in VNL, the ATK GUI. It does not start or analyze a VASP run.
- The directory for pseudopotentials is preconfigured to be the same as
$VASP_PP_PATH
for the ASE calculator.
Node resources for VASP
Consider the follwing to specify PBS node resources (in job files and on the qsub command line).
Single-node jobs
- When on gen1 nodes use ppn=4 and disallow sharing
#PBS -l nodes=1:ppn=4:gen1 #PBS -l naccesspolicy=SINGLEJOB -n
- When on gen2, use ppn=7 or 8
#PBS -l nodes=1:ppn=8:gen2
Multi-node jobs
Run on gen2 only, by using the following options for qsub or #PBS:
#PBS -l nodes=__:ppn=__:gen2