---
title: 编译和安装
description: "1. 使用PuTTY工具，以root用户登录服务器。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/openmind_kunpengvasp_02_0010.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/openmind_kunpengvasp_02_0010.html
indexId: 5f78a7abef05bf2f9a56d3bf14cdc4bd1726da52641f6c108fa8265d3210ca8c75
---
# 编译和安装

#### 基本安装操作步骤

1. 使用PuTTY工具，以root用户登录服务器。
2. 执行以下命令解压VASP安装包。

```
cd
/path/to/VASP
tar -xvf vasp.5.4.4.tar.gz
```


3. 执行以下命令进入解压后的目录。

```
cd vasp.5.4.4
```


4. 若之前加载过环境配置，则可跳过该步骤。根据实际安装路径设置编译器以及Hyper MPI，前置编译环境的配置。例如：

```
export INCLUDE=
/path/to/hypermpi
/hmpi/include
export PATH=
/path/to/hypermpi
/hmpi/bin:
/path/to/hypermpi
/ucx/bin:$PATH
export OPAL_PREFIX=
/path/to/hypermpi
/hmpi/
export LD_LIBRARY_PATH=
/path/to/hypermpi
/hmpi/lib:
/path/to/hypermpi
/ucx/lib:$LD_LIBRARY_PATH
export PATH=
/opt/compiler
/bisheng-compiler-1.3.3-aarch64-linux/bin:$PATH
export LD_LIBRARY_PATH=
/opt/compiler
/bisheng-compiler-1.3.3-aarch64-linux/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=
/path/to/OPENBLAS
/lib:
/path/to/SCALAPACK
:
/path/to/FFTW
/lib:$LD_LIBRARY_PATH
```


  毕昇编译器和Hyper MPI的环境变量需要在配置编译环境之前设置。

5. 执行以下命令创建并编写“makefile.include”文件。

  a. 创建“makefile.include”文件。

```
vi makefile.include
```


  b. 按“i”进入编辑模式，编写“makefile.include”文件，添加如下部分。

```
##Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxGNU\" \
-DMPI -DMPI_BLOCK=8000 \
-Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=5000 \
-Davoidalloc \
-Duse_bse_te \
-Dtbdyn \
-Duse_shmem
CPP        = flang -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)
FC         = mpif90
FCL        = mpif90
FREE       = -ffree-form -ffree-line-length-none
FFLAGS     = -w
OFLAG      = -O1 -ffp-contract=fast  -ffpe-trap=invalid,zero,overflow
OFLAG_IN   = $(OFLAG)
DEBUG      = -O0
LLIBS      =
-
L
/path/to/SCALAPACK
-lscalapack -L
/path/to/OPENBLAS
/lib -lopenblas
FFTW       ?=
/path/to/FFTW
LLIBS      += -L$(FFTW)/lib -lfftw3
INCS       = -I$(FFTW)/include
OBJECTS    = fftmpiw.o fftmpi_map.o  fftw3d.o  fft3dlib.o
OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB    = $(CPP)
FC_LIB     = $(FC)
CC_LIB     = clang
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB   = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
# For the parser library
CXX_PARS   = clang++
LIBS       += parser
LLIBS    += -Lparser -lparser -lstdc++
# Normally no need to change this
SRCDIR     = ../../src
BINDIR     = ../../bin
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
6. 执行以下命令进行编译安装。

```
make std
```


  若还需要生成“vasp_gam”和“vasp_ncl”，则执行以下命令。

```
make all
```


#### （可选）扩展安装操作步骤

VTST过渡态工具安装。

1. 使用PuTTY工具，以root用户登录服务器。
2. 上传VTSTcode安装包至VASP安装同级目录下。
3. 执行以下命令解压VTSTcode安装包。

```
cd
/path/to/VASP
tar -xvf vtstcode-179.tgz
```


4. 执行以下命令备份VASP安装包“src”目录下的“chain.F”文件。

```
cp vasp.5.4.4/src/chain.F vasp.5.4.4/src/chain.F_bak
```


5. 执行以下命令将“vtstcode-179”目录下文件复制并覆盖到“src”下。

```
cp vtstcode-179/* vasp.5.4.4/src/
```


6. 执行以下命令修改“src/main.F”文件。

  a. 打开算例文件。

```
vi vasp.5.4.4/src/main.F
```


  b. 按“i”进入编辑模式，将“src/main.F”文件的第3146和3147行的语句改为如下内容。

```
CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &  TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6)
```


    执行6.a之后，按“Esc”键，输入“:set nu”，按“Enter”即可显示出行号。

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
7. 执行以下命令修改编译配置文件。

  a. 打开算例文件。

```
vi vasp.5.4.4/src/.objects
```


  b. 按“i”进入编辑模式，在第71和72行之间添加如下内容。

```
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 \
```


    执行7.a之后，按“Esc”键，输入“:set nu”，按“Enter”即可显示出行号。

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
8. 执行以下命令进行编译安装。

```
make std
```


  若还需要生成vasp_gam和vasp_ncl，则执行以下命令。

```
make all
```


#### （可选）扩展安装操作步骤

VASPsol工具安装。

1. 使用PuTTY工具，以root用户登录服务器。
2. 执行以下命令下载并解压VASPsol安装包。

```
cd
/path/to/VASP
wget
https://github.com/henniggroup/VASPsol/archive/refs/tags/V1.0.tar.gz
tar -xvf V1.0.tar.gz
```


3. 执行以下命令将“VASPsol”目录下文件复制并覆盖到“src”下。

```
cp VASPsol-1.0/src/solvation.F vasp.5.4.4/src/
```


4. 执行以下命令修改基本安装操作步骤中5的“makefile.include”文件。
  a. 打开“makefile.include”文件。

```
vi makefile.include
```


  b. 按“i”进入编辑模式，将“-Dsol_compat”添加到“CPP_OPTIONS”中。
  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
5. 执行以下命令编译安装。

```
make std
```


  若还需要生成“vasp_gam”和“vasp_ncl”，则执行以下命令。

```
make all
```


#### Wannier 90接口安装操作步骤

1. 使用PuTTY工具，以root用户登录服务器。
2. 执行以下命令在VASP安装同级目录下，解压wannier90-1.2安装包。

```
cd
/path/to/VASP
tar -xvf wannier90-1.2.tar.gz
```


3. 执行以下命令使用“make.sys.gfort”代替编译文件“make.sys”。

```
cd wannier90-1.2
cp config/make.sys.gfort make.sys
```


4. 执行以下命令修改“make.sys”在文件。

  a. 打开算例文件。

```
vi make.sys
```


  b. 按“i”进入编辑模式，修改第4行的内容。

```
F90 =
flang
```


    在“make.sys”文件末尾增加一行，添加如下内容。

```
LIBS = -L
/path/to/SCALAPACK
-L
/path/to/OPENBLAS
/lib -lscalapack -lopenblas
```

执行4.a之后，按“Esc”键，输入“:set nu”，按“Enter”即可显示出行号。


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
5. 执行以下命令进行安装。

```
make wannier lib test
```


  生成libwannnier.a函数库，此函数库要加入VASP安装编译中。

6. 执行以下命令修改VASP编译文件“makefile.include”。

```
c
d
/path/to/VASP
/vasp.5.4.4
vi
makefile.include
```


7. 按“i”进入编辑模式，修改“makefile.include”文件的内容。
  将第10行修改为：

```
-Duse_shmem -Dtbdyn -DVASP2WANNIER90
```


  在第18与19行之间增加：

```
WANNIER90 =
/path/to/VASP
/wannier90-1.2/libwannier.a
```


  修改第20行的内容在LLIBS加入wannier接口参数：

```
LLIBS = $(WANNIER90) -L
/path/to/SCALAPACK
-lscalapack -L
/path/to/OPENBLAS
/lib -lopenblas
```


  执行6之后，按“Esc”键，输入“:set nu”，按“Enter”即可显示出行号。

8. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
9. 执行以下命令进行编译。

```
make std
```
