首页>资料手册>计算软件
VASP 5.4.1+VTST编译安装
2017-03-30

中国科学技术大学超级计算中心 李会民<hmli@ustc.edu.cn>2017-03-29

原文:http://hmli.ustc.edu.cn/doc/app/vasp.5.4.1-vtst.htm

VTST(Transition State Tools for VASP)是VASP的过渡态工具,可以免费获取:http://theory.cm.utexas.edu/vtsttools/index.html。里面还有VTST Scripts: vtstscripts.tgz,安装时不需要,使用时需要。

VASP及VTST安装无需root权限,普通用户即可安装。

  1. 解压缩VASP源码包:
    tar xvf vasp.5.4.1.tar.bz2
    解压缩后的目录为vasp.5.4.1
  2. 进入vasp.5.4.1目录:
    cd vasp.5.4.1
  3. 查看vasp.5.4.1目录下有何内容:
    ls -l
    输出类似:
    drwxr-xr-x 2 hmli nic  4096 3月  29 08:17 arch
    drwxr-xr-x 2 hmli nic  4096 3月  29 08:16 bin
    drwxr-xr-x 2 hmli nic  4096 2月  26 20:59 build
    -rw-r--r-- 1 hmli nic   371 9月  30 11:51 makefile
    -rw-r--r-- 1 hmli nic 12263 9月  30 11:51 README
    drwxr-xr-x 4 hmli nic 20480 9月  30 11:51 src
    查看说明:
    more README
    从说明中我们得知从5.4.1开始目录结构及编译方式变化为如下方式:
    vasp.X.X.X (root directory)
                          |
       ---------------------------------------
      |              |          |             |
     arch           bin       build          src
                                              |
                                         ----------
                                        |          |
                                       lib       CUDA
    说明:
    • vasp.X.X.X:解压缩后的根目录
    • arch:针对不同架构的Makefile模板,如里面含有makefile.include.linux_intel
    • bin:编译后的可执行程序文件
    • build:编译时自动复制src目录内源码后执行编译的目录
    • src:源码目录
    • lib:库目录,对应以前的vasp.lib目录
    • CUDA:GPU CUDA代码目录
  4. 设置VTST:
      下载:
      wget http://theory.cm.utexas.edu/code/vtstcode.tgz
      解压缩:
      tar xvf vtstcode.tgz
      之后会生成vtstcode-171目录,此目录内包含以下文件:
      bbm.F
      bdr_changes
      bfgs.F
      cg.F
      chain.F
      dimer.F
      dynamic.F
      dynmat.F
      fire.F
      instanton.F
      lanczos.F
      lbfgs.F
      mkbdrpro.pl
      neb.F
      opt.F
      qm.F
      sd.F
      vasp-5.3.2-main.patch
      vasp-5.3.2-mpmd.patch
      vasp-5.4.1-mpmd.patch
    根据官方安装说明http://theory.cm.utexas.edu/vtsttools/installation.html
    • 需要将这些文件复制到src目录中:
      • 因为src目录下存在chain.F,建议先备份chain.F(可选):
        cp src/chain.F src/chain.F-org
      • vtstcode-171目录下文件复制到src下:
        cp vtstcode-171/* src/
    • 修改src/main.F源码:

      将(第3233行)

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

      变为(注意后两行):

      CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &
            TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6)
      !     LATT_CUR%A,LATT_CUR%B,IO%IU6)
    • 修改编译配置src/.objects,在chain.o前(大概第67行)添加如下内容:
      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 \
    注意\后不能有空格
  5. 查看所用的编译器:
    which ifort
    输出类似:
    /opt/intel/composer_xe_2015.1.133/bin/intel64/ifort
    如显示不存在,那么可以类似下面设置下Intel编译器环境(具体路径与你所使用的系统有关):
    . /opt/intel/composer_xe_2015.1.133/bin/compilervars.sh intel64
  6. 查看Intel MKL环境:
    echo $MKLROOT
    输出类似:
    /opt/intel/composer_xe_2015.1.133/mkl
    如显示不存在,那么可以类似下面设置下Intel MKL环境(最好与编译器版本一致):
    . /opt/intel/composer_xe_2015.1.133/mkl/bin/mklvars.sh intel64
  7. 查看Intel MPI环境(最好与编译器版本一致):
    which mpiifort
    如显示不存在,那么可以类似下面设置下Intel MPI环境:
    . /opt/intel/impi/5.0.2.044/bin64/mpivars.sh intel64
    查看是否存在/opt/intel/composer_xe_2015.1.133/mkl/interfaces/fftw3xf/libfftw3xf_intel.a,如没存在,那么可以在自己目录下编译生成libfftw3xf_intel.a
    mkdir -p ~/local/interfaces
    cp -a /opt/intel/composer_xe_2015.1.133/mkl/interfaces/fftw3xf ~/local/interfaces
    cd ~/local/interfaces/fftw3xf
    make libintel64
    顺利的话,将在此目录下生成libfftw3xf_intel.a
  8. 采用arch/makefile.include.linux_intel做为模板(在vasp.5.4.1目录下,未考虑CUDA):
    cp arch/makefile.include.linux_intel makefile.include
  9. 修改makefile.include

    必要时修改OBJECTS那,将

    $(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
    修改为(假如使用~/local/interfaces/fftw3xf):
    $(HOME)/local/interfaces/fftw3xf/libfftw3xf_intel.a

    其它参数,请见VASP官方说明。

  10. 为防止以前编译好的.o和.a文件与新修改的编译配置冲突,建议清除以前编译文件:
    make veryclean
  11. 执行编译,可以默认编译或分开编译:
    • 默认编译(将编译生成std、gam和ncl版):
      make
    • 分开编译:
      • 编译标准std版:
        make std
      • 编译gamma-only版:
        make gam
      • 编译non-collinear版:
        make ncl

    编译完成后将在bin目录下生成对应的版本的可执行程序:vasp_gamvasp_nclvasp_std

  12. 错误处理:

    如果有错,请注意看错误信息,然后根据信息进行处理。

Copyright 2009 中国科学技术大学超级计算中心 All Rights Reserved