Permalink
Cannot retrieve contributors at this time
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?
Installing_vasp/README.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
143 lines (113 sloc)
4.53 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 | |
``` |