VTST编译安装
(2022-03-23 10:09:17)
标签:
vaspvtst编译安装 |
分类: vasp |
设置VTST:
下载:wget http://theory.cm.utexas.edu/code/vtstcode.tgz
解压缩:tar xvf vtstcode.tgz
之后会生成vtstcode-171目录,此目录内包含以下文件:bbm.Fbdr_changesbfgs.Fcg.Fchain.Fdimer.Fdynamic.Fdynmat.Ffire.Finstanton.Flanczos.Flbfgs.Fmkbdrpro.plneb.Fopt.Fqm.Fsd.Fvasp-5.3.2-main.patchvasp-5.3.2-mpmd.patchvasp-5.4.1-mpmd.patch
根据官方安装说明http://theory.cm.utexas.edu/vtsttools/installation.html:
1、需要将这些文件复制到vasp5.4.4的src目录中:
因为src目录下存在chain.F,建议先备份chain.F(可选):
cp src/chain.F src/chain.F-org
将vtstcode-171目录下文件复制到src下:cp vtstcode-171/* src/
2、修改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)
3、修改编译配置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 \
注意\后不能有空格。
4、查看所用的编译器:
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
5、修改makefile.include:
必要时修改OBJECTS那,将
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a修改为$(MKLROOT)/lib/intel64其它参数,请见VASP官方说明。
为防止以前编译好的.o和.a文件与新修改的编译配置冲突,建议清除以前编译文件:
make veryclean
执行编译,可以默认编译或分开编译:
默认编译(将编译生成std、gam和ncl版):
make all
分别编译:
编译标准std版:
make std
编译gamma-only版:
make gam
编译non-collinear版:
make ncl
编译完成后将在bin目录下生成对应的版本的可执行程序:vasp_gam、vasp_ncl、vasp_std。