VASP 5.4.1+VTST编译安装 |
2017-03-30 |
原文: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权限,普通用户即可安装。
- 解压缩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/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 \ 注意\后不能有空格。
- 查看所用的编译器:
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
编译完成后将在bin目录下生成对应的版本的可执行程序:vasp_gam、vasp_ncl、vasp_std。
- 错误处理:
如果有错,请注意看错误信息,然后根据信息进行处理。
| |