VASP计算前的各种测试

合集下载

VASP测试报告

VASP测试报告

VASP常规计算测试报告黄孙超(897091619@)PhD of UOW, Australia以下只是测试内容不能保证正确可靠一、手动晶格常数优化体系为FCC的硅,具体参数设置如下:INCAR文件:System= fcc si #此行(第一行)为注释行,它的值对VASP计算没有影响。

ISTART=0; ICHARG=2 #这两个参数的作用类似,因此放在同一行。

ISTART=0和ICHARG=2表示开启一个新任务。

ENCUT=240 #截断能的大小,一般设置为1.3倍ENMAX,此处约等于ENMAX。

ENMAX的值可由命名grep ENMAX POTCAR获得。

ISMEAR=0; SIGMA=0.1 !注意:该颜色(蓝色)字体表示某文件的内容,黑色字体为注释字体不要写到文件中,如INCAR文件的第一行只是System=fcc siKPOINTS文件:K-POINTSM #产生KPOINTS方法,非六角结构建议用Monkhorst,六角结构用Gamma,VASP只读取第一个字母,所以只写M就行。

11 11 110 0 0POTCAR 文件从势函数库中获得。

POSCAR由脚本控制文loop.sh件产生,脚本的内容如下:#! /bin/bashrm eosfit.txt #删除以前存在的eosfit.txt 文件rm WAVECARfor i in 3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2 4.3; docat >POSCAR <<!fcc:$i0.5 0.5 0.00.0 0.5 0.50.5 0.0 0.51cartesian0 0 0!mpirun -n 8 vasp-5.3 #采用mpi命令运行VASP程序,根据自己的情况修改此行,只要让VASP运行就行。

E=`grep "entropy=" OUTCAR | tail -1 | awk '{printf "%12.6f\n", $4}'` #从OUTCAR文件中读取不包含熵的自由能,并赋给E。

VASP表面

VASP表面

Next: 采用VASP如何计算晶体的弹性常数 Up: VASP计算实例 Previous: 用VASP 计算Pd金属的晶格常数 Contents用VASP 计算表面能做表面计算时,第一步我们需要测试K 点的收敛性。

通常,在垂直表面方向用1个K 点就可以了,在平行表面方向,可以用和体材料类似的K 点密度。

其次,我们要测试真空厚度(vacuum thickness)的收敛性。

我们构造完一个slab 后,将真空厚度逐渐从增加到,体系的总能量改变不超过10meV 的时候,可以初步认为真空厚度达到标准。

以下是一个3层的(fcc) Pd slab 的能量随着真空厚度的变化。

其INCAR 文件如下:SYSTEM = undeformed fcc Pd (111) surface calculation Startparameter for this run: PREC = AccurateISTART = 0 job : 0-new 1-cont 2-samecut ICHARG = 2 charge: 1-file 2-atom 10-const ISPIN = 1 spin polarized calculation?Electronic Relaxation 1NELM = 90; NELMIN= 8; # of ELM steps EDIFF = 0.1E-03 stopping-criterion for ELM LREAL = .FALSE. real-space projection NBANDS = 40Ionic relaxationEDIFFG = 0.1E-2 stopping-criterion for IOM NSW = 0 number of steps for IOMIBRION = 2 ionic relax: 0-MD 1-quasi-New 2-CG ISIF = 2 stress and relaxationPOTIM = 0.10 time-step for ionic-motion TEIN = 0.0 initial temperatureTEBEG = 0.0; TEEND = 0.0 temperature during runDOS related values:ISMEAR = 1 ; SIGMA = 0.20 broadening in eV -4-tet -1-fermi 0-gausElectronic relaxation 2 (details)Write flagsLWAVE = F write WAVECARLCHARG = F write CHGCARLVTOT = .TRUE.其中因为Pd是金属,ISMEAR设置为method of Methfessel-Paxton。

VASP(计算前的各种测试)

VASP(计算前的各种测试)

(计算前的)验证一、检验赝势的好坏:(一)方法:对单个原子进行计算;(二)要求:1、对称性和自旋极化均采用默认值;2、ENCUT要足够大;3、原胞的大小要足够大,一般设置为15 Å足矣,对某些元素还可以取得更小一些。

(三)以计算单个Fe原子为例:1、INCAR文件:SYSTEM = Fe atomENCUT = 450.00 eVNELMDL = 5 ! make five delays till charge mixing,详细意义见注释一ISMEAR = 0SIGMA=0.12、POSCAR文件:atom15.001.00 0.00 0.000.00 1.00 0.000.00 0.00 1.001Direct0 0 03、KPOINTS文件:(详细解释见注释二。

)AutomaticGamma1 1 10 0 04、POTCAR文件:(略)注释一:关键词“NELMDL”:A)此关键词的用途:指定计算开始时电子非自洽迭代的步数(即NELMDL gives the number of non-selfconsistent steps at the beginning),目的是make calculations faster。

“非自洽”指的是保持charge density 不变,由于Charge density is used to set up the Hamiltonian, 所以“非自洽”也指保持初始的哈密顿量不变。

B)默认值(default value):NELMDL = -5 (当ISTART=0, INIWA V=1, and IALGO=8时)NELMDL = -12 (当ISTART=0, INIWA V=1, and IALGO=48时)NELMDL = 0 (其他情况下)NELMDL might be positive or negative.A positive number means that a delay is applied after each ionicmovement -- in general not a convenient option. (在每次核运动之后)A negative value results in a delay only for the start-configuration. (只在第一步核运动之前)C)关键词“NELMDL”为什么可以减少计算所需的时间?Charge density is used to set up the Hamiltonian, then the wavefunctions are optimized iteratively so that they get closer to the exact wavefunctions of this Hamiltonian. From the optimized wavefunctions a new charge density is calculated, which is then mixed with the old input-charge density. A brief flowchart is given below.(参自Manual P105页)一般情况下,the initial guessed wavefunctions是比较离谱的,在前NELMDL次非自洽迭代过程中保持charge density不变、保持初始的哈密顿量不变,只对wavefunctions进行优化,在得到一个与the exactwavefunctions of initial Hamiltonian较为接近的wavefunctions后,再开始同时优化charge density。

vasp 计算知识

vasp 计算知识

vasp 输入文件中的ISMEAR参数指的是波函数占据数目,但是这个到底是什么意思?可以浅显一点讲吗
就是说电子在费米面附近占据数从0突变到1,这是个deta函数,为了计算方便,用一个平滑点的函数在费米面附近代替这个deta函数,这样计算就不容易振荡,易于收敛。ismear就是可以采用这种方法:将SIGMA在不同大小的kmesh下进行静态计算测试,对每一个SIGMA值求“entropy T*S”值,可以得出一系列(一般取两条)不同kmesh下SIGMA与“entropy T*S”对应的曲线,将这些曲线比较,取不同kmesh曲线的“entropy T*S”差值最小的点对应的SIGMA值即可。具体参数设置可以参看侯柱峰编写的《VASP软件包使用入门指南》中“§5.7节ISMEAR和SIGMA”。
SIGMA的值是展宽,决定了电子的占有数,当它取不同值时,对金属体系的费米能处的电子占有数变化很大。一般地对于半导体和绝缘体来说SIGMA=0.05就够小了,金属的默认取值0.2。如果计算的体系是金属,在静态计算物理量时,则用ISMEAR=-5,这时不必设置SIGMA(此时SIGMA的取值对结果没有影响)。如果对体系进行驰豫,先用ISMAR=1或2(金属体系)或0(半导体或绝缘体)优化出SIGMA,得到优化的结构后,再进行静态计算(ISMEAER=0用的比较多,手册上的说法不管什么计算取ISMEAR=0然后找一个合适的SIGMA就可以)。另外,SIGMA的值依赖于kmesh的大小,当kmesh发生改变时SIGMA的值也需要重新优化取值。
最好是每做一个计算,都要先做一个SIGMA的检测以选取合适的SIGMA值,不过在有了可靠的经验以后就不用每次都做了。绝缘体SIGMA可以取得小一点,金属的不要取的太小否则不容易收敛。在收敛速度可以接受的情况下可以适当减小SIGMA。

VASP计算DOS和能带

VASP计算DOS和能带

VASP计算DOS和能带个人总结一:VASP计算DOS和能带1.计算DOS①POSCAR②POTCAR③KPOINTS(建议以Gamma为中心取点,通常K×a≈45即可)④INCAR(越简洁越好)第一步:结构优化SYSTEM=**ISTART=0ENCUT=500(最好对其进行测试)EDIFF=1E-5EDIFFG=-0.01NSW=100ISIF=2IBRION=2【优化后计算DOS可以一步完成,也可以分为两步来完成,主要是计算量涉及到计算时间的差别】第二步:静态自洽(此时可稍微降低K点数,用第一步优化得到的CONTCAR作为POSCAR进行计算)SYSTEM=**ISTART=0PREC=AccurateEDIFF=1E-5EDIFFG=-0.01ENCUT=500ISMEAR=-5LCHARG=.TRUE.注意:此时得到的E-feimi是准确的,需要记下(grep ‘E-fermi’OUTCAR)第三步:非自洽计算(采用高密度K点)SYSTEM=**ISTART=1ICHARG=11LMAXMIX=2/4/6(VASP官网原话:If ICHARG is set to 11 or 12, it is strongly recommened to set LMAXMIX to twice the maximum l-quantum number in the pseudpotentials. Thus for s and p elements LMAXMIX should be set to 2, for d elements LMAXMIX should be set to 4, and for f elements LMAXMIX should be set to 6)PREC=AccurateEDIFF=1E-5EDIFFG=-0.01ENCUT=500(截断能最好与上一步保持一致)ISMEAR=-5LORBIT=10/11(推荐11,可以得到能级分裂的数据)优化后计算DOS一步完成:(采用高密度K点)SYSTEM=**ISTART=1PREC=AccurateEDIFF=1E-5EDIFFG=-0.01ENCUT=500ISMEAR=-5LORBIT=10/112.计算能带①POSCAR②POTCAR③KPOINTS:使用Line-mode格式,给出高对称性K点之间的分割点数,分割越密,路径积分就越准确。

VASP验证

VASP验证

VASP验证计算前的验证 (Pre-calculation Verification of VASP)在进行VASP计算之前,为了确保计算结果的准确性和可靠性,需要进行一系列的验证。

这些验证包括结构优化验证、能带计算验证、振动频率验证以及轨道杂化功能验证等。

以下将分别对这些验证进行详细介绍。

1.结构优化验证:结构优化是计算中非常重要的一步,可以通过优化晶格参数和原子坐标得到体系的基态结构。

为了验证结构优化的准确性,可以进行以下步骤:-对于已知结构的化合物,可以将VASP计算得到的最优结构与实验数据进行比较,包括晶格参数、原子位置、结合能等。

-对于无法与实验数据进行比较的系统,可以使用其他第一性原理计算方法,如DFT、DFT+U等进行验证。

如果不同方法得到的最优结构相似,则说明VASP的结构优化结果可信。

2.能带计算验证:能带计算是研究材料的能电子结构和导电性质的重要手段。

为了验证能带计算的准确性:-可以将计算得到的能带与实验测量的能带进行比较,检查带隙的大小和位置是否一致。

-可以进行材料的半导体/金属性质的判断,如计算能带的导带和价带位置,以及带隙的大小,与实验结果进行比较。

3.振动频率验证:振动频率可以提供很多关于材料的信息,如热稳定性、相变性质等。

为了验证振动频率的准确性:-可以计算出体系的振动频率,并与实验测量的振动频率进行比较,检查谐振模式是否一致。

-可以计算振动模式的能量偏移,以及特征频率的大小和位置,与实验结果进行比较。

4.轨道杂化功能验证:轨道杂化功能是一种改进的DFT方法,可以更准确地描述具有局域d或f电子的过渡金属和稀土金属体系。

为了验证轨道杂化功能的准确性:-可以将VASP计算得到的体系的电子结构与实验结果进行比较,包括态密度、能带结构等。

-可以计算过渡金属和稀土金属的能带结构,并与实验结果进行比较,检查其是否更准确地描述了电子结构。

通过以上验证步骤,可以确保VASP计算的准确性和可靠性。

VASP参数设置详解要点

VASP参数设置详解要点

VASP参数设置详解要点VASP(Vienna Ab initio Simulation Package)是一种第一原理计算程序,用于计算材料性质和从头计算材料结构。

在进行VASP模拟时,合理设置参数非常重要,它们决定了模拟的准确性和效率。

下面将详细讨论几个关键的VASP参数设置要点。

1.设置能量截断(ENCUT):ENCUT是控制计算中的平面波能量截断的参数。

它应该尽量接近真实波函数的动能截断,以保证计算结果的准确度。

选择合适的ENCUT值非常关键,过低的值可能导致计算不收敛,过高的值则会造成计算时间过长。

一般建议从400eV开始进行尝试,然后根据计算的收敛性和计算结果调整。

2.设置k点密度(KPOINTS):k点密度是控制倒空间采样的参数。

k点密度越高,计算结果越准确,但计算时间也会增加。

为了在准确性和效率之间取得平衡,可以根据材料的对称性和大小进行合理的选择。

一般情况下,对于晶体,k点密度可以使用Reciprocal Space的自动生成程序,对于分子系统,可以使用Gamma Point + Monkhorst Pack方案。

3.设置电子步的最大迭代次数(NELM):NELM是控制电子步迭代收敛性的参数。

它决定了算法进行多少次最大迭代。

在计算过程中,电子步的总数是非常关键的。

如果电子步的迭代次数不足,可能会导致计算不收敛。

通常可以从60次开始进行尝试,如果计算结果不收敛,可以增加NELM的值。

4.设置计算精度(PREC):PREC参数是控制计算精度的参数。

该参数取值从粗到细分别为Low,Medium,High和Accuracy。

选择适当的计算精度可以在减少计算时间和提高计算结果准确性之间取得平衡。

一般情况下,可以从Medium开始尝试。

5.设置自洽迭代的收敛判据(EDIFF):EDIFF是控制自洽迭代收敛性的参数。

当自洽迭代前后两次总能量的变化低于EDIFF时,认为自洽迭代收敛。

合理设置EDIFF可以保证计算结果的准确性。

VASP使用总结

VASP使用总结

VASP计算的理论及实践总结一、赝势的选取二、收敛测试1、VASP测试截断能和K 点2、MS测试三、结构弛豫四、VASP的使用流程(计算性质)1、VASP的四个输入文件的设置2、输出文件的查看及指令3、计算单电能(1) 测试截断能(2) 测试K点4、进行结构优化5、计算弹性常数6、一些常用指令一、赝势的选取VASP赝势库中分为:PP和PAW两种势,PP又分为SP(标准)和USPP(超软)。

交换关联函数分为:LDA(局域密度近似)和GGA(广义梯度近似)。

GGA 又分为PW91和PBE。

在VASP中,其中pot ,pot-gga是属于超软势(使用较少)。

Paw, paw-pbe ,和paw-gga是属于PAW。

采用较多的是PAW-pbe 和PAW-gga。

此外vasp 中的赝势分为几种,包扩标准赝势(没有下标的)、还有硬(harder)赝势(_h)、软(softer)赝势(_s), 所谓的硬(难以赝化),就是指该元素原子的截断动能比较大,假想的势能与实际比较接近,计算得到的结果准确,但比较耗时,难以收敛。

软(容易赝化),表示该元素原子的截断动能比较小,赝势模型比较粗糙,但相对简单,可以使计算很快收敛(比如VASP开发的超软赝势)。

即硬的赝势精度高,但计算耗时。

软的精度低,容易收敛,但节省计算时间。

另一种情况:如Gd_3,这是把f电子放入核内处理,对于Gd来说,f电子恰好半满。

所以把f电子作为价电子处理的赝势还是蛮好的(类似还有Lu,全满)。

(相对其他的4f元素来说,至于把f电子作为芯内处理,是以前对4f元素的通用做法。

计算结果挺好)常用的做法是:用两种赝势测试一下对自己所关心的问题的影响情况。

在影响不大的情况下,选用不含4f电子的赝势(即后缀是3),一来减少计算量,二来避免DFT对4f电子的处理。

【1.赝势的选择:vasp的赝势文件放在目录~/vasp/potentials 下,可以看到该目录又包含五个子目录pot pot_GGA potpaw potpaw_GGA potpaw_PBE ,其中每一个子目录对应一种赝势形式。

(完整word版)VASP使用总结

(完整word版)VASP使用总结

VASP计算的理论及实践总结一、赝势的选取二、收敛测试1、VASP测试截断能和K 点2、MS测试三、结构弛豫四、VASP的使用流程(计算性质)1、VASP的四个输入文件的设置2、输出文件的查看及指令3、计算单电能(1)测试截断能(2) 测试K点4、进行结构优化5、计算弹性常数6、一些常用指令一、赝势的选取VASP赝势库中分为:PP和PAW两种势,PP又分为SP(标准)和USPP(超软)。

交换关联函数分为:LDA(局域密度近似)和GGA(广义梯度近似)。

GGA又分为PW91和PBE.在VASP中,其中pot ,pot—gga是属于超软势(使用较少)。

Paw,paw—pbe ,和paw-gga 是属于PAW.采用较多的是PAW-pbe 和PAW—gga。

此外vasp 中的赝势分为几种,包扩标准赝势(没有下标的)、还有硬(harder)赝势(_h)、软(softer)赝势(_s), 所谓的硬(难以赝化),就是指该元素原子的截断动能比较大,假想的势能与实际比较接近,计算得到的结果准确,但比较耗时,难以收敛。

软(容易赝化),表示该元素原子的截断动能比较小,赝势模型比较粗糙,但相对简单,可以使计算很快收敛(比如VASP 开发的超软赝势)。

即硬的赝势精度高,但计算耗时。

软的精度低,容易收敛,但节省计算时间。

另一种情况:如Gd_3,这是把f电子放入核内处理,对于Gd来说,f电子恰好半满。

所以把f电子作为价电子处理的赝势还是蛮好的(类似还有Lu,全满)。

(相对其他的4f元素来说,至于把f电子作为芯内处理,是以前对4f元素的通用做法。

计算结果挺好)常用的做法是:用两种赝势测试一下对自己所关心的问题的影响情况。

在影响不大的情况下,选用不含4f电子的赝势(即后缀是3),一来减少计算量,二来避免DFT对4f电子的处理。

【1.赝势的选择:vasp的赝势文件放在目录~/vasp/potentials 下,可以看到该目录又包含五个子目录pot pot_GGA potpaw potpaw_GGA potpaw_PBE ,其中每一个子目录对应一种赝势形式。

Vasp编译测试

Vasp编译测试

Vasp编译三种情况(mkl+ifort,goto+ifort,goto2+ifort)Xuliang 2010-2-7安装编译环境:Cluster: rocks5.2(内核是centos5.2) dell opetix 960 四核酷睿Q960 8G内存,千兆交换机。

CentOS5.2+mkl 10.0.1.014+mpich 1.2.7+ifort 10.1.015三种情况下不同在于选用不同的blas库而已,下面蓝色有标注说明选用goto2+ifort+mpich速度几乎是前面两种的2倍(串行和并行),具体可以看下面的表格测试数据)。

有人测试5.2的说明附录在最后。

1、先编译得到intel的libfftw3xf_intel.a (不知道有没有人对比过不同fft对速度的影响)超级用户:cd /opt/intel/mkl/10.1.0.015/interfaces/fftw3xfmake libem64t compiler=intel2、Mpich 和intel编译器前面已经装好。

3、gotoblas库的编译:GotoBLAS2-1.13.tar.gz GotoBLAS-1.26.tar.gz编译goto2如下:解压后在目录下:make BINARY=64 FC=ifort CC=icc TARGET=CORE2编译goto如下:修改Makefile.rule:C_COMPILER = INTEL F_COMPILER = INTEL BINARY64 = 1然后./ quickbuild.64bit4、vasp编译过程:(红色为修改部分)Install VASP lib 修改如下:.SUFFIXES: .inc .f .F#-----------------------------------------------------------------------# Makefile for Portland Group F90/HPF compiler# the makefile was tested only under Linux on Intel platforms# however it might work on other platforms as well## this release of vasp.4.lib contains lapack v2.0# this can be compiled with pgf90 compiler if the option -O1 is used## Mind: one user reported that he had to copy preclib.F diolib.F# dlexlib.F and drdatab.F to the directory vasp.4.4, compile the files# there and link them directly into vasp# for no obvious reason these files could not be linked from the library##-----------------------------------------------------------------------# C-preprocessorCPP = icc -E -P -C $*.F >$*.fCC=iccFC=ifortCFLAGS = -OFFLAGS = -O3 -align -xT#FFLAGS = -I/opt/intel/mkl/10.0.1.014/include/fftw -FR -lowercase -assume byterec l $(OFLAGS)FREE = -FRDOBJ = preclib.o timing_.o derrf_.o dclock_.o diolib.o dlexlib.o drdatab.o#-----------------------------------------------------------------------# general rules#-----------------------------------------------------------------------libdmy.a: $(DOBJ) lapack_double.o linpack_double.o lapack_atlas.o-rm libdmy.aar vq libdmy.a $(DOBJ)# files which do not require autodoublelapack_min.o: lapack_min.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_min.flapack_double.o: lapack_double.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_double.flapack_single.o: lapack_single.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_single.flapack_atlas.o: lapack_atlas.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_atlas.flinpack_double.o: linpack_double.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_double.flinpack_single.o: linpack_single.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_single.f.c.o:$(CC) $(CFLAGS) -c $*.c.F.o:$(CPP)$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f.F.f:$(CPP).f.o:$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.fCompile VASP parallel general-k verision by mpich.SUFFIXES: .inc .f .F#-----------------------------------------------------------------------# Makefile for Portland Group F90/HPF compiler# the makefile was tested only under Linux on Intel platforms# however it might work on other platforms as well## this release of vasp.4.lib contains lapack v2.0# this can be compiled with pgf90 compiler if the option -O1 is used## Mind: one user reported that he had to copy preclib.F diolib.F# dlexlib.F and drdatab.F to the directory vasp.4.4, compile the files# there and link them directly into vasp# for no obvious reason these files could not be linked from the library##-----------------------------------------------------------------------# C-preprocessorCPP = icc -E -P -C $*.F >$*.fCC=iccFC=ifortCFLAGS = -OFFLAGS = -O3 -align -xT#FFLAGS = -I/opt/intel/mkl/10.0.1.014/include/fftw -FR -lowercase -assume byterecl $(OFLAGS)FREE = -FRDOBJ = preclib.o timing_.o derrf_.o dclock_.o diolib.o dlexlib.o drdatab.o#-----------------------------------------------------------------------# general rules#-----------------------------------------------------------------------libdmy.a: $(DOBJ) lapack_double.o linpack_double.o lapack_atlas.o-rm libdmy.aar vq libdmy.a $(DOBJ)# files which do not require autodoublelapack_min.o: lapack_min.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_min.flapack_double.o: lapack_double.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_double.flapack_single.o: lapack_single.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_single.flapack_atlas.o: lapack_atlas.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_atlas.flinpack_double.o: linpack_double.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_double.flinpack_single.o: linpack_single.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_single.f.c.o:$(CC) $(CFLAGS) -c $*.c.F.o:$(CPP)$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f.F.f:$(CPP).f.o:$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f[********************.6.34]$lsmakefile.4.6 vasp.4.6 vasp.4.libmakefile.lib vasp.4.6.tar.gz vasp.4.lib.tar.gz[********************.6.34]$moremakefile.4.6.SUFFIXES: .inc .f .f90 .F#-----------------------------------------------------------------------# Makefile for Intel Fortran compiler for P4 systems## The makefile was tested only under Linux on Intel platforms# (Suse 5.3- Suse 9.0)# the followin compiler versions have been tested# 5.0, 6.0, 7.0 and 7.1 (some 8.0 versions seem to fail compiling the code) # presently we recommend version 7.1 or 7.0, since these# releases have been used to compile the present code versions## it might be required to change some of library pathes, since# LINUX installation vary a lot# Hence check ***ALL**** options in this makefile very carefully#-----------------------------------------------------------------------## BLAS must be installed on the machine# there are several options:# 1) very slow but works:# retrieve the lapackage from # and compile the blas routines (BLAS/SRC directory)# please use g77 or f77 for the compilation. When I tried to# use pgf77 or pgf90 for BLAS, V ASP hang up when calling# ZHEEV (however this was with lapack 1.1 now I use lapack 2.0) # 2) most desirable: get an optimized BLAS## the two most reliable packages around are presently:# 3a) Intels own optimised BLAS (PIII, P4, Itanium)# /software/products/mkl/# this is really excellent when you use Intel CPU's## 3b) or obtain the atlas based BLAS routines# /# you certainly need atlas on the Athlon, since the mkl# routines are not optimal on the Athlon.# If you want to use atlas based BLAS, check the lines around LIB= ## 3c) mindblowing fast SSE2 (4 GFlops on P4, 2.53 GHz)# Kazushige Goto's BLAS# /users/kgoto/signup_first.html##-----------------------------------------------------------------------# all CPP processed fortran files have the extension .f90SUFFIX=.f90#-----------------------------------------------------------------------# fortran compiler and linker#-----------------------------------------------------------------------FC=ifort# fortran linkerFCL=$(FC)#-----------------------------------------------------------------------# whereis CPP ?? (I need CPP, can't use gcc with proper options)# that's the location of gcc for SUSE 5.3## CPP_ = /usr/lib/gcc-lib/i486-linux/2.7.2/cpp -P -C## that's probably the right line for some Red Hat distribution:## CPP_ = /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -P -C## SUSE X.X, maybe some Red Hat distributions:CPP_ = ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)#-----------------------------------------------------------------------# possible options for CPP:# NGXhalf charge density reduced in X direction# wNGXhalf gamma point only reduced in X direction# avoidalloc avoid ALLOCA TE if possible# IFC work around some IFC bugs# CACHE_SIZE 1000 for PII,PIII, 5000 for Athlon, 8000-12000 P4# RPROMU_DGEMV use DGEMV instead of DGEMM in RPRO (depends on used BLAS)# RACCMU_DGEMV use DGEMV instead of DGEMM in RACC (depends on used BLAS)#-----------------------------------------------------------------------#CPP = $(CPP_) -DHOST=\"LinuxIFC\" \-Dkind8 -DNGXhalf -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc \# -DRPROMU_DGEMV -DRACCMU_DGEMV#-----------------------------------------------------------------------# general fortran flags (there must a trailing blank on this line)#-----------------------------------------------------------------------FFLAGS = -FR -lowercase -assume byterecl#-----------------------------------------------------------------------# optimization# we have tested whether higher optimisation improves performance# -axK SSE1 optimization, but also generate code executable on all mach.# xK improves performance somewhat on XP, and a is required in order# to run the code on older Athlons as well# -xW SSE2 optimization# -axW SSE2 optimization, but also generate code executable on all mach.# -tpp6 P3 optimization# -tpp7 P4 optimization#-----------------------------------------------------------------------#OFLAG=-O3 -xTOFLAG=-O3 -xT -static-intel -static -mtune=core2 -fp-model strictOFLAG_HIGH = $(OFLAG)OBJ_HIGH =OBJ_NOOPT =DEBUG = -FR -O0INLINE = $(OFLAG)#-----------------------------------------------------------------------# the following lines specify the position of BLAS and LAPACK# on P4, V ASP works fastest with the libgoto library# so that's what I recommend#-----------------------------------------------------------------------# Atlas based libraries#A TLASHOME= $(HOME)/archives/BLAS_OPT/A TLAS/lib/Linux_P4SSE2/#BLAS= -L$(A TLASHOME) -lf77blas -latlas# use specific libraries (default library path might point to other libraries)#BLAS= $(A TLASHOME)/libf77blas.a $(A TLASHOME)/libatlas.a# use the mkl Intel libraries for p4 ()# mkl.5.1# set -DRPROMU_DGEMV -DRACCMU_DGEMV in the CPP lines#BLAS=-L/opt/intel/mkl/lib/32 -lmkl_p4 -lpthread#BLAS= -L/opt/intel/mkl/10.0.1.014/lib/em64t -lmkl_em64t -lmkl_core -lmkl_intel_lp64 -lmkl_intel_thread \-lmkl_sequential -lmkl_solver_lp64 -lmkl_solver_lp64_sequential –lguide(注明:这样是mkl编译)# mkl.5.2 requires also to -lguide library# set -DRPROMU_DGEMV -DRACCMU_DGEMV in the CPP lines# even faster Kazushige Goto's BLAS# /users/kgoto/signup_first.html#BLAS= /opt/libs/libgoto/libgoto_p4_512-r0.6.soBLAS= /home/samuel/soft/lib/GotoBLAS/libgoto_penrynp-r1.26.so (注:这个是goto编译) #BLAS= /home/samuel/soft/lib/GotoBLAS2/libgoto2_core2p-r1.13.so (注:这个是goto2编译)# LAPACK, simplest use vasp.4.lib/lapack_doubleLAPACK= ../vasp.4.lib/lapack_double.o# use atlas optimized part of lapack#LAPACK= ../vasp.4.lib/lapack_atlas.o -llapack -lcblas# use the mkl Intel lapack#LAPACK= -lmkl_lapack#-----------------------------------------------------------------------#LIB = -L../vasp.4.lib -ldmy \../vasp.4.lib/linpack_double.o $(LAPACK) \$(BLAS)# options for linking (for compiler version 6.X, 7.1) nothing is requiredLINK =# compiler version 7.0 generates some vector statments which are located# in the svml library, add the LIBPA TH and the library (just in case)#LINK = -L/opt/intel/compiler70/ia32/lib/ -lsvml#-----------------------------------------------------------------------# fft libraries:# V ASP.4.6 can use fftw.3.0.X ()# since this version is faster on P4 machines, we recommend to use it#-----------------------------------------------------------------------#FFT3D = fft3dfurth.o fft3dlib.o#FFT3D = fftw3d.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a#===================================================================== ==# MPI section, uncomment the following lines## one comment for users of mpich or lam:# Y ou must *not* compile mpi with g77/f77, because f77/g77# appends *two* underscores to symbols that contain already an# underscore (i.e. MPI_SEND becomes mpi_send__). The pgf90/ifc# compilers however append only one underscore.# Precompiled mpi version will also not work## We found that mpich.1.2.1 and lam-6.5.X to lam-7.0.4 are stable# mpich.1.2.1 was configured with# ./configure -prefix=/usr/local/mpich_nodvdbg -fc="pgf77 -Mx,119,0x200000" \# -f90="pgf90 " \# --without-romio --without-mpe -opt=-O \## lam was configured with the line# ./configure -prefix /opt/libs/lam-7.0.4 --with-cflags=-O -with-fc=ifc \# --with-f77flags=-O --without-romio## please note that you might be able to use a lam or mpich version# compiled with f77/g77, but then you need to add the following# options: -Msecond_underscore (compilation) and -g77libs (linking)## Please do not send me any queries on how to install MPI, I will# certainly not answer them#===================================================================== ==#-----------------------------------------------------------------------# fortran linker for mpi: if you use LAM and compiled it with the options# suggested above, you can use the following line#-----------------------------------------------------------------------FC=/opt/mpich/intel/bin/mpif90FCL=$(FC)#-----------------------------------------------------------------------# additional options for CPP in parallel version (see also above):# NGZhalf charge density reduced in Z direction# wNGZhalf gamma point only reduced in Z direction# scaLAPACK use scaLAPACK (usually slower on 100 Mbit Net)#-----------------------------------------------------------------------CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \-Dkind8 -DCACHE_SIZE=16000 -DPGF90 -Davoidalloc -DNGZhalf \-DMPI_BLOCK=8000 -DRPROMU_DGEMV -DRACCMU_DGEMV#CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \-Dkind8 -DNGZhalf -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \# -DMPI_BLOCK=500 \## -DRPROMU_DGEMV -DRACCMU_DGEMV#-----------------------------------------------------------------------# location of SCALAPACK# if you do not use SCALAPACK simply uncomment the line SCA#-----------------------------------------------------------------------#BLACS=$(HOME)/archives/SCALAPACK/BLACS/#SCA_=$(HOME)/archives/SCALAPACK/SCALAPACK#SCA= $(SCA_)/libscalapack.a \#$(BLACS)/LIB/blacsF77init_MPI-LINUX-0.a $(BLACS)/LIB/blacs_MPI-LINUX-0.a $(BLACS)/LIB/blacsF77init_MPI-LINUX-0.aSCA=#-----------------------------------------------------------------------# libraries for mpi#-----------------------------------------------------------------------LIB = -L../vasp.4.lib -ldmy \../vasp.4.lib/linpack_double.o $(LAPACK) \-L/opt/intel/mkl/10.0.1.014/lib/em64t \-lmkl_em64t -lguide -lpthread -lm \$(BLAS)# $(SCA) $(BLAS)# FFT: fftmpi.o with fft3dlib of Juergen FurthmuellerFFT3D = fftmpi.o fftmpi_map.o fft3dlib.o \/opt/intel/mkl/10.0.1.014/lib/em64t/libfftw3xf_intel.a# fftw.3.0.1 is slighly faster and should be used if available#FFT3D = fftmpiw.o fftmpi_map.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a#-----------------------------------------------------------------------# general rules and compile lines#-----------------------------------------------------------------------BASIC= symmetry.o symlib.o lattlib.o random.oSOURCE= base.o mpi.o smart_allocate.o xml.o \constant.o jacobi.o main_mpi.o scala.o \asa.o lattice.o poscar.o ini.o setex.o radial.o \pseudo.o mgrid.o mkpoints.o wave.o wave_mpi.o $(BASIC) \nonl.o nonlr.o dfast.o choleski2.o \mix.o charge.o xcgrad.o xcspin.o potex1.o potex2.o \metagga.o constrmag.o pot.o cl_shift.o force.o dos.o elf.o \tet.o hamil.o steep.o \chain.o dyna.o relativistic.o LDApU.o sphpro.o paw.o us.o \ebs.o wavpre.o wavpre_noio.o broyden.o \dynbr.o rmm-diis.o reader.o writer.o tutor.o xml_writer.o \brent.o stufak.o fileio.o opergrid.o stepver.o \dipol.o xclib.o chgloc.o subrot.o optreal.o davidson.o \edtest.o electron.o shm.o pardens.o paircorrection.o \optics.o constr_cell_relax.o stm.o finite_diff.o \elpol.o setlocalpp.oINC=vasp: $(SOURCE) $(FFT3D) $(INC) main.orm -f vasp$(FCL) -o vasp $(LINK) main.o $(SOURCE) $(FFT3D) $(LIB) makeparam: $(SOURCE) $(FFT3D) makeparam.o main.F $(INC)$(FCL) -o makeparam $(LINK) makeparam.o $(SOURCE) $(FFT3D) $(LIB) zgemmtest: zgemmtest.o base.o random.o $(INC)$(FCL) -o zgemmtest $(LINK) zgemmtest.o random.o base.o $(LIB) dgemmtest: dgemmtest.o base.o random.o $(INC)$(FCL) -o dgemmtest $(LINK) dgemmtest.o random.o base.o $(LIB)ffttest: base.o smart_allocate.o mpi.o mgrid.o random.o ffttest.o $(FFT3D) $(INC) $(FCL) -o ffttest $(LINK) ffttest.o mpi.o mgrid.o random.o smart_allocate.o base.o $(FFT3D) $(LIB)kpoints: $(SOURCE) $(FFT3D) makekpoints.o main.F $(INC)$(FCL) -o kpoints $(LINK) makekpoints.o $(SOURCE) $(FFT3D) $(LIB)clean:-rm -f *.g *.f *.o *.L *.mod ; touch *.Fmain.o: main$(SUFFIX)$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c main$(SUFFIX)xcgrad.o: xcgrad$(SUFFIX)$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcgrad$(SUFFIX)xcspin.o: xcspin$(SUFFIX)$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcspin$(SUFFIX)makeparam.o: makeparam$(SUFFIX)$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c makeparam$(SUFFIX)makeparam$(SUFFIX): makeparam.F main.F## MIND: I do not have a full dependency list for the include# and MODULES: here are only the minimal basic dependencies# if one strucuture is changed then touch_dep must be called# with the corresponding name of the structure#base.o: base.inc base.Fmgrid.o: mgrid.inc mgrid.Fconstant.o: constant.inc constant.Flattice.o: lattice.inc lattice.Fsetex.o: setexm.inc setex.Fpseudo.o: pseudo.inc pseudo.Fposcar.o: poscar.inc poscar.Fmkpoints.o: mkpoints.inc mkpoints.Fwave.o: wave.inc wave.Fnonl.o: nonl.inc nonl.Fnonlr.o: nonlr.inc nonlr.F$(OBJ_HIGH):$(CPP)$(FC) $(FFLAGS) $(OFLAG_HIGH) $(INCS) -c $*$(SUFFIX)$(OBJ_NOOPT):$(CPP)$(FC) $(FFLAGS) $(INCS) -c $*$(SUFFIX)fft3dlib_f77.o: fft3dlib_f77.F$(CPP)$(F77) $(FFLAGS_F77) -c $*$(SUFFIX).F.o:$(CPP)$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX).F$(SUFFIX):$(CPP)$(SUFFIX).o:$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)# special rules#-----------------------------------------------------------------------# these special rules are cummulative (that is once failed# in one compiler version, stays in the list forever)# -tpp5|6|7 P, PII-PIII, PIV# -xW use SIMD (does not pay of on PII, since fft3d uses double prec)# all other options do no affect the code performance since -O1 is used#-----------------------------------------------------------------------fft3dlib.o : fft3dlib.F$(CPP)$(FC) -FR -lowercase -O1 (注明:这里去掉了-tpp7)-xT -prefetch- -unroll0 (注明:这里去掉了-e95 )-vec_report3 -c $*$(SUFFIX)fft3dfurth.o : fft3dfurth.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)radial.o : radial.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)symlib.o : symlib.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)symmetry.o : symmetry.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)dynbr.o : dynbr.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)broyden.o : broyden.F$(CPP)$(FC) -FR -lowercase -O2 -c $*$(SUFFIX)us.o : us.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)wave.o : wave.F$(CPP)$(FC) -FR -lowercase -O0 -c $*$(SUFFIX)LDApU.o : LDApU.F$(CPP)$(FC) -FR -lowercase -O2 -c $*$(SUFFIX) V asp编译测试:CentOS5.2+mkl 10.1.0.015+openmpi 1.3.2+ifort 11.0.074编译vasp5.2安装编译环境:Cluster简况:xeon 5420, 12G ram, 千兆交换机。

VASP使用总结

VASP使用总结

VASP使用总结VASP(Vienna Ab initio Simulation Package)是一款基于密度泛函理论(DFT)的第一性原理计算软件,主要用于材料科学和凝聚态物理领域的计算。

它提供了丰富的功能和工具,可以用于模拟和研究各种材料的物理和化学性质。

以下是对VASP使用的总结:1.输入文件的准备在进行VASP计算之前,首先需要准备好输入文件。

VASP使用的输入文件包括POSCAR、INCAR、POTCAR等。

POSCAR文件用于定义晶体结构和原子坐标,INCAR文件用于定义计算参数和设置计算方法,POTCAR文件用于定义原子的赝势。

2.材料结构的优化VASP可以通过结构优化计算来确定材料的最稳定结构。

结构优化计算通过改变原子位置和晶胞大小,寻找最低能量的结构。

可以使用ISIF 参数来设置优化类型,如禁止移动原子、禁止改变晶胞大小等。

3.能带结构的计算VASP可以计算材料的能带结构,从而提供关于能带轨道和能带间隙的信息。

能带结构计算需要先进行结构优化计算,然后再进行自洽计算和能带计算。

可以通过设置KPOINTS和NBANDS参数来控制计算的精度和效率。

4.密度状态的计算VASP可以计算材料的密度状态,包括电荷密度、电荷分布和电子态密度等。

通过密度状态计算,可以了解材料的电子结构和性质。

可以通过设置LSORBIT、IALGO和NPAR等参数来控制计算的模式和效率。

5.势能面的计算VASP可以计算材料的势能面,并通过构建势能面图像来显示材料的稳定性和反应性。

势能面计算需要进行结构优化计算,然后通过改变原子位置和晶胞大小来势能面上的最低能量和结构。

6.热力学性质的计算VASP可以通过计算自由能、热容和热膨胀系数等热力学性质来了解材料的热稳定性和热响应。

热力学性质的计算需要进行结构优化计算和自洽计算,然后使用VASP提供的工具和脚本进行热力学性质的分析和计算。

7.计算结果的解析和可视化VASP提供了丰富的工具和脚本,可以用于解析和可视化计算结果。

VASP几个计算实例

VASP几个计算实例

VASP⼏个计算实例⽤VASP计算H原⼦的能量氢原⼦的能量为。

在这⼀节中,我们⽤VASP计算H原⼦的能量。

对于原⼦计算,我们可以采⽤如下的INCAR⽂件PREC=ACCURATENELMDL = 5 make five delays till charge mixingISMEAR = 0; SIGMA=0.05 use smearing method采⽤如下的KPOINTS⽂件。

由于增加K点的数⽬只能改进描述原⼦间的相互作⽤,⽽在单原⼦计算中并不需要。

所以我们只需要⼀个K点。

Monkhorst Pack 0 Monkhorst Pack1 1 10 0 0采⽤如下的POSCAR⽂件atom 115.00000 .00000 .00000.00000 15.00000 .00000.00000 .00000 15.000001cart0 0 0采⽤标准的H的POTCAR得到结果如下:k-point 1 : 0.0000 0.0000 0.0000band No. band energies occupation1 -6.3145 1.000002 -0.0527 0.000003 0.4829 0.000004 0.4829 0.00000我们可以看到,电⼦的能级不为。

Free energy of the ion-electron system (eV)---------------------------------------------------alpha Z PSCENC = 0.00060791Ewald energy TEWEN = -1.36188267-1/2 Hartree DENC = -6.27429270-V(xc)+E(xc) XCENC = 1.90099128PAW double counting = 0.00000000 0.00000000entropy T*S EENTRO = -0.02820948eigenvalues EBANDS = -6.31447362atomic energy EATOM = 12.04670449---------------------------------------------------free energy TOTEN = -0.03055478 eVenergy without entropy = -0.00234530 energy(sigma->0) = -0.01645004我们可以看到也不等于。

VASP计算前的验证

VASP计算前的验证

VASP计算前的验证在进行VASP计算之前,我们通常需要进行一些验证来确保计算结果的准确性和可靠性。

这些验证的目的是确保我们选取了正确的初始结构、参数和计算方法,并评估计算方案的可行性。

下面是一些常见的验证步骤:1.结构优化验证:首先,需要对所研究体系的初始原子结构进行结构优化。

我们可以使用实验得到的结构或者其他第一性原理计算方法得到的结构作为初始结构,然后使用VASP进行结构优化。

优化的目标是使得系统的总能量降到最低,找到能量最稳定的体系结构。

这一步骤通常使用DFT(密度泛函理论)计算方法和初始的波函数和电荷密度。

2.能带结构验证:在结构优化结束后,我们可以通过计算体系的能带结构来验证计算的准确性。

能带结构可以展现材料的带隙、导带和化合物的本质。

我们可以在不同的路径上计算和绘制能量对动量的关系图来得到能带结构。

这一验证步骤可以帮助我们理解材料的电子结构和导电性质。

3.力学性质验证:VASP也可以计算材料的力学性质,例如弹性常数、杨氏模量和泊松比等。

在进行这类计算之前,我们需要确保所选择的结构是力学稳定的,并且在加压或应变下仍然保持稳定。

因此,在进行这类计算之前,我们需要对原子结构进行弛豫以优化晶格参数和原子位置,以获得稳定的体系结构。

然后,通过施加应力或应变来计算材料的力学性质。

4.衬底效应验证:对于表面或界面材料的计算,我们通常需要考虑衬底的影响。

通过将材料结构嵌入到一个有无限大尺寸的衬底中并进行计算,我们可以模拟实验条件下的表面或界面材料。

这涉及到对衬底的初始结构进行结构优化,并确保表面或界面层的材料是稳定的。

5.收敛测试:在以上验证步骤完成后,我们还需要进行VASP计算的收敛测试。

这是为了确定所选择的计算参数是否足够可靠和准确。

我们可以通过改变计算参数,如平面波截断能、k点网格密度和电子自洽迭代收敛标准等,来测试计算结果的稳定性和收敛性。

通过逐步增加计算参数的精度,直到得到满意的结果为止。

VASP程序使用

VASP程序使用

VASP程序使用VASP程序是一种用于计算固体材料和表面材料性质的量子化学计算程序。

它采用第一性原理方法,即从基本的原子核和电子相互作用出发,通过解波恩-奥本海默(Born-Oppenheimer)方程来计算材料的能带结构、电子态密度、原子结构、晶格参数、声子谱等物理性质。

VASP程序的应用广泛,可以用于材料科学、物理学、化学等众多研究领域。

在开始使用VASP程序之前,需要进行一系列的准备工作。

首先,用户需要获取VASP程序及其相关的源代码和输入文件。

其次,用户需要安装VASP程序并设置好环境变量。

VASP程序可以在不同的操作系统上运行,包括Linux、Unix和Windows等。

使用VASP程序的第一步是准备输入文件。

这些输入文件包括晶体结构文件(POSCAR文件)、计算参数文件(INCAR文件)、赝势文件(POTCAR文件)和K点网格文件(KPOINTS文件)等。

用户需要准备这些文件并将其放到同一个目录下。

其中,POSCAR文件包含晶体结构信息,INCAR文件包含计算参数设置,POTCAR文件包含赝势信息,KPOINTS文件包含K点网格信息。

一般情况下,VASP程序的计算时间较长,需要较大的计算资源。

用户需要根据自己的计算目标和计算机性能来选择合适的计算参数和计算资源。

如果计算任务较重,可以使用并行计算来提高计算效率。

在计算完成后,用户可以通过查看输出文件来获取计算结果。

输出文件包括能带图文件、DOS文件、晶体结构文件等。

用户可以利用这些文件来分析材料的能带结构、电子态密度、原子结构等性质。

VASP程序还提供了一系列的后处理工具,用户可以使用这些工具来进一步分析和处理计算结果。

VASP问题MicrosoftWord

VASP问题MicrosoftWord

VASP 计算的过程遇到的问题1、VASP能够进行哪些过程的计算?怎样设置?我们平时最常用的研究方法是做单点能计算,结构优化、从头计算的分子动力学和电子结构相关性质的计算。

一般我们的研究可以按照这样的过程来进行如果要研究一个体系的最优化构型问题可以首先进行结构弛豫优化,然后对优化后的结构进行性质计算或者单点能计算。

如果要研究一个体系的热力学变化过程可以首先进行分子动力学过程模拟,然后在某个温度或压强下进行性质计算或者单点能计算。

如果要研究一个体系的热力学结构变化可以首先在初始温度下进行NVT计算,然后进行分子动力学退火,然后在结束温度下进行性质计算研究。

2、什么是单点能计算(single point energy)?如何计算?跟其它软件类似,VASP具有单点能计算的功能。

也就是说,对一个给定的固定不变的结构(包括原子、分子、表面或体材料)能够计算其总能,即静态计算功能。

单点能计算需要的参数最少,最多只要在KPOINTS文件中设置一下合适的K点或者在INCAR文件中给定一个截断能ENCUT就可以了。

还有一个参数就是电子步的收敛标准的设置EDIFF,默认值为EDIFF=1E-4,一般不需要修改这个值。

具体来说要计算单点能,只要在INCAR中设置IBRION=-1也就是让离子不移动就可以了。

3、什么是结构优化(structure optimization)?如何计算?结构优化又叫结构弛豫(structure relax),是指通过对体系的坐标进行调整,使得其能量或内力达到最小的过程,与动力学退火不同,它是一种在0K下用原子间静力进行优化的方法。

可以认为结构优化后的结构是相对稳定的基态结构,能够在实验之中获得的几率要大些(当然这只是理论计算的结果,必须由实验来验证)。

一般要做弛豫计算,需要设置弛豫收敛标准,也就是告诉系统收敛达成的判据(convergence break condition),当系统检测到能量变化减小到一个确定值时例如EDIFFG=1E-3时视为收敛中断计算,移动离子位置尝试进行下一步计算。

VASP计算的一些相关参数的参考

VASP计算的一些相关参数的参考

8.1
能带的数量 NBANDS
应该选择 NBANDS 确保在计算中有足够的空带。至少,需要一个空带。如果不是这种 情况,VASP 将给出警告。 从技术的观点来说 NBANDS 同样重要:在迭代矩阵对角化方案里的特征向量,其接近 于最高的计算数量的向量, 收敛起来比最低的特征向量。 在计算中如果没有足够的空能带可 能导致显著性能的丢失。因此我们建议设置 NBANDS 到 NELECT / 2 + NIONS / 2,这也是 默认设置的 makeparam 效用和 VASP.4.X。这个设置在大多数情况下是安全的。在某些情况 下,还可以减少额外的能带数量到 NIONS / 4 为了没有性能损失的大系统,但另一方面过渡 金属的确需要更大数量空的能带(到 2 * NIONS)。 用 一 个 固 定的 电 势 (ICHARG = 12) 和 逐 渐 增加 的能 带 值 来 进行 几 次计 算 ( 例 如 从 NELECT / 2 + NIONS / 2)来检测这个参数。为保证精度为 10 应该需要 10—15 次的迭代才 能获得。尽管在 RMM-DIIS 计划里(IALGO = 48)能带的数量比默认的共轭梯度算法更明智 IALGO = 8)。 8.2 高质量的定量与定性的计算 在进入更深层的细节之前 , 我们要对 “ 高质量定量 ”(PREC 应该取高值 ) 和 “ 定性 ” 计算 (PREC 可以介质甚至低)进行区分。 如果在两个相互竞争的“阶段”有非常小的能量差异(< 10 meV),就需要一个“高质量”的 计算,这不能被相同的超晶胞所描述,而必须计算。 相对于这里的晶包,术语“相同的超晶胞”就是含有相同数量的原子数和相同额细胞尺寸(即 对这两种晶包而言晶格向量应该几本相同)。计算能量差异时,在两者体积交错的很多情况 下很难找到一个超晶胞,这符合以上标准。如果想要算小能量差异,则需要收敛对所有参数 ((k-points,FFT-meshes,有时候有能量值cut-off)。在大多数情况下这三个参数都是独立的 , 所以可以分别检查其独立性。 对于表面而言,事情变的很复杂。表面能的计算显然是一个“高质量量化”计算。在这种 情况下,你需要用总的能量减体相的能量。还要保证两个能量有高的的计算准确度。如果这 个板包含 20 个原子若有 5meV/原子的错误将会导致表面 100meV/原子的错误。在计算分子 的吸附能的时候这类影响可能没这么大。在这种情况下,可以获得准确的结果(有几 meV 的 误差),此时 PREC =med,当板的参考能量和吸附物的参考能量用相同超晶胞计算时,我们 通常将两者放在一起描述。 从头计算的分子动力学显然不在高质量的范畴之内, 因为细胞形状和原子数量在计算时 保持不变,,而且当 PREC 值设的很低时,可以计算大多数的从头计算分子动力学。当讲到 k-point 网格的影响这个地方时,我们会举一些不符合此规则的例子。

VASP(计算前的各种测试)

VASP(计算前的各种测试)

(计算前的)验证一、检验赝势的好坏:(一)方法:对单个原子进行计算;(二)要求:1、对称性和自旋极化均采用默认值;2、ENCUT要足够大;3、原胞的大小要足够大,一般设置为15 Å足矣,对某些元素还可以取得更小一些。

(三)以计算单个Fe原子为例:1、INCAR文件:SYSTEM = Fe atomENCUT = 450.00 eVNELMDL = 5 ! make five delays till charge mixing,详细意义见注释一ISMEAR = 0SIGMA=0.12、POSCAR文件:atom15.001.00 0.00 0.000.00 1.00 0.000.00 0.00 1.001Direct0 0 03、KPOINTS文件:(详细解释见注释二。

)AutomaticGamma1 1 10 0 04、POTCAR文件:(略)注释一:关键词“NELMDL”:A)此关键词的用途:指定计算开始时电子非自洽迭代的步数(即NELMDL gives the number of non-selfconsistent steps at the beginning),目的是make calculations faster。

“非自洽”指的是保持charge density 不变,由于Charge density is used to set up the Hamiltonian, 所以“非自洽”也指保持初始的哈密顿量不变。

B)默认值(default value):NELMDL = -5 (当ISTART=0, INIWA V=1, and IALGO=8时)NELMDL = -12 (当ISTART=0, INIWA V=1, and IALGO=48时)NELMDL = 0 (其他情况下)NELMDL might be positive or negative.A positive number means that a delay is applied after each ionicmovement -- in general not a convenient option. (在每次核运动之后)A negative value results in a delay only for the start-configuration. (只在第一步核运动之前)C)关键词“NELMDL”为什么可以减少计算所需的时间?Charge density is used to set up the Hamiltonian, then the wavefunctions are optimized iteratively so that they get closer to the exact wavefunctions of this Hamiltonian. From the optimized wavefunctions a new charge density is calculated, which is then mixed with the old input-charge density. A brief flowchart is given below.(参自Manual P105页)一般情况下,the initial guessed wavefunctions是比较离谱的,在前NELMDL次非自洽迭代过程中保持charge density不变、保持初始的哈密顿量不变,只对wavefunctions进行优化,在得到一个与the exactwavefunctions of initial Hamiltonian较为接近的wavefunctions后,再开始同时优化charge density。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BatchDoc Word文档批量处理工具(计算前的)验证一、检验赝势的好坏:(一)方法:对单个原子进行计算;(二)要求:1、对称性和自旋极化均采用默认值;2、ENCUT要足够大;3、原胞的大小要足够大,一般设置为15 ?足矣,对某些元素还可以取得更小一些。

(三)以计算单个Fe原子为例:1、INCAR文件:SYSTEM = Fe atomENCUT = 450.00 eVNELMDL = 5 ! make five delays till charge mixing,详细意义见注释一ISMEAR = 0SIGMA=0.12、POSCAR文件:atom15.001.00 0.00 0.000.00 1.00 0.000.00 0.00 1.001Direct0 0 03、KPOINTS文件:(详细解释见注释二。

)AutomaticGamma1 1 10 0 04、POTCAR文件:(略)注释一:关键词“NELMDL”:A)此关键词的用途:指定计算开始时电子非自洽迭代的步数(即NELMDL gives the number of non-selfconsistent steps at the beginning),文档批量处理工具BatchDoc Word文档批量处理工具BatchDoc Word densitycharge fastermake calculations 。

目的是“非自洽”指的是保持“非自Charge density is used to set up the Hamiltonian, 所以不变,由于洽”也指保持初始的哈密顿量不变。

:B)默认值(default value)(时) 当ISTART=0, INIWANELMDL = -5 V=1, and IALGO=8 ) ISTART=0, INIWA V=1, and IALGO=48( NELMDL = -12 时当)其他情况下NELMDL = 0 (NELMDL might be positive or negative.ionic each applied means A positive number that after a delay is(movement -- in general not a convenient option. )在每次核运动之后(只在A negative value results in a delay only for the start-configuration.第一步核运动之前)NELMDL”为什么可以减少计算所需的时间?C)关键词“the the is Charge density used Hamiltonian, to set then upwavefunctions are optimized iteratively so that they get closer to the exacta optimized wavefunctions wavefunctions of Hamiltonian. this From theold with density charge is calculated, the which is then mixed newManual P105input-charge density. A brief flowchart is given below.(参自页)是比较离谱的,在前一般情况下,the initial guessed wavefunctions不变、保持初始的density次非自洽迭代过程中保持NELMDLcharge哈密顿量不变,只对wavefunctions进行优化,在得到一个与the exact文档批量处理工具BatchDoc WordBatchDoc Word文档批量处理工具wavefunctions of initial Hamiltonian较为接近的wavefunctions后,再开始同时优化charge density。

这样一来,计算时间要比一开始就同时优化charge density 和wavefunctions短得多。

注释二:为什么这里只需要一个k点?For atoms and molecules, the Bloch theorem does not apply, hence there is no need to use more than one single k-point. When more k-points are used,only the interaction between the atoms (which should be zero) is describedmore accurately.(三)计算任务执行方法:输入:vasp(四)赝势好的判断标准:计算得到的OUTCAR文件中的“energy without entropy”能量值在?0.001~?0.01 eV之间。

文档批量处理工具BatchDoc WordBatchDoc Word文档批量处理工具二、筛选合适的ENCUT大小:(一)输入文件:1、用脚本程序optencut.sh代替INCAR文件:rm WAVECARfor i in 100 150 200 250 300 350 400 450 500 550 600docat > INCAR <<!SYSTEM = bcc FeENCUT = $iISTART = 0 ; ICHARG = 2ISMEAR = -5PREC = Accurate!echo ENCUT = $i eV; time vaspE=$(grep TOTEN OUTCAR | tail -1| awk '{printf _x0012_.6f \n, $5}')echo $i $E >> commentdone2、POSCAR文件:bcc Fe2.8661.00 0.00 0.000.00 1.00 0.000.00 0.00 1.002Direct0 0 00.5 0.5 0.53、KPOINTS文件:Automatic generationMonkhorst-Pack9 9 90.0 0.0 0.04、POTCAR文件:(略)(二)计算任务执行方法:输入:dos2unix optencut.shbash optencut.sh(三)判别标准:计算完成后得到comment文件,它列出了在每个ENCUT时计算得到的相应的总能,只要总能变化在0.001 eV左右就足够了。

文档批量处理工具BatchDoc WordBatchDoc Word文档批量处理工具三、选择合适的k点数目:(一)输入文件:1、INCAR文件:SYSTEM = bcc FeENCUT = 450.00 eVISTART = 0 ; ICHARG = 2ISMEAR = -5PREC = Accurate2、POSCAR文件:bcc Fe2.8661.00 0.00 0.000.00 1.00 0.000.00 0.00 1.002Direct0 0 00.5 0.5 0.53、用脚本程序optkpoints.sh代替KPOINTS文件:rm WAVECARfor i in 5 7 9 11 13 15docat > KPOINTS <<!Automatic generationMonkhorst-pack$i $i $i0.0 0.0 0.0!echo k mesh = $i x $i x $i; time vaspE=$(grep TOTEN OUTCAR | tail -1| awk '{printf _x0012_.6f \n, $5}')KP=$(grep irreducible OUTCAR | tail -1| awk '{printf %5i \n, $2}')echo $i $KP $E >> commentdone4、POTCAR文件:(略)(二)计算任务执行方法:输入:dos2unix optkpoints.shbash optkpoints.sh(三)判别标准:计算完成后得到comment文件,它列出了在k点数目与总能的对应值,只要总能变化在0.001 eV左右就非常足够了。

文档批量处理工具BatchDoc WordBatchDoc Word文档批量处理工具四、优化选择合适的SIGMA值(展宽σ值):(一)为什么要优化SIGMA值?若展宽σ太小,则计算难以收敛;若展宽σ太大,则会产生多余的熵(entropy),因此必须选择合适的σ值。

(Too large smearing-parameters might result in a wrong total energy, small smearing parameters require a large k-point mesh.)(二)ISMEAR和SIGMA:1、ISMEAR和SIGMA这两个关键词要联合起来使用,前者用来指定smearing 的方法,后者用来指定smearing的展宽——σ值。

2、ISMEAR和SIGMA的默认值分别为1和0.2。

3、ISMEAR可能的取值为-5,-4,-3,-2,-1,0,N (N表示正整数):ISMEAR=-5,表示采用Blochl修正的四面体方法;ISMEAR=-4,表示采用四面体方法,但是没有Blochl修正;ISMEAR=-1,表示采用Fermi-Dirac smearing方法;ISMEAR=0,表示采用Gaussian smearing方法;ISMEAR=N,表示采用Methfessel-Paxton smearing方法,其中N是表示此方法中的阶数,一般情况下N取1或2, 但是In most casesandleads to very similar。

results4、σ值一般在0.1~0.3 eV范围内。

5、ISMEAR取值的一些经验:(1)一般说来,无论是对何种体系,进行何种性质的计算,采用ISMEAR=0并选择一个合适的SIGMA值,都能得到合理的结果。

(2)在进行静态计算(能量单点计算, )或态密度计算且k点no relaxation in metals 数目大于4时,取ISMEAR=-5。

(3)当原胞较大而k点数目较小(小于4个)时,取ISMEAR=0,并选择一个合适的SIGMA值。

(if the cell is too large (or if you use only a single or two k-points) use ISMEAR=0 in combination with a small SIGMA=0.05)(4)对半导体或绝缘体,不论是静态还是结构优化计算,都取ISMEAR=-5。

相关文档
最新文档