本帖最后由 qmlearner 于 2021-6-1 14:04 编辑
vasp6安装主要参考了以下b站视频:
vtst部分主要参考了以下帖子:
vaspsol部分主要参考了以下帖子: https://mp.weixin.qq.com/s/pWLNZknUvLcYKw5IAlSaZg
编译环境:RedHat 4.8.5-11, x86_64,在$HOME/vasp/目录下进行安装。 1.解压vasp.6.1.0.tar.gz tar xvf vasp.6.1.0.tar.gz
解压vtstcode-xxx.tgz tar xvf vtstcode-xxx.tgz
3.网上有些教程建议先备份src/目录下的chain.F文件, cp src/chain.F src/chain.F-org
4.将vtstcode-xxx/中的文件全部复制到src/目录 cp vtstcode-xxx/* vasp.6.1.0/src
5.修改src/main.F源码,找到第3449行(可以搜索CHAIN_FORCE快速定位) 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)
6.修改编译配置src/.objects,在chain.o前(第93行)添加如下内容(不要忘记换行符‘\’,\后不能有空格):
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.查看编译器
which ifort
输出类似:
~/composer_xe_2015.1.133/bin/intel64/ifort
如果显示不存在,需设置Intel编译器环境(将$ifortpath替换成自己的实际路径)
source $ifortpath/composer_xe_2015.1.133/bin/compilervars.sh intel64
8. 查看Interl MKL环境
echo $MKLROOT
输出类似:
~/composer_xe_2015.1.133/mkl 如果显示不存在,需设置Interl MKL环境(将$mklpath替换成自己的实际路径):
source $mklpath/composer_xe_2015.1.133/mkl/bin/mklvars.sh intel64
9.查看Intel MPI环境
which mpiifort
如果显示不存在,需设置Interl MPI环境(将$mpipath替换成自己的实际路径):
source $mpipath/impi/5.0.2.044/bin64/mpivars.sh intel64
10.查看是否存在$mklpath/composer_xe_2015.1.133/mkl/interfaces/fftw3xf/libfftw3xf_intel.a,
如果不存在,可以在自己目录下编译生成 libfftw3xf_intel.a:
mkdir $HOME/local/interfaces
cp -a $mklpath/composer_xe_2015.1.133/mkl/interfaces/fftw3xf $HOME/local/interfaces
cd $HOME/local/interfaces/fftw3xf
make libintel64
将在此目录下生成 libfftw3xf_intel.a
11. cp arch/makefile.include.linux_intel makefile.include
修改make.incude,将
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o
改为
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o $HOME/local/interfaces/fftw3xf/libfftw3xf_intel.a
12.从以下链接下载solvation.F,
https://github.com/henniggroup/VASPsol/blob/master/src/solvation.F
将solvation.F到src/
13.编辑makefile.include
在CPP_OPTIONS=添加-Dsol_compat \
14.编辑src/mpi.F源码
安装之前我搜了很多帖子,其中有人说vasp6编译vaspsol是会报错,网上有一个相关的帖子
https://mp.weixin.qq.com/s/pWLNZknUvLcYKw5IAlSaZg
按照其中的思路,对照vasp6 src/mpi.F和vasp5 src/mpi.F,将M_sum_s对应部分的注释取消掉
15. make all
网上很多人反应会出现如下错误,但并不影响vasp使用
fortran.c(68): catastrophic error: cannot open source file "cuda_runtime.h"
如想避免此错误,可以分别编译三个版本
make std
make gam
make ncl
安装完成之后会在build/和bin/下出现std,gam,ncl相关内容
16. make test(需要较长时间)
最后结果如下:
———————————————————————————————————————————————————
SUMMARY:
The following tests failed, please check the output file manually:bulk_InP_SOC_G0W0_sym
bulk_InP_SOC_G0W0_sym_RPR bulk_SiO2_LOPTICS bulk_SiO2_LOPTICS_RPR
bulk_SiO2_LPEAD bulk_SiO2_LPEAD_RPR SiC8_GW0R Tl_x Tl_x_RPR Tl_y Tl_y_RPR Tl_z Tl_z_RPR
———————————————————————————————————————————————————
有几个任务失败,看了下输出的ERROR信息,都是让检查OUTCAR,不是编译导致的错误。
———————————————————————————————————————————————————————
WARNING: Number of rows and/or columns in files energy_outcar and energy_outcar.ref disagree. Please check!
Continuing using the smaller number of columns and/or rows.
ERROR: the test yields different results for the forces, please check
———————————————————————————————————————————————————————
用自己以前的任务试跑了下CINEB、没有隐式溶剂时的结构优化,都没有问题。
有一点不确定的地方,就是用隐式水溶剂优化的时候,OSZICAR中并不是一行SOL:,一行DAV:输出的,
而是第一行SOL:,然后连续算若干电子步之后才继续输出SOL:(如图1所示),不知道这样是不是正常?
看有帖子说可以把PeriodicNBO and SSAdNDP、Wannier90、OPTCELL、vtst、vaspsol等全部一起编译,
感觉这很酷,不知道有没有大神实操过?各插件之间会不会有冲突?如果可行的话,个人感觉OPTCELL没有
太大必要一起编译,因为我的理解是优化哪个晶轴,不优化哪个晶轴,在编译的时候通过OPTCELL文件和
constr_cell_relax.F就决定了。比如编译不优化z方向,而只优化x,y方向,那么将来你有任务是想优化x,y,z
三个方向的时候岂不得重新再编译vasp?(不知道理解的对不对,请指正)
|