找到
6
篇与
香菜
相关的结果
-
VASP 结构优化 结构优化的过程旨在获得合理的结构,通常指在特定限制下能量较低的构型。这些限制包括结构维度(如二维材料)、晶格条件(如施加应变或衬底影响)、元素分布(如吸附物的空间分布要求)以及对称性(如双层二维材料的堆垛方式)。使用不合理的结构进行后续计算(如体系能量、电子结构和磁态)可能导致显著误差,甚至产生致命错误。 结构优化的相关原理及流程 VASP 通过自洽迭代计算当前结构的电荷密度、能量和原子受力,以判断是否达到了结构优化的收敛标准。如未达到,系统会生成新结构并进行再次自洽计算,直至满足收敛标准或达到最大离子步数(NSW)限制。 结构优化中比较常见的术语: 电子步是指在自洽迭代过程中进行的一次迭代,而离子步是指完成一次自洽计算的过程。 通常,一个离子步会包含多次电子步的迭代。图片 弛豫指的是结构优化,具体表现为晶格弛豫(Lattice Relaxation),可通过 vaspkit 中的 LR 功能进行相关操作。 分步优化是在结构优化过程中,首先使用较低精度的参数组合快速获取一个合理的结构,随后再采用更高精度的参数组合进行进一步优化,直到达到合理的结构。此过程涉及多次结构优化计算。(较为合理的结构与离合理情况较远的结构相对,后者包括未弛豫的间隙原子掺杂、空位原子、表面小分子吸附和手动搭建的新结构等。在构建含缺陷的大体系时,采用分步优化方法能够显著节省计算时间,甚至达到一半以上的节省。) PREC、ENCUT、EDIFF、KPOINTS PREC、ENCUT、EDIFF 和 KPOINTS 四个参数对电子迭代的速度和结果精度具有显著影响,进而影响自洽迭代中各个原子的受力精度。在使用 MS 构建模型后,并利用 MS 脚本或 VESTA 或 VASPKIT 将 CIF 文件转换为 POSCAR 格式。 推荐几个常用的 cif 数据库的网站: https://next-gen.materialsproject.org/ http://www.crystallography.net/ https://www.ccdc.cam.ac.uk/ 结构优化中的参数及设置 NSW=200(粗优化)/300(精优化)(原子迟豫最大步数,当计算在最大步数之内达到收敛时计算自动中断,而最大步数内没有收敛的话结构迟豫将被强制中止(平常计算步数不会超过 100 步,超过 100 步可能是计算的体系出了问题)。同时在每一步原子迟豫内,电子进行自洽计算;每一步内,精确计算原子所受的 H-F 力和应力。); IBRION=2(决定原子如何移动和迟豫,即迟豫计算的方式:-1 表示原子不移动(NSW 为 0 或-1 时,默认取-1);1、2、3 表示以不同的算法优化原子位置。准牛顿方法(IBRION=1)计算速度较快,适合于初始结构与平衡结构(势能面上全局最小值)比较接近的情况,而 CG 方法(IBRION=2)慢一些,找到全局最小的可能性也要大一些); ISIF=2(仅原子优化)/3(原子和晶格都优化)(可以控制迟豫时晶胞的变化情况,例如原胞的形状和体积等,一般选 2、3) EDIFF(电子自洽迭代循环的收敛标准,以总能衡量,默认为 10-4) EDIFFG=-0.05(粗优化)/-0.01(精优化)(原子迟豫收敛标准) NELM=60(允许电子自洽迭代的最大步数,默认 60); NELMIN(电子迭代的最小步数。默认为 2,一般不设置) ENCUT=(1.0-1.3)*ENMAX(平面波截断能,单位 eV,默认值从 POTCAR 中读入,一般为 POTCAR 中 ENMAX 参数值的 1.0 到 1.3 倍) ISPIN=1(不开自旋)/2(开自旋)(确认是否进行自旋极化的计算,默认值 1 表示不进行自旋极化的计算,2 表示进行自旋极化的计算) LREAL=Auto(是否使用实空间投影(real-space projection)来计算某些量(如波函数的哈密顿量矩阵元)默认 LREAL=.FALSE.如果体系原子大于 20 个,可以考虑使用 LREAL=Auto) 结构优化的收敛性分析(经验之谈): 结构优化收敛性受两个主要因素影响: (1)初始结构的合理性 密度泛函理论(DFT)主要计算短程强相互作用,对于初始距离设置如果过远(如超过 4 埃),会导致收敛速度慢甚至产生不合理的计算结果。 设置初始结构时,可以参考键长来进行合理配置。以同时,查阅相关文献和记住常见的键长和典型晶体中原子间距离有助于提高设置合理性。如果不确定,可以先在小规模体系中进行测试,再扩展到更大体系。 (2)弛豫参数的设置 弛豫参数对收敛速度影响很大,这一点在计算工作没有全部铺开时可能不会觉察到有什么不妥,反正就给 NSW 设置个“无穷大”的数,最后总会有结果的。但是,时间是宝贵的,恰当的设置 3 小时就收敛的结果,不恰当的设置可能要一个白天加一个黑夜。如果你赶文章或者赶着毕业,你就知道这意味这什么。 结构优化分电子迭代和离子弛豫两个嵌套的过程。 电子迭代自洽的速度,有四个响很大的因素:初始结构的合理性,k 点密度,是否考虑自旋和高斯展宽(SIGMA); 离子弛豫的收敛速度,有三个很大的影响因素:弛豫方法(IBRION),步长(POTIM)和收敛判据(EDIFFG)。 优化的时候让它自己闷头跑是不对的,经常看看中间过程,根据情况调节优化参数是可以很好的提高优化速度。这个时候,提交两个以上的任务排队是好的方式,一个在调整的时候,下一个可以接着运行,不会因为停下当前任务导致机器空闲。 无论结构优化还是静态自洽,电子步的收敛也常常让新手头痛。如果电子步不能在 40 步内收敛,要么是参数设置的问题,要么是初始模型太糟糕(糟糕的不是一点点)。 静态自洽过程电子步不收敛一般是参数设置有问题。这个时候,改变迭代算法(ALGO),提高高斯展宽(SIGMA 增加),设置自洽延迟(NELMDL)都是不错的方法。对于大体系比较难收敛的话,可以先调节 AMIN,BMIX 跑十多步,得到电荷密度和波函数,再重新计算。实在没办法了,可以先放任它跑 40 步,没有收敛的迹象的话,停下来,得到电荷密度和波函数后重新计算。一般都能在 40 步内收敛。 对于离子弛豫过程,不调节关系也不大。开始两个离子步电子迭代可能要跑满 60 步(默认的),后面就会越来越快了 总的说来,一般入门者,多看手册,多想多理解,多上机实践总结,比较容易提高到一个熟练操作水平。
-
VASP.6.4.2 安装教程 一、intel-2020 编译器安装<可视化桌面安装> tar空格-zxvf parallel_studio_xe_2020_update4_cluster_edition.tgz cd 上述解压后的安装包 ./install_GUI.sh (出现一个界面) 勾选 I accept ,选择 NEXT 勾选 I do NOT consent to the ,选择 NEXT(需要一会反应时间) 继续 NEXT (有一个需要填写序列号的界面)勾选 Choose alternative activation ,选择 NEXT 勾选 activation off* ,选择 NEXT。(出现 Activate offline using a license file 界面)选择 Browse,(需要选择和解压安装包在同一目录下的.lic 文件)<此文件需copy>,选择 NEXT 勾选 customize(查看安装路径)/opt/intel 选择 NEXT 勾选 Install on the current system only 选择 NEXT (不用勾选取消,默认即可)选择 NEXT 选项 install > finish (安装完成) Vi空格~/.bashrc 添加环境变量,根据实际情况修改路径 source /opt/intel/compilers_and_libraries/linux/bin/compilervars.sh intel64 export PATH=/opt/intel/compilers_and_libraries/linux/bin:$PATH export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/opt/intel/compilers_and_libraries/linux/lib/intel64:$LD_LIBRARY_PATH source空格~/.bashrc Which ifort (查看是否有路径,来判断安装是否成功) 二、fftw-3.3.7 安装 解压 tar空格-zxvf fftw-3.3.7.tar.gz 进入解压出来的 fftw-3.3.7 文件夹执行命令 ./configure空格--prefix=/opt/fftw空格--enable-mpi 配置makefile,/opt/的路径要根据实际情况填写。命令中一定要加 --enable-mpi 否则在安装好的 lib 文件夹内无法生成此次编译VASP 所必需的 libfftw3_mpi.a 文件 执行命令一 make ,随后执行命令二 make install 安装完成 vi空格~/.bashrc 配置如下,路径根据实际情况填写 #fftw export PATH=/opt/fftw/bin:$PATH export LD_LIBRARY_PATH=/opt/fftw/lib:$LD_LIBRARY_PATH source空格~/.bashrc 执行命令 fftw-wisdom 查看是否安装成功 三、VASP.6.4.2 安装 解压 tar空格-zxvf vasp.6.4.2.tgz cd 进入vasp.6.4.2/arch,将makefile.include.intel 复制到vasp.6.4.2文件夹下并修改文件名为makefile.include。vi空格makefile.include 查看文件内容,认真核对尤其是路径,6.4.2版本直接复制过去就行了,记得改路径。 # Precompiler options CPP_OPTIONS= -DHOST=\"LinuxIFC\"\ -DMPI -DMPI_BLOCK=8000 -Duse_collective \ -DscaLAPACK \ -DCACHE_SIZE=4000 \ -Davoidalloc \ -Dvasp6 \ -Duse_bse_te \ -Dtbdyn \ -Dfock_dblbuf CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS) FC = mpiifort FCL = mpiifort -mkl=sequential FREE = -free -names lowercase FFLAGS = -assume byterecl -w -heap-arrays 64 OFLAG = -O2 OFLAG_IN = $(OFLAG) DEBUG = -O0 MKLROOT = /opt/intel/compilers_and_libraries/linux/mkl/ MKL_PATH = $(MKLROOT)/lib/intel64 BLAS = LAPACK = BLACS = -lmkl_blacs_intelmpi_lp64 SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS) OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o INCS = -I/opt/fftw/include LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS) OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o OBJECTS_O2 += fft3dlib.o # For what used to be vasp.5.lib CPP_LIB = $(CPP) FC_LIB = $(FC) CC_LIB = icc CFLAGS_LIB = -O FFLAGS_LIB = -O1 FREE_LIB = $(FREE) OBJECTS_LIB= linpack_double.o getshmem.o # For the parser library CXX_PARS = icpc LLIBS += -lstdc++ # Normally no need to change this SRCDIR = ../../src BINDIR = ../../bin #================================================ # GPU Stuff CPP_GPU = -DCUDA_GPU -DRPROMU_CPROJ_OVERLAP -DUSE_PINNED_MEMORY -DCUFFT_MIN=28 -UscaLAPACK -Ufock_dblbuf OBJECTS_GPU= fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d_gpu.o fftmpiw_gpu.o CC = icc CXX = icpc CFLAGS = -fPIC -DADD_ -Wall -qopenmp -DMAGMA_WITH_MKL -DMAGMA_SETAFFINITY -DGPUSHMEM=300 -DHAVE_CUBLAS CUDA_ROOT ?= /usr/local/cuda/ NVCC := $(CUDA_ROOT)/bin/nvcc -ccbin=icc CUDA_LIB := -L$(CUDA_ROOT)/lib64 -lnvToolsExt -lcudart -lcuda -lcufft -lcublas GENCODE_ARCH := -gencode=arch=compute_30,code=\"sm_30,compute_30\" \ -gencode=arch=compute_35,code=\"sm_35,compute_35\" \ -gencode=arch=compute_60,code=\"sm_60,compute_60\" \ -gencode=arch=compute_70,code=\"sm_70,compute_70\" \ -gencode=arch=compute_72,code=\"sm_72,compute_72\" MPI_INC = $(I_MPI_ROOT)/include64/ 修改完 makefile.include 文件之后,执行 make all 命令,大概30-60分钟左右完成编译,在 bin 文件夹中会生成三个可执行文件<如下> vasp_gam #gamma版本的vasp vasp_std #标准版本的vasp vasp_ncl #非线性版本的vasp 至此,vasp 的编译工作全部完成。 vi空格~/.bashrc 添加如下环境变量 #vasp export PATH=$PATH:/opt/software/vasp.6.4.2/bin module use ~/apprepo/modules 执行 source空格~/.bashrc使之生效 注意事项 Intel-2020 编译器安装好之后,可将 Icc 、Ifort 编译器的环境变量删除 Intel-2020 编译器安装好之后,可将 openmpi 的环境变量删除 最后保留 Intel、fftw、vasp 三个的环境变量即可
-
VASP 常用插件安装 一、Vaspsol安装 将 VASPsol-master/src/solvation.F 复制到vasp.6.4.2/src 路径下 在vasp.6.4.2 文件夹下 vi makefile.include 在CPP_OPTIONS后面添加 -Dsol_compat <注意这里使用的是空格键> cd 进入 vasp.6.4.2 文件夹执行如下命令 patch src/pot.F < /opt/software/VASPsol-master/src/patches/pbz_patch_610 make all 二、vtstcode安装 解压 tar -xzvf vtstcode-199.tgz cd vtstcode-199 ls #可以看到有五个文件 根据vasp下载安装的版本进入相应的文件,我们是vasp.6.4.2,于是进入vtstcode6.4文件 图片 将 vtstcode6.4文件夹内的所有文件复制到vasp安装包路径的src文件中(以实际安装路径为准) 执行命令:cp -rf vtstcode6.4/* ../vasp.6.4.2/src 修改 vasp.6.4.2/src 文件下的main.F、.objects、makefile 文件内容 进入 vasp.6.4.2/src vi main.F 使用 / 进行查找,将下述两段进行修改 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)IF (LCHAIN) CALL chain_init( T_INFO, IO) 改为 CALL chain_init( T_INFO, IO)vi .objects 使用 / 进行查找 chain.o 在这一行上面加如下内容<注意这里使用的是Tab> 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 \图片 vi makefile 在 parser 后面添加 pyamff_fortran 一项 图片 修改makefile.include 在CPP_OPTIONS后面添加 -DRPROMU_DGEMV \ 和 -DRACCMU_DGEMV <注意这里使用的是Tab键> make 三、vaspkit安装 VASPKIT下载,下载链接:https://sourceforge.net/projects/vaspkit/files/Binaries/ 上传至服务器 software 目录下 解压 tar空格-zxvf vaspkit.1.3.5.linux.x64.tar.gz 添加环境变量,执行命令 vi ~/.bashrc #vaspkit export PATH=~/opt/software/vaspkit.1.3.5/bin:${PATH} 进入已经解压的vaspkit文件夹,输入命令 cp -f how_to_set_environment_variables ~/.vaspkit 编辑.vaspkit文件 vi ~/.vaspkit 你会看到 # cp how_to_set_environment_variable ~/.vaspkit and modify the ~/.vaspkit file based on your settings! VASP5 .TRUE. # .TRUE. or .FALSE.; Set .FALSE. if you are using vasp.4.x LDA_PATH ~/POTCAR/LDA # Path of LDA potential. PBE_PATH ~/POTCAR/PBE # Path of PBE potential. GGA_PATH ~/POTCAR/GGA # Path of PW91 potential. POTCAR_TYPE PBE # PBE, PW91 or LDA; Set PBE if you want to make PBE-POTCAR file GW_POTCAR .FALSE. # .TRUE. or .FALSE.; For example, H_GW, O_GW will be chose when POTCAR_GW = .TRUE. RECOMMENDED_POTCAR .TRUE. # .TRUE. or .FALSE.; The recommended PAW potential will be chose when RECOMMENDED_POTCAR = .TRUE. SET_FERMI_ENERGY_ZERO .TRUE. # .TRUE. or .FALSE.; The Fermi Energy will be set to zero eV when SET_FERMI_ENERGY_ZERO = .TRUE. MINI_INCAR .FALSE. # .TRUE. or .FALSE.; A simplified INCAR will be written when MINI_INCAR = .TRUE. USER_DEFINED_INCAR .FALSE. # .TRUE. or .FALSE.; whether to use embedded INCAR templates or user defined INCAR templates WRITE_SELECTIVE_DYNAMICS .FALSE. # .TRUE. or .FALSE.; whether the selective dymanics set will be forced to write when SET_SELECTIVE_DYNAMICS_MODE = .FALSE. PYTHON_BIN ~/anaconda3/bin/python3 # Python executable program with its installation path. I recommend you install anaconda package for Python data science PLOT_MATPLOTLIB .FALSE. # .TRUE. or .FALSE.; Set .TRUE. if you want to generate Graphs. (Matplotlib and Numpy packages MUST be embedded in Python) VASPKIT_UTILITIES_PATH ~/vaspkit/utilities # IF ADVANCED_USER is .TRUE., set VASPKIT_UTILITIES_PATH like ~/vaspkit.0.72/utilities in order to use scripts in it. ADVANCED_USER .TRUE. # .TRUE. or .FALSE.; Please fill in your settings in the block 'USER_DEFINED' if you want vaspkit to integrate your own scripts in the 'UTILITIES' file. SET_INCAR_WRITE_MODE OVERRIDE # OVERRIDE, APPEND, BACK-UP-OLD,BACK-UP-NEW; "Customize INCAR File" whether to override existing INCAR/appending existing INCAR/backup existing INCAR to INCAR.old && write into INCAR/write into INCAR.new PHS_CORRECTION .FALSE. # .TRUE. or .FALSE.; whether to make PHS correction during linear optical calculations. More details on this correction are given in Comput. Mater. Sci. 172 (2020) 109315. # Reset the default values of variables in here SYMPREC 1E-5 # Distance tolerance in Cartesian coordinates to find crystal symmetry (default value: 1E-5) EMIN -20.0 # Minimum energy for evaluation of DOS (default value: -20.0 eV) EMAX 20.0 # Maximum energy for evaluation of DOS (default value: 20.0 eV) NEDOS 2001 # Number of grid points in DOS (default value: 2001) GAMMA_CENTERED .TRUE. # .TRUE. or .FALSE.; (default value: .TRUE.) VACUUM_THICKNESS 15.0 # The thickness of vacuum to build slab or 2D materials (default value: 10 angstrom) CENTER_SLAB .TRUE. # Center the slab in the z direction; (default value: .TRUE.)在此文件中您需要修改的是2~5行,判断VASP版本是不是5开头,将存放LDA、PBE、GGA的文件夹路径覆盖到默认路径上(如果计算中只使用PBE,可以只修改PBE的路径)。 设置自动更新 进入已经解压好的vaspkit.1.3.5文件夹,有一个setup.sh,在此文件文件夹执行 source setup.sh source ~/.bashrc 检查,输入 vaspkit 得到下面结果则安装成功。 图片