中国科学技术大学超级计算中心 李会民<hmli@ustc.edu.cn>2017-03-29
原文:http://hmli.ustc.edu.cn/doc/app/vasp.5.4.1-vtst.htmVTST(Transition State Tools for VASP)是VASP的过渡态工具,可以免费获取:http://theory.cm.utexas.edu/vtsttools/index.html。里面还有VTST Scripts: vtstscripts.tgz,安装时不需要,使用时需要。
VASP及VTST安装无需root权限,普通用户即可安装。
- 解压缩VASP源码包:
tar xvf vasp.5.4.1.tar.bz2
解压缩后的目录为vasp.5.4.1。 - 进入vasp.5.4.1目录:
cd vasp.5.4.1
- 查看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代码目录
- 设置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目录下存在chain.F,建议先备份chain.F(可选):
- 修改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 \
- 需要将这些文件复制到src目录中:
- 查看所用的编译器:
which ifort
输出类似:/opt/intel/composer_xe_2015.1.133/bin/intel64/ifort
如显示不存在,那么可以类似下面设置下Intel编译器环境(具体路径与你所使用的系统有关):. /opt/intel/composer_xe_2015.1.133/bin/compilervars.sh intel64
- 查看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
- 查看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。 - 采用arch/makefile.include.linux_intel做为模板(在vasp.5.4.1目录下,未考虑CUDA):
cp arch/makefile.include.linux_intel makefile.include
- 修改makefile.include:
必要时修改OBJECTS那,将
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
修改为(假如使用~/local/interfaces/fftw3xf):$(HOME)/local/interfaces/fftw3xf/libfftw3xf_intel.a
其它参数,请见VASP官方说明。
- 为防止以前编译好的.o和.a文件与新修改的编译配置冲突,建议清除以前编译文件:
make veryclean
- 执行编译,可以默认编译或分开编译:
- 默认编译(将编译生成std、gam和ncl版):
make
- 分开编译:
- 编译标准std版:
make std
- 编译gamma-only版:
make gam
- 编译non-collinear版:
make ncl
- 编译标准std版:
编译完成后将在bin目录下生成对应的版本的可执行程序:vasp_gam、vasp_ncl、vasp_std。
- 默认编译(将编译生成std、gam和ncl版):
- 错误处理:
如果有错,请注意看错误信息,然后根据信息进行处理。
