使用VASP的个人经验手册
侯柱锋
厦门大学物理系2004届博士 E-mail: zhufhou@yahoo.com
2004/06/22
本手册纯属个人使用VASP后的心得和经验总结,版权属于本手册的作者及厦门大学物理系计算物理实验室(Group leader: 朱梓忠教授)。未经许可,不准在网上传阅。文中提到的一些小程序,可以提供使用。在参考的过程,如遇到不清楚或含糊的地方,可以参考VASP的英文manual或email给我。如认为本手册某些地方需要更正或修改的,请email给我。当在使用VASP的过程中遇到问题,也可以email给我,大家一起学习VASP的使用,挖掘和掌握VASP强大的功能。本手册参考了VASP的英文manual、G.Kresse的报告以及从internet网上收集的资料。
本手册大致有以下几个内容: A
程序的编译
“?AVASP的主要输入文件 OAVASP的主要输出文件 lA参数设置与选择的技巧 A
材料基态性质的计算方法和步骤
ZA材料磁性性质的计算 μA表面体系的计算 ”aAtools中小程序的说明 A
半导体中的缺陷和杂质问题(暂未完成)
十、如何进行分子动力学模拟(暂未完成)
十一、强关联体系的计算(LDA+U或GGA+U)(暂未完成)
一、程序的编译
声明:本实验室(厦门大学物理系计算物理实验室, Group leader: 朱梓忠教授)购买的是VASP4.4.5版本,所属本实验室的成员以及经过朱梓忠教授同意使用的合作者必须遵守该软件的使用协议,注意VASP软件的版权问题,严禁私下发布或传播本实验室购买的VASP源代码和赝势库以及编译VASP得到的可执行代码。
1
下面以编译VASP4.4.5版本为例,编译更新的版本VASP4.5.5、VASP4.6和VASP5.0(即将发布)的步骤与此相同。 1、 所需文件和程序
VASP源代码:vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz 数学库:LAPACK和BLAS (http://www.netlib.org/), 或mkl(配合intel的fotran编译器用), 或ATLAS (http://math-atlas.sourceforge.net/)
或Lib GOTO (http://www.cs.utexas.edu/users/flame/goto/)
Fortran编译器:PGI fortran 至少4.0以上版本(http://www.pgroup.com/),
或Intel的 ifc (8.0以上版本是ifort, http://www.intel.com/software/products/compilers/flin/),前者可以从网站上下载到15天的试用版本,后者可以从网站下载到免费的版本。或者在国内的个人ftp服务器上搜索它们的破解版本。 本实验室的都有这些软件的备份。
2、下面采用PGI fortan编译器pgf90、ATLAS数学库对VASP4.4.5进行编译
这里假定已经安装好了fortran编译器,所有文件都放在/home/houzf/VASP_SRC目录下,机器的操作系统是Linux: Redhat9.0。
a) 从http://math-atlas.sourceforge.net/下载atlas3.6.0_Linux_P4SSE2.tar.gz,并用如下命令解压:tar xzvf atlas3.6.0_Linux_P4SSE2.tar.gz
解压后得到一个目录Linux_P4SSE2,在此目录下有个lib子目录,该lib子目录中的文件为libatlas.a, libcblas.a, libf77blas.a, liblapack.a, 这些就是编译vasp时所需要的数学库文件之一。 b) 用如下命令解压vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz: tar xzvf vasp.4.4.5.tar.gz tar xzvf vasp.4.lib.tar.gz
解压后分别得到目录vasp.4.4和vasp.4.lib,目录vasp.4.4中文件是vasp的主要源代码,vasp.4.lib是编译vasp时需要的一些特定的数学库程序,在这两个目录中都有编译时所用的makefile文件,针对机器和fortran编译器,选择相应的makefile。
c) 进入vasp.4.lib目录,选择makefile.linux_pg,并把它拷贝成makefile,然后键入make命令开始编译。整个命令如下: cd vasp.4.lib
cp makefile.linux_pg makefile make
编译成功后,得到libdmy.a文件。
d) 退出vasp.4.lib目录,进入vasp.4.4目录,选择makefile.linux_pg,并把它拷贝成makefile,编辑makefile文件,通过修改LIB变量的赋值而采用基于ATLAS的数学库文件,修改的地
2
方和方法是:
在第87和88行前加上#,把这两行注释掉,然后去掉第91,92和93行前的#。 修改前和后的内容为分别为:
LIB = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \\ ../vasp.4.lib/lapack_double.o -L/usr/local/lib /usr/local/lib/libblas.a #
# the following lines should allow you to link to atlas based blas #LIB = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \\ # ../vasp.4.lib/lapack_double.o -L/usr/local/lib \\
# -L$(HOME)/archives/BLAS_OPT/ATLAS/lib/Linux_ATHLONTB/ -lf77blas –latlas #LIB = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \\ # ../vasp.4.lib/lapack_double.o -L/usr/local/lib /usr/local/lib/libblas.a #
# the following lines should allow you to link to atlas based blas LIB = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \\ ../vasp.4.lib/lapack_double.o -L/usr/local/lib \\ -L../Linux_P4SSE2/lib/ -lf77blas -latlas 修改后保存makefile文件,键入make命令开始编译vasp。整个命令为: cd .. cd vasp.4.4
cp makefile.linux_pg makefile 编辑修改makefile文件 make
编译成功后,就可以得到VASP的可执行文件vasp。
e) 以root帐号登录机器,把成功编译VASP后得到的vasp放到/bin目录下,则任何一个普通用户都可以使用vasp。此时vasp可以当成于一个linux的命令来使用了,不再需要把vasp拷贝到当前的计算目录下。
二、VASP的主要输入文件
VASP的主要输入文件有INCAR, POTCAR, POSCAR和KPOINTS。INCAR文件控制了vasp进行何种性质的计算,POTCAR文件包含了体系中各类元素的赝势,POSCAR文件描述了所计算的体系的晶胞参数(包括基矢或平移矢量,晶格常数,原子位置等信息),KPOINTS描述了不可约布里渊区中k点取样,即k点设置。
1、INCAR文件
此文件控制vasp进行何种性质的计算,以及设置了计算方法中一些重要的参数。其中的关
3
键词可以分为如下几类:
对所计算的体系进行注释:SYSTEM
定义如何输入或构造初始的电荷密度和波函数:ISTART, ICHARG, INIWAV 定义价电子部分的如何驰豫:
平面波切断动能和缀加电荷时的切断值:ENCUT, ENAUG 电子部分优化的方法:ALGO, IALGO, LDIAG
电荷密度混合的方法:IMIX, AMIX, AMIN, BMIX, AMIX_MAG, BMIX_MAG, WC, INIMIX, MIXPRE, MAXMIX
自洽迭代步数和收敛标准:NELM, NELMIN, NELMDL, EDIFF 定义离子芯部分的如何驰豫:
离子如何移动以及步长和步数:IBRION, NFREE, POTIM, NSW
分子动力学相关参数:SMASS, TEBEG, TEEND, POMASS,NBLOCK, KBLOCK, PSTRESS
离子驰豫收敛标准:EDIFFG 定义态密度积分的方法和参数:
smearing方法和参数:ISMEAR, SIGMA
计算态密度时能量范围和点数:EMIN, EMAX, NEDOS 计算分波态密度的参数:RWIGS, LORBIT 其他:
计算精度控制:PREC
磁性计算:ISPIN, MAGMOM, NUPDOWN 交换关联函数:GGA, VOSKOWN 计算ELF和总的局域势:LELF, LVTOT 结构优化参数:ISIF
一般要设置的关键词:SYSTEM, ENCUT, ISTART, ICHARG, PREC, ISMEAR, SIGMA。针对计算不同的性质,再另外增加相应的关键词。 例子: General:
SYSTEM = fcc Si !自洽计算fcc结构的Si ISTART = 0 !开始新的计算
ICHARG = 2 !从原子的电荷密度重叠构造初始电荷密度 ENCUT = 240 !平面波切断动能
ISMEAR = 0; SIGMA = 0.1 !采用Gaussian smearing方法,展宽为0.1eV PREC = Accurate !计算精度
4
2. POTCAR文件
赝势文件,最重要的输入文件之一。赝势库中赝势文件可以进行如下分类: 根据方法不同有Ultra-soft赝势(USPP)和投影缀加波的赝势(PAW) 根据交换关联函数的不同有LDA和GGA(又可以再分为PW91和PBE) 根据处理了半芯态有A, A_sv和A_pv的不同 根据ENMAX的大小有A, A_s和A_h的不同 如何准备?
如果你拿到的赝势文件的格式用相应的命令把各元素的赝势合并到一个文件POTCAR中:
a) 是以Z为扩展名的文件,用命令: zcat POTCAR.Z >>aa b) 是解压后的文件POTCAR,用命令:cat POTCAR >>aa
(当有多类原子时,按POSCAR文件各类原子的顺序,依次使用上面的命令,把相应原子的POTCAR.Z合并到aa文件中)
c) 然后把aa文件移到到要计算的目录中(mv aa 计算的目录/POTCAR).
注释:在处理磁性材料,所计算的体系含有碱金属、碱土金属、周期表左边的3d过渡元素、镧系和锕系元素时,强烈推荐用PAW势,计算精度有提高。在采用超越赝势(USPP)时,使用PW91的GGA时,强烈要求把VOSKOWN = 1给选上。在采用PAW势时,一般推荐用LDA和PBE的。
下面给出PAW对不同元素,采用何种类型的PAW以及ENCUT值至少要取多少,所列的表格,供选择赝势时作为参考(下面几个表格中,红色表示是一般情况下首选用这种类型的PAW势,表格中数字表示的是切断动能值):
B_h 700 B 318 B_s 250 Al 240 Al_h 295 Ga 134 Ga_d 282 Ga_h 404 In 95 In_d 239 Tl 95
C_h 700 N_h 700O_h 700C 400 C_s 273
N 400N_s 250
O 400
F_h 700 F 400
O_s 250 F_s 250 S 280 Cl 280 S_h 402 Cl_h 409 Se 211
Br 216
Si 245 P 270Si_h 380 P_h 390Ge 173 Ge_d 287 Ge_h 410 Sn 103Sn_d 241Pb 98
Sb 172
As 208
Te 174 I 175
Bi 105
5