VASP(计算前的各种测试)

合集下载

VASP参数设置详解解读

VASP参数设置详解解读

VASP参数设置详解计算材料2010-11-30 20:11:32 阅读197 评论0 字号:大中小订阅转自小木虫,略有增减软件主要功能:采用周期性边界条件(或超原胞模型)处理原子、分子、团簇、纳米线(或管)、薄膜、晶体、准晶和无定性材料,以及表面体系和固体l 计算材料的结构参数(键长、键角、晶格常数、原子位置等)和构型l 计算材料的状态方程和力学性质(体弹性模量和弹性常数)l 计算材料的电子结构(能级、电荷密度分布、能带、电子态密度和ELF)l 计算材料的光学性质l 计算材料的磁学性质l 计算材料的晶格动力学性质(声子谱等)l 表面体系的模拟(重构、表面态和STM模拟)l 从头分子动力学模拟l 计算材料的激发态(GW准粒子修正)计算主要的四个参数文件:INCAR ,POSCAR,POTCAR ,KPOINTS,下面简要介绍,详细权威的请参照手册INCAR文件:该文件控制VASP进行何种性质的计算,并设置了计算方法中一些重要的参数,这些参数主要包括以下几类:对所计算的体系进行注释:SYSTEM●定义如何输入或构造初始的电荷密度和波函数:ISTART,ICHARG,INIWA V●定义电子的优化–平面波切断动能和缀加电荷时的切断值: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–等等。

vasp参数介绍

vasp参数介绍

vasp参数介绍编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(vasp参数介绍)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为vasp参数介绍的全部内容。

内容描述体系: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: 注释所计算的体系,以示说明。

NWRITE:默认值为2,可赋予值为0| 1 | 2 |3 |4。

VASP参数设置详解

VASP参数设置详解

VASP参数设置详解VASP(Vienna Ab initio Simulation Package)是一种用于计算材料和表面的第一性原理分子动力学(MD)和电子结构计算的软件程序。

它是一个功能强大且广泛应用的工具,可用于研究诸如能带结构、电子密度、总能量、力和应力等性质。

为了得到准确的计算结果,合适的参数设置非常重要。

以下是一些关键的VASP参数,以及它们的详细解释。

1.ENCUT(截断能)ENCUT是用于计算波函数的能量截断值。

它控制VASP计算中所使用的平面波基组的能量截断。

较高的截断能可提高计算结果的准确性,但同时也会增加计算的时间和资源消耗。

通常,ENCUT的值应在200到800eV之间选择,并根据体系的特点进行调整。

2.ISMEAR(态的展宽)ISMEAR参数用于控制态的展宽,即Gaussian函数用于展宽费米面附近的电荷分布。

它通常选择为0(对金属材料)或-5(对绝缘体和半导体材料)。

同时,SIGMA参数也需被设置为一个适当的值,以控制态的展宽。

3.IBRION(晶格弛豫类型)IBRION参数用于控制晶格弛豫的类型。

对于静止的体系,IBRION应设置为-1;对于晶胞形状和体积的弛豫,使用2;对于原子位置的弛豫,使用1、此外,ISIF参数用于指定对称性约束的条件,可以根据需要进行设置。

4.NSW(步数)NSW参数用于控制分子动力学(MD)计算中的步数。

步数越大,计算的结果越准确,但计算时间也会随之增加。

根据研究需求,可以选择适当的步数进行计算。

5.EDIFFG(势场截止值)EDIFFG参数用于控制在每个步骤中结构优化时原子之间相对位移的收敛标准。

它表示两个连续构型之间最大原子位移的标准,较小的值通常会导致更精确的结果。

6.KPOINTS(k点网格)KPOINTS参数用于控制在计算布里渊区积分时所使用的k点网格。

它决定了计算的精度和效率。

理想情况下,应选择一个高度对称的k点网格,以保证准确性。

VASP经典学习教程-有用

VASP经典学习教程-有用

VASP 学习教程太原理工大学量子化学课题组2012/5/25目录第一章Linux命令 (1)1.1 常用命令 (1)1.1.1 浏览目录 (1)1.1.2 浏览文件 (1)1.1.3 目录操作 (1)1.1.4 文件操作 (1)1.1.5 系统信息 (1)第二章SSH软件使用 (2)2.1 软件界面 (2)2.2 SSH transfer的应用 (3)2.2.1 文件传输 (3)2.2.2 简单应用 (3)第三章VASP的四个输入文件 (3)3.1 INCAR (3)3.2 KPOINTS (4)3.3 POSCAR (4)3.4 POTCAR (5)第四章实例 (5)4.1 模型的构建 (5)4.2 VASP计算 (8)4.2.1 参数测试 (8)4.2.2 晶胞优化(Cu) (13)4.2.3 Cu(100)表面的能量 (2)4.2.4 吸附分子CO、H、CHO的结构优化 (2)4.2.5 CO吸附于Cu100表面H位 (4)4.2.6 H吸附于Cu100表面H位 (5)4.2.7 CHO吸附于Cu100表面B位 (6)4.2.8 CO和H共吸附于Cu100表面 (7)4.2.9 过渡态计算 (8)第一章Linux命令1.1 常用命令1.1.1 浏览目录cd: 进入某个目录。

如:cd /home/songluzhi/vasp/CH4 cd .. 上一层目录;cd / 根目录;ls: 显示目录下的文件。

注:输入目录名时,可只输入前3个字母,按Tab键补全。

1.1.2 浏览文件cat:显示文件内容。

如:cat INCAR如果文件较大,可用:cat INCAR | more (可以按上下键查看) 合并文件:cat A B > C (A和B的内容合并,A在前,B在后) 1.1.3 目录操作mkdir:建立目录;rmdir:删除目录。

如:mkdir T-CH3-Rh1111.1.4 文件操作rm:删除文件;vi:编辑文件;cp:拷贝文件mv:移动文件;pwd:显示当前路径。

(完整版)vasp常见问题

(完整版)vasp常见问题

最近在学vasp,这篇文章是百度文库找到的,看了不错,转载一把。

另外附上vasp程序,linux中下载后无须安装即可使用.单机中可能会出现内存溢出问题,可以放机群上使用.01、第一原理计算的一些心得(1)第一性原理其实是包括基于密度泛函的从头算和基于Hartree—Fock自洽计算的从头算,前者以电子密度作为基本变量(霍亨伯格—科洪定理),通过求解Kohn—Sham方程,迭代自洽得到体系的基态电子密度,然后求体系的基态性质;后者则通过自洽求解Hartree—Fock方程,获得体系的波函数,求基态性质;评述:K—S方程的计算水平达到了H—F水平,同时还考虑了电子间的交换关联作用.(2)关于DFT中密度泛函的Functional,其实是交换关联泛函,包括LDA,GGA,杂化泛函等等一般LDA为局域密度近似,在空间某点用均匀电子气密度作为交换关联泛函的唯一变量,多数为参数化的CA—PZ 方案;GGA为广义梯度近似,不仅将电子密度作为交换关联泛函的变量,也考虑了密度的梯度为变量,包括PBE,PW,RPBE等方案,BLYP泛函也属于GGA;此外还有一些杂化泛函,B3LYP等。

(3)关于赝势在处理计算体系中原子的电子态时,有两种方法,一种是考虑所有电子,叫做全电子法,比如WIEN2K中的FLAPW 方法(线性缀加平面波);此外还有一种方法是只考虑价电子,而把芯电子和原子核构成离子实放在一起考虑,即赝势法.一般赝势法是选取一个截断半径,截断半径以内,波函数变化较平滑,和真实的不同,截断半径以外则和真实情况相同,而且赝势法得到的能量本征值和全电子法应该相同. 赝势包括模守恒和超软,模守恒较硬,一般需要较大的截断能,超软势则可以用较小的截断能即可。

另外,模守恒势的散射特性和全电子相同,因此一般红外,拉曼等光谱的计算需要用模守恒势。

赝势的测试标准应是赝势与全电子法计算结果的匹配度,而不是赝势与实验结果的匹配度,因为和实验结果的匹配可能是偶然的。

VASP计算方法

VASP计算方法

V ASP计算方法总结1 静态计算计算方法:IBRION = -1NSW = 02 结构优化计算方法:①只进行离子弛豫IBRION = 2ISIF = 2②块体晶格参数优化IBRION = 2ISIF = 3③二维材料晶格参数优化3 表面能计算方法:1) 块体晶体晶格参数优化;静态计算;得能量Eb 2) 优化的块体切slab ;静态计算;得Es1 3) 将slab 模型离子弛豫;静态计算;得Es24) γ = (Es1 – N *(Eb / n ))/ 2A + (Es2 – Es1)/ A 计算步骤:4 功函数计算方法:1) 块体晶格参数优化;切slab 模型;离子弛豫 2) 修改INCAR (LVHAR = .TRUE.);静态计算 3) W = Ve - EF表面能1strustatic2slab 3optislabstatic计算步骤:5 吸附能计算方法:1) 块体和二维材料(D)晶格参数优化 2) 块体切slab ;构建slab 吸附模型3) slab 吸附模型去slab ;二维材料离子弛豫;静态计算 4) slab 吸附模型去二维材料;slab 离子弛豫;静态计算 5) slab 吸附模型离子弛豫;静态计算 6) E abs = E metal-D – E metal – E D 计算步骤:表面能1strustatic2slab3optislabstaticworkfunction吸附能1strustatic 2slab static 3slabDstatic6 差分电荷密度计算方法: 1) 完成吸附能计算2) Slab 吸附模型静态计算时得ρab3) Slab 吸附模型CONTCAR 去slab ;二维材料静态计算得ρa 4) Slab 吸附模型CONTCAR 去二维材料;slab 静态计算得ρb 5) △ρ = ρab – ρa – ρb 计算步骤:7 DOS计算方法: 1) 模型优化完成2) 自洽计算得到CHGCAR (DOS 文件夹下) ISMEAR = -5 LCHARG = .TRUE.吸附能1strustatic 2slabstatic3slabD staticDchargeslabcharge小密度k点(总k点>4)3)非自洽计算得到vasprun.xml(PDOS文件夹下)ISMEAR = -5ISTART = 1ICHARG = 11LORBIT = 11NEDOS = 1000大密度k点计算步骤:DOS PDOS8 能带计算计算方法:1)模型优化完成2)自洽计算得到CHGCAR(同上)ISMEAR = -5LCHARG = .TRUE.小密度k点(总k点>4)3)非自洽计算得到vasprun.xml(BAND文件下)a)INCARISMEAR ≠-5ISTART = 1ICHARG = 11LORBIT = 11NEDOS = 1000大密度k点NBANDS可适当增大b)KPOINTS写syml文件(用pand.x时,E-fermi得重写);gk.x一下计算步骤:DOS PDOS BAND。

vasp计算

11,画CBM和VBM的partial charge,读入静态的WAVECAR,进行处理,此时要设置INCAR,
LPARD = .TRUE.开关
IBAND = 480 481 VBM CBM
NBMOD = 1默认
KPUSE = 1第几个K点
LSEPB = .TRUE. vasp查
LSEPK = .TRUE.
20,计算磁性的体系,设置
IALGO=38
LREAL=F
LPLANE=.TRUE.
GGA_COMPAT = F
LMAXMIX=4
LDAU = .TRUE.
LDAUTYPE = 1
LDAUL = 2 -1
LDAUU = 4 0
LDAUJ = 1 0
LORBIT=11
算得更准
19如果要用wannier算磁性体系。Spin要分开,这是应该用vasp+wannier+soc的版本跑,同时INCAR设置成spin=2的模式,但是LSORBIT不开。跑完会出来up和down,再分别对他们局域化。
phonopy-p-c POSCAR-unitcell band.conf
一般来说,对于金属,或者窄能隙半导体,如果用位移法,则需要很大的胞才能算准,但是用DFPT则可以小包算准。对于金属,PBE可能更好点。
9,如果体系较大,EDIFF达到停止计算,很可能是K点取太多,内存不够。
10, bandplot --gnuplot band.yaml >> phon.dat,用origin做声子谱
16,计算真空能级,功函数。在INCAR里面加入LVTOT= T,然后把LOCPOT复制为PARCHG,第一列写成原子名字,第二个原子名字去掉。运行post_VASP,选7即可得到结果。(如果不收敛,可以加大真空层厚度试试)

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 态密度计算流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 准备输入文件POSCAR:包含晶体结构信息。

POTCAR:赝势文件。

VASP-6-VASP的使用入门


DAV: 6 -0.106949593652E+00 -0.66060E-05 -0.36632E-05 10 0.188E-02
1 F= -.10694959E+00 E0= -.53948205E-01 d E =-.106003E+00
对单个原子的计算
计算完后的结果分析
OUTCAR
➢读入INCAR, POTCAR, POSCAR的信息 ➢原子最近邻表和对称性分析 ➢从INCAR文件中读入的设置 ➢有关作业的信息 ➢有关晶格、k点和原子位置的信息 ➢有关基矢的信息 ➢非局域赝势的信息 ➢每个电子步迭代的信息
DAV: 1 0.389589563746E+01 0.38959E+01 -0.17519E+02 10 0.991E+01
DAV: 2 0.290759302658E+00 -0.36051E+01 -0.36051E+01 20 0.130E+01 DAV: 3 -0.895110055623E-01 -0.38027E+00 -0.34433E+00 15 0.506E+00
对单个原子的计算
计算完后的结果分析
OUTCAR
FREE ENERGIE OF THE ION-ELECTRON SYSTEM (eV) --------------------------------------------------free energy TOTEN = -0.106950 eV
DAV: 6 -0.106949593652E+00 -0.66060E-05 -0.36632E-05 10 0.188E-02
1 F= -.10694959E+00 E0= -.53948205E-01 d E =-.106003E+00
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BatchDoc Word文档批量处理工具 BatchDoc Word文档批量处理工具 (计算前的)验证

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

(三)以计算单个Fe原子为例: 1、INCAR文件: SYSTEM = Fe atom ENCUT = 450.00 eV NELMDL = 5 ! make five delays till charge mixing,详细意义见注释一 ISMEAR = 0 SIGMA=0.1

2、POSCAR文件: atom 15.00 1.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 1.00 1 Direct 0 0 0

3、KPOINTS文件:(详细解释见注释二。) Automatic 0 Gamma 1 1 1 0 0 0

4、POTCAR文件:(略)

注释一:关键词“NELMDL”: A)此关键词的用途:指定计算开始时电子非自洽迭代的步数(即NELMDL gives the number of non-selfconsistent steps at the beginning),BatchDoc Word文档批量处理工具 BatchDoc Word文档批量处理工具 目的是make calculations faster。“非自洽”指的是保持charge density不变,由于Charge density is used to set up the Hamiltonian, 所以“非自洽”也指保持初始的哈密顿量不变。 B)默认值(default value): NELMDL = -5 (当ISTART=0, INIWAV=1, and IALGO=8时) NELMDL = -12 (当 ISTART=0, INIWAV=1, and IALGO=48时) NELMDL = 0 (其他情况下)

NELMDL might be positive or negative. A positive number means that a delay is applied after each ionic movement -- 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 exact BatchDoc Word文档批量处理工具 BatchDoc 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 described more accurately. (三)计算任务执行方法: 输入:vasp

(四)赝势好的判断标准:计算得到的OUTCAR文件中的“energy without entropy”能量值在 0.001~0.01 eV之间。 BatchDoc Word文档批量处理工具

BatchDoc Word文档批量处理工具 二、筛选合适的ENCUT大小: (一)输入文件: 1、用脚本程序optencut.sh代替INCAR文件: rm WAVECAR for i in 100 150 200 250 300 350 400 450 500 550 600 do cat > INCAR > comment done

2、POSCAR文件: bcc Fe 2.866 1.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 1.00 2 Direct 0 0 0 0.5 0.5 0.5

3、KPOINTS文件: Automatic generation 0 Monkhorst-Pack 9 9 9 0.0 0.0 0.0

4、POTCAR文件:(略) (二)计算任务执行方法: 输入:dos2unix optencut.sh bash optencut.sh (三)判别标准:计算完成后得到comment文件,它列出了在每个ENCUT时计算得到的相应的总能,只要总能变化在0.001 eV左右就足够了。 BatchDoc Word文档批量处理工具 BatchDoc Word文档批量处理工具 三、选择合适的k点数目: (一)输入文件: 1、INCAR文件: SYSTEM = bcc Fe ENCUT = 450.00 eV ISTART = 0 ; ICHARG = 2 ISMEAR = -5 PREC = Accurate

2、POSCAR文件: bcc Fe 2.866 1.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 1.00 2 Direct 0 0 0

0.5 0.5 0.5 3、用脚本程序optkpoints.sh代替KPOINTS文件: rm WAVECAR for i in 5 7 9 11 13 15 do cat > KPOINTS > comment done

4、POTCAR文件:(略) (二)计算任务执行方法: 输入:dos2unix optkpoints.sh bash optkpoints.sh (三)判别标准:计算完成后得到comment文件,它列出了在k点数目与总能的对应值,只要总能变化在0.001 eV左右就非常足够了。 BatchDoc Word文档批量处理工具 BatchDoc 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 cases

and leads to very similar results。 4、σ值一般在0.1~0.3 eV范围内。 5、ISMEAR取值的一些经验: (1)一般说来,无论是对何种体系,进行何种性质的计算,采用ISMEAR=0并选择一个合适的SIGMA值,都能得到合理的结果。 (2)在进行静态计算(能量单点计算, no relaxation in metals)或态密度计算且k点数目大于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

相关文档
最新文档