Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
# Installing VASP on RCAC Clusters
> Latest edits: Kaustubh Sawant (25th June 2022)
**Source Location:**
```bash
/depot/jgreeley/apps/vasp/vasp5.4.4/
```
### About RCAC Clusters:
Unfortunately, all three clusters, i.e Halstead, Brown and Bell have different configurations.
1. Halstead and Brown use Intel CPUs. Therefore both require Intel compilers.
2. Halstead has Intel-Haswell CPUs, which are a different architecture from Brown, which uses Intel-Skylake CPUs. Therefore, Halstead and Brown have different binaries.
2. Bell has AMD CPUs. Therefore they require GCC compilers. Fortunately, Intel compilers also work and sometimes give better performance.
### VASP Build System
Please find the VASP provided README File in /Installing_vasp/Vasp5.4.4/README. Important snippets from that file are copied here.
The build system of VASP (as of versions >= 5.4.1) has the following
structure:
vasp.X.X.X (root directory)
|
---------------------------------------
| | | |
arch bin build src
|
----------
| |
lib CUDA
**root/** :
Holds the high-level makefile, and several subdirectories.
**root/src** :
Holds the source files of VASP, and a low-level makefile.
**root/src/lib** :
Holds the source of the VASP library (used to be vasp.X.lib),
and a low-level makefile.
**root/src/CUDA** :
Holds the source of the cuda-code that will be executed
on the GPU by the GPU port of VASP.
**root/arch** :
Holds a collection of makefile.include.arch files.
**root/build** :
The different versions of VASP, i.e., the standard, gamma-only,
non-collinear version will be build in seperate subdirectories
of this directory.
**root/bin** :
Here make will store the binaries.
### Where is Vasp ?
All zipped version are on depot.
### How to make VASP
#### 1. Load the righ modules.
```bash
module load intel
module load impi
```
#### 2. Copy one of the makefile.include.arch files in root/arch to root/makefile.include.
The details of each tag in makefile.include are in the VASP provided README file.
Take one that most closely reflects your system (hopefully).
For instance, on a linux box with the Intel Composer suite:
cp arch/makefile.include.linux_intel ./makefile.include
In many cases these makefile.include files will have to be adapted to the particulars of your system. For example, we use the OFLAG = -xhost -O2 tag to decide the right level of optimization. Secondly make sure you have the right path for all the libraries. These settings work for all 3 clusters.
```bash
BLACS = -lmkl_blacs_intelmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o
INCS =-I$(MKLROOT)/include/fftw
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)
```
#### 3. When you've finished setting up makefile.include, build VASP:
```bash
make all
```
This will build the standard, gamma-only, and non-collinear version
of VASP one after the other.
Alternatively on may build these versions individually:
```bash
make std
make gam
make ncl
```
### How to make VASP - VTST
Note : The vtst codes will change the VASP src files. Maintain a copy of the original VASP source code.
#### 1. Copy all the files from vtst/vtstcode5/* in VASP src folder
```bash
cp /vtst/vtstcode5/* ./src/
```
#### 2. Apply patches for vasp5.4.4
```bash
cd src
patch -b -p0 < vasp-5.4.4-mpmd.patch
cd ../
```
#### 3. Modify main.F file in /src/
Find and replace:
```bash
CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &
LATT_CUR%A,LATT_CUR%B,IO%IU6)
```
with
```bash
CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &
TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6)
```
#### 4. Update SOURCE variable in /src/.objects file
Find the variable SOURCE, which defines which objects will be built, and add the following objects before chain.o:
```bash
bfgs.o dynmat.o instanton.o lbfgs.o sd.o cg.o dimer.o bbm.o \
fire.o lanczos.o neb.o qm.o opt.o
```
The objects dynmat.o, neb.o, dimer.o, lanczos.o, and instanton.o must be in the SOURCE list before chain.o appears. The optimizer objects, sd.o, cg.o, qm.o, lbfgs.o, bfgs.o, and fire.o must appear before the optimizer driver opt.o.
#### Steps 3 and 4 can be applied using the patch file /patch/patch.rcac.vtst
```bash
patch -b -p0 < patch.rcac.vtst
```
#### 5. Build Vasp
```bash
make all
```