Vasp编译安装教程二-插件篇
VTST
1.拷贝源码
在vtst官网下载vtst-code源码包
https://theory.cm.utexas.edu/vtsttools/download.html
解压
tar xzf vtstcode-197.tgz
复制对应vasp版本的vtst到src里
cp vtstcode-197/vtstcode6.3/* src/ -rf
2.修改 main.F
修改src下main.F文件,vim/vi 打开文件 关键词CHAIN_FORCE定位到3519行
将
CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &
LATT_CUR%A,LATT_CUR%B,IO%IU6)
修改为(添加TSIF)
CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &
TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6)
vasp>=6.2 还需要修改
IF (LCHAIN) CALL chain_init( T_INFO, IO)
修改为
CALL chain_init( T_INFO, IO)
3.修改 .objects
修改src下.objects文件(注意是个隐藏文件)
定位到chain.o这一行,再它前面添加下面信息,注意斜杠后面没有空格,制表符用tab打出来
vasp5 和 6.1 添加的内容
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
vasp6.3
bfgs.o dynmat.o instanton.o lbfgs.o sd.o cg.o dimer.o bbm.o \
fire.o lanczos.o neb.o qm.o \
pyamff_fortran/*.o ml_pyamff.o \
opt.o \
对于vasp6.3还需要修改一处,src/makefile 文件中找到LIB 和 dependencies 对应的行 分别改成如下
LIB= lib parser pyamff_fortran
dependencies: sources libs
4.VTSTSCRIPTS
VTST下还有一些vtstscripts脚本,它的安装很简单
下载好后解压,将其路径添加到系统PATH环境变量里
例如解压后路径为 /home/bit/vasp.6.3.0/vtstscripts-1033
添加/etc/profile或~/.bashrc最后一行,重新登陆终端或source环境变量配置文件生效
export PATH=/home/bit/vasp.6.3.0/vtstscripts-1033:$PATH
VASPSOL
vasp隐式溶剂化模型,该模型描述了静电、空化和色散对溶质和溶剂之间相互作用的影响,提供了一种计算上有效的方法来计算溶剂化对分子和晶体表面以及反应势垒的影响
1.下载源码
git clone https://github.com/henniggroup/VASPsol.git
国内网慢可以试试加速器下载
git clone https://ghproxy.com/https://github.com/henniggroup/VASPsol.git
将solvation.F拷贝到vasp的src目录下
cp VASPsol/src/solvation.F src/ -rf
2.打补丁
VASP 5.2.12 / 5.3.3 / 5.3.5
(注意打补丁符号是 <)
cd src
patch -p1 < <path to the interface patch file>
注意这3个版本的补丁不在网上提供,需要联系 [email protected]
VASP >= 5.4.1
patch src/pot.F < <path to the pbz_patch_541 patch file>
VASP >= 6.1.0
patch -p0 < <path to the pbz_patch_610 patch file>
vasp 6.3.0
下载第三方补丁并解压
wget https://github.com/henniggroup/VASPsol/files/8495230/VASPsol_VASP630.zip && unzip VASPsol_VASP630.zip
然后复制到src里,再进行打补丁
patch -p0 < VASPsol_VASP630.patch
3.修改makefile.include
vasp>=5.4.4 , CPP_OPTIONS选项里添加 -Dsol_compat
VASP OPT 固定基矢优化结构
1.旧版 应力张量法
重写vasp源码下 src/constr_cell_relax.F 文件
!-----------------------------------------------------------------------
!
! At present, VASP does not allow to relax the cellshape selectively
! i.e. for instance only cell relaxation in x direction.
! To be more precisse, this behaviour can not be achived via the INCAR
! or POSCAR file.
! However, it is possible to set selected components of the stress tensor
! to zero.
! The most conveninent position to do this is the routines
! CONSTR_CELL_RELAX (constraint cell relaxation).
! FCELL contains the forces on the basis vectors.
! These forces are used to modify the basis vectors according
! to the following equations:
!
! A_OLD(1:3,1:3)=A(1:3,1:3) ! F90 style
! DO J=1,3
! DO I=1,3
! DO K=1,3
! A(I,J)=A(I,J) + FCELL(I,K)*A_OLD(K,J)*STEP_SIZE
! ENDDO
! ENDDO
! ENDDO
! where A holds the basis vectors (in cartesian coordinates).
!
!-----------------------------------------------------------------------
SUBROUTINE CONSTR_CELL_RELAX(FCELL)
USE prec
REAL(q) FCELL(3,3)
! just one simple example
! relaxation in x directions only
! SAVE=FCELL(1,1)
! FCELL=0 ! F90 style: set the whole array to zero
! FCELL(1,1)=SAVE
! relaxation in z direction only
! SAVE=FCELL(3,3)
! FCELL=0 ! F90 style: set the whole array to zero
! FCELL(3,3)=SAVE
LOGICAL FILFLG
INTEGER ICELL(3,3)
INQUIRE(FILE='OPTCELL',EXIST=FILFLG)
IF (FILFLG) THEN
OPEN(67,FILE='OPTCELL',FORM='FORMATTED',STATUS='OLD')
DO J=1,3
READ(67,"(3I1)") (ICELL(I,J),I=1,3)
ENDDO
CLOSE(67)
DO J=1,3
DO I=1,3
IF (ICELL(I,J)==0) FCELL(I,J)=0.0
ENDDO
ENDDO
ENDIF
RETURN
END SUBROUTINE
参考 https://blog.shishiruqi.com/2019/05/05/constr/
2.新版
下载源码
git clone https://github.com/Chengcheng-Xiao/VASP_OPT_AXIS.git
国内镜像加速可用
git clone https://ghproxy.com/https://github.com/Chengcheng-Xiao/VASP_OPT_AXIS.git
仅固定对角线项法
将stress_relax.patch文件拷贝到 VASP 发行版的根目录中,运行命令
patch -p0 < stress_relax.patch
此补丁让 VASP 读取在每个 SCF 循环之后调用的文件OPTCELL,并使用其中的信息来确定要修复的对角线应力分量。
OPTCELL文件格式
xx yy zz
例如:
1 1 0
将修复zz应力张量的分量。
请注意,对于此补丁,我们只能修复对角线应力张量元素,因此它更适合正交晶胞或至少与其他晶格矢量垂直的晶格矢量。
另请注意,ISIF=3晶格弛豫需要 。
固定特定的应力张量元素法
将stress_relax_finner.patch文件拷贝到 VASP 发行版的根目录,运行命令
patch -p0 < stress_relax_finner.patch
这个补丁让 VASPIOPTCELL直接从INCAR.
IOPTCELL格式:
IOPTCELL = xx yx zx xy yy zy xz yz zz
例如:
IOPTCELL = 1 1 0 1 1 0 0 0 0
将放松应力张量的xx、xy 、yx、 yy分量,同时保持其他分量固定(为零)
点阵法
警告:此方法仅适用于IBRION=2并可能导致数值不稳定性
该补丁可以直接固定格子。
这是通过在共轭梯度步骤的每次几何更新之后重新分配晶格元素的原始值来实现的。(修改于dyna.F)
此外,修改应力张量以减少直接固定引入的不稳定性。(修改于constr_cell_relax.F)。
要使用此方法:
将cell_relax.patch文件拷贝到 VASP 发行版的根目录中。并输入:
patch -p0 < cell_relax.patch
这个补丁让 VASPIOPTCELL直接从INCAR.
IOPTCELL格式:
IOPTCELL = xx xy xz yx yy yz zx zy zz
例如:
IOPTCELL = 1 1 0 1 1 0 0 0 0
将放松点阵矩阵的xx、xy、yx、yy分量,同时保持其他分量固定它还将修复应力张量的xz、yz、zx、zy 、zz
VASPKIT
建议使用conda创建虚拟环境再安装vaspkit
1.conda安装教程
这里使用mini版的conda (清华源)
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
安装
bash Miniconda3-latest-Linux-x86_64.sh
1.Please, press ENTER to continue
回车继续
2.按下q跳过产品介绍
3.Do you accept the license terms? [yes|no] [no] »> yes
输入yes 接受条款 回车继续
4.Miniconda3 will now be installed into this location: /home/bit/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/bit/miniconda3] »>
选择安装目录,回车就用上面给的默认的,也可以输入路径回车将会安装到指定目录中
4.Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no] [no] »> yes
初始化 输入yes 回车
重新登陆终端,创建一个虚拟环境,这里python用了3.6版本,虚拟环境的名字叫vasp
conda create -n vasp python=3.6
激活环境
conda activate vasp
如果觉得创建虚拟环境慢,可以添加加速源 编辑 ~/.condarc
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
运行 conda clean -i 清除索引缓存
2.安装依赖
pip install numpy scipy matplotlib
3.安装vaspkist
下载源码包 https://sourceforge.net/projects/vaspkit/files/Binaries/
wget https://gigenet.dl.sourceforge.net/project/vaspkit/Binaries/vaspkit.1.4.1.linux.x64.tar.gz
解压
tar xzf vaspkit.1.4.1.linux.x64.tar.gz
进入目录执行安装脚本
cd vaspkit.1.4.1/
./setup.sh
4.配置vaspkit
编辑~/.vaspkit
修改下面几项为你的赝势文件和python可执行文件的正确路径
LDA_PATH = ~/POTCAR/LDA # Path of LDA potential
PBE_PATH = ~/POTCAR/PBE # Path of PBE potential
GGA_PATH = ~/POTCAR/GGA # Path of PW91 potential
PYTHON_BIN = ~/anaconda3/bin/python3 # Python executable program with its installation path. Recommend Anaconda package
重新登陆终端vaspkist正常可用
phonopy
安装
在上面的vaspkit的vasp虚拟环境下继续
pip install phonopy
验证
git clone https://github.com/phonopy/phonopy.git
进入Si算例目录
cd phonopy/example/Si/
执行
phonopy -f vasprun.xml
输出
_
_ __ | |__ ___ _ __ ___ _ __ _ _
| '_ \| '_ \ / _ \| '_ \ / _ \ | '_ \| | | |
| |_) | | | | (_) | | | | (_) || |_) | |_| |
| .__/|_| |_|\___/|_| |_|\___(_) .__/ \__, |
|_| |_| |___/
2.12.0
Python version 3.6.13
Spglib version 2.0.2
Displacements were read from "phonopy_disp.yaml".
counter (file index): 1
"FORCE_SETS" has been created.
_
___ _ __ __| |
/ _ \ '_ \ / _` |
| __/ | | | (_| |
\___|_| |_|\__,_|
ase
ASE是用Python编程语言编写的原子模拟环境,旨在设置,引导和 分析原子模拟
安装,同样使用刚才创建的conda虚拟环境
然后安装依赖
pip install numpy scipy matplotlib flask pytest pytest-mock pytest-xdist spglib
安装ase
pip install ase