VASP参数设置详解解读
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
–等等。
主要参数说明如下:
✍SYSTEM:该输入文件所要执行的任务的名字。
取值:字符串,缺省值:SYSTEM
✍NWRITE:输出内容详细程度。
取值:0~4,缺省值:2
如果是做长时间动力学计算的话,最好选0或1(首末步/每步核运动输出),短时运算用2,选3则会在出错的时候给出说明信息。
✍ISTART:决定是否读取WA VECAR文件。
取值:0~2,缺省0/1 for无/有前次计算的WA VECAR(波函数)
0:begin 'from scratch',根据INIWA V初始化波函数
1:restart with constant energy cut-off,从WA VECAR读取波函数(重定义平面波集)2:restart with constant basis set,从WA VECAR读取波函数(平面波集不变)
✍ICHARG:决定如何建立初始电荷密度。
取值:0~2,缺省值: if ISTART=0 2 else 0 0:由初始波函数计算电荷密度
1:从CHGCAR文件读取电荷密度
2:使用原子电荷密度的叠加
+10非自洽计算
✍ISPIN:是否进行spin polarized calculation。
取值:1,2(1-no,2-yes),缺省值:2
✍MAGMOM:在ICHARG=2或在CHGCAR中未包含磁化密度(ICHARG=1)时,指定每个原子的初始磁化时刻。
取值:实数数组,缺省值:对ISPIN=2 NIONS*1.0,对非共线型磁化体系3*NIONS*1.0
✍INIWA V如何设置初始波函数,只在ISTART=0时使用。
取值:0,1(0-最低动能的平面波,1-随机数),缺省值:1。
✍IDIPOL控制计算单极、偶极和四极修正。
取值:1~4。
1~3只计算第一/二/三晶矢方向,适于厚板(slab)的计算
4所有方向都计算,适于计算孤立分子
✍PREC进动(precession)。
取值:low/medium/high/normal/ accurate/single),缺省值: Normal(VASP.4.X);Medium(VASP.5.X)
V ASP4.5+采用了优化的accurate来替代high,所以一般不推荐使用high。
不过high可以确保“绝对收敛”,作为参考值有时也是必要的。
同样受推荐的是normal,适于作为日常计算选项。
受PREC影响的参数有四类:ENCUT;NGX,NGY,NGZ;NGXF,NGYF,NGZF;ROPT。
如果设置了PREC,这些参数就都不需要出现了,当然直接设置相应的参数也有同样效果。
具体影响效果见p53~54。
✍ENCUT平面波基组的截断能量(eV)。
取值:实数,缺省值:受PREC设置影响,从POTCAR文件中找出相应的ENMAX/ENMIN值来设置。
PREC = Low Medium Accurate Normal
ENCUT = ENMIN ENMAX ENMAX ENMAX
Single High
ENMAX ENMAX*1.3
对于多个元素不同的ENMAX/ENMIN,都取最大值。
该参数非常重要,最好不要手工去设置,除非文献告诉你要用多少,或者经过结果可靠性的验证。
当然,为了测试一下提
交的任务,也不妨先设个较小的值。
✍NGX,NGY,NGZ:控制FFT网格在三个晶矢方向上的格点数量。
✍NGFX,NGFY,NGFZ:控制第二次更精确的FFT网格的格点数量。
也是两类重要的最好不要去动的参数。
在未指定的情况下将根据PREC的设置从POTCAR中自动读取。
PREC=High/Accurate,基组中向量的2倍值,用来避免wrap around errors,得到精确解。
PREC=Low/Medium/Normal,基组中向量的3/4倍值(已足够精确到1 meV/atom)。
✍LREAL:决定投射是在实空间还是倒易空间进行。
取值:.TRUE.(实空间)/.FALSE.
(倒易空间),缺省值:.FALSE.
用于求解赝势的非局域部分用到的一个积分,在倒格空间里采用平面波基组求解,在实空间里则采用积分球求解。
其他还有两个选项:O or On,A or Auto。
On和.TRUE.的差别在于是否使用King-Smith算法优化,设为Auto则进行自动选择,推荐使用。
✍ROPT:在LREAL=Auto or On时,优化控制每个核周围的积分球内的格点数。
取值:实数数组
For LREAL=On
PREC=Low, 700 points in the real space sphere (ROPT=0.67)
PREC=Med, 1000 points in the real space sphere (ROPT=1.0)
PREC=High, 1500 points in the real space sphere (ROPT=1.5)
For LREAL=Auto
PREC=Low, accuracy 10-2 (ROPT=0.01)
PREC=Med, accuracy 2*10-3 (ROPT=0.002)
PREC=High accuracy 2*10-4 (ROPT=2E-4)
✍NELM, NELMIN and NELMDL:控制电子自洽循环步数。
取值:整数NELM:电子自洽循环最大次数。
缺省值:60
NELMIN:电子自洽循环最小次数。
缺省值:2
NELMDL:弛豫次数。
缺省值:if ISTART=0, INIW A V=1, and IALGO=8,-5,if ISTART=0, INIW A V=1, and IALGO=48,-12,else 0
NELMDL可以取负值。
如果初始波函数采用随机赋值,即ISTART=0,INIW A V=1,那么很可能开始的值比较离谱,那么在第一步核运动循环之前采用NELMDL(负值)步的非自洽(保留初始的H)步计算将减少计算所需的时间。
✍EDIFF:指定电子自洽循环的全局中断条件,用于控制收敛精度。
取值:实数,缺省值:10-4
注意,即使EDIFF=0,NELM步电子自洽循环也会执行。
✍EDIFFG:指定离子弛豫循环的中断条件,用于控制核运动的收敛精度。
取值,实数,缺省值:10*EDIFF
EDIFFG>0在两个离子步的总自由能之差小于EDIFFG时停止
EDIFFG<0在所有的力都小于EDIFFG时停止。
EDIFFG=0在NSW步弛豫后停止
此参数不支持MD,仅用于弛豫。
✍NSW:给出最大离子步数。
取值:整数,缺省值:0。
✍NBLOCK,KBLOCK:取值:整数,缺省值:NBLOCK = 1,KBLOCK = NSW 在NBLOCK离子步后对成对相关函数和DOS进行计算,并且把离子配置写入XDATCAR文件。
在KBLOCK*NBLOCK步主循环后平均的成对相关函数和DOS被写入PCDAT 和DOSCAR文件。
✍IBRION:决定离子怎样更新和运动。
取值:-1~3,5~8(-1-无更新,0-MD,1-RMM-DIIS,2-共轭梯度算法,3-Damped MD,5,6:有限差分,7,8:密度函数扰
动理论),缺省值:if NSW=0/1,-1,else 0
这个参数是和ISIF, IALGO/ALGO一起决定怎么算的最重要的参数。
1~3是三种弛豫的方法,根据ISIF决定是否固定离子位置、晶胞大小和形状,在INCAR中必须设置参数POTIM。
0是标准的ab-initio MD,不受ISIF影响,即不改变晶胞大小和形状。
5~8支持Hessian Matrix和phonon frequency的计算以及部分固定的MD。
✍POTIM:IBRION=0时,给出MD每步步长(fs),IBRION=1~3时,给出最小化的度量常量。
取值:实数,缺省值:IBRION=0无缺省,必须指定,IBRION=1,2,3 0.5
✍ISIF:决定是否计算应力张量以及弛豫中晶胞变化的自由度。
取值:0~6,缺省值:if IBRION=0(MD) 0 else 2
ISIF│calculate│calculate │relax│change │change │force │stress tensor│ions │cell shape│cell volume
----┼-------┼-----------┼------┼---------┼---------0│yes │no │yes │no │no 1│yes │ trace only │yes │no │no
2 │yes │yes │yes │no │no
3 │yes │yes │yes │yes │yes
4 │yes │yes │yes │yes │no
5 │yes │yes │ no │yes │no
6 │yes │yes │ no │yes │yes
7 │yes │yes │ no │no │yes
trace only means that only the total pressure is correct
✍IWA VPR:决定波函数和/或电荷密度怎样从一个离子配置向下一个离子配置进行推测。
取值:0~3,10~13(0-无推测,1,11-用原子电荷密度进行简单推测,2,12-二阶推测,3,13-混合前两种方法),缺省值:ifIBRION=0(MD),1,2(relaxation) 2 else(静态计算) 0
推测结果保存在外部文件TMPCAR中,取值+10则全部使用内存,不保存此文件。
✍ISYM:决定是否使用对称性。
取值:-1~3(-1,0-不使用,1,2,3-使用),缺省值:if使用US-PP 1,if使用PAW 2
ISYM=2使用一种效率更高也更节省内存的电荷密度对称性,ISYM=3时仅考虑力和应力张量的对称性,而电荷密度是非对称的。
✍SYMPREC:决定POSCAR文件中给出的位置的精度。
取值:实数,缺省值:10-5
✍LCORR:决定是否对非完全自洽计算中的力进行Harris修正。
取
值:.TRUE./.FALSE.,缺省值:.TRUE.
✍TEBEG, TEEND:控制从头分子动力学计算中的起始温度和最终温度(MD有效)。
取值:实数,缺省值:TEBEG = 0 TEEND = TEBEG
注意VASP的温度定义与实际温度有细微的差别,所以TEBEG=T×(N-1)/N,T 为实际要求的温度,N为原子数。
✍SMASS:控制从头MD中的速度。
取值:-3~0,缺省值:-3微正则系综(总自由能不变),-2保持初速度不变,-1每NBLOCK步调整速度,来保证动能连续,>=0 Nosé算法模拟正则系综
✍NPACO:成对相关函数的槽数。
取值:整数,缺省值:256
✍APACO:成对相关函数求值中的最大距离(?)。
取值:整数,缺省值:16简单说就是在不超过APACO的NPACO个距离上求成对相关函数PCF。
✍RWIGS:给出Wigner-Seitz半径,DOS计算用。
取值:实数数组,缺省值:从POTCAR 文件中读取
✍NELECT:总电子数,如果系统不是电中性的就必须设置,所带电荷作为均一的背景电子气考虑。
取值:实数,缺省值:-(价电子数),由POSCAR和POTCAR文件自动决定(通常不必给出)。
✍NUPDOWN上下自旋成分间的电子数之差。
取值:整数,缺省值:未设置(此时将进行完全弛豫)
✍EMIN, EMAX:DOS求值的最小/最大能量。
取值:实数,缺省值:EMIN = - (lowest KS-eigenvalue -Δ),EMAX = - (highest KS-eigenvalue -Δ)
✍ISMEAR:决定每个波函数的部分占位f nk如何设置。
取值:-5 | -4 | -3 | -2 | 0 | N(-5-带有Blochl修正的四面体方法, -4-不带Blochl修正的四面体方法, -3-根据INCAR文件中提供的smearing参数执行循环,-2-从WA VECAR文件中读取,
-1-Fermi-smearing, 0-Gaussian smearing, >0-method of Methfessel-Paxton order N,缺省值:1
采用部分占位波函数,用一个函数来平滑积分,尤其是对于金属体系可减少k 点。
✍SIGMA:决定smearing的宽度(eV)。
取值:实数,缺省值:0.2
✍ALGO:指定电子最小化算法。
取值:Normal(blocked Davidson block iteration scheme)/VeryFast(RMM-DIIS)/Fast (前两个算法的混合)/All(波函数的所有带同时更新)/ Damped(damped velocity friction algorithm),缺省值: Normal
✍IALGO:指定主算法(整数选择算法)。
取值:8(共轭梯度算法)/38(Davidson block iteration scheme)/48(RMM-DIIS),缺省值:38
算法是最重要的参数之一。
一般VASP推荐使用的是以上三种算法,一般来说8/38是初期比较快收敛,在接近平衡时采用48较快,在初期或MD时使用48可能会遇到不收敛的情况。
也可以使用ALGO参数来替代IALGO,设置Fast,V ASP会先用38,再自动切换到48。
各种算法只要收敛,结果应该一致。
另一个可能有用的选项是-1。
不进行实际的计算,只对重要的步骤做计算测试,并将测试得到的各部分耗时输出到OUTPUT中。
✍VOSKOWN:决定是否使用VWN插值算法。
取值:0(不使用)/1(使用),缺省值:0
如果使用了PW91泛函或需要计算磁性质时可以设为1使用。
✍Mixing-tags:
♦IMIX:混合的类型,取值:整数,缺省值:4
♦AMIX:线性混合参数。
取值:实数,缺省值:0.8(US-PP),0.4(PAW)♦AMIN:最小混合参数。
取值:实数,缺省值:0.1
♦BMIX:Kerker混合方案的截断波向量。
取值:实数,缺省值:1.0
♦AMIX_MAG:磁化过程的线性混合参数。
取值:实数,缺省值:1.6
♦BMIX_MAG:磁化过程的Kerker混合方案的截断波向量。
取值:实数,缺省值:1.0
♦WC:Broyden混合方案中每步的加权因子。
取值:实数,缺省值:1000.0♦INIMIX:Broyden混合方案中的初始混合类型。
取值:整数,缺省值:1♦MIXPRE:Broyden混合方案中的预处理类型。
取值:整数,缺省值:1
♦MAXMIX:Broyden混合器中存储的最大步数。
取值:整数,缺省值:-45值得注意的是,在MD或者弛豫的时候,设置MAXMIX(>0,一般约3倍的电子SC步数)可能会大大减少核运动步数,但同时也会增加对内存的要求。
✍LWA VE,LCHARG:决定是否把波函数(或电荷密度)写入外部文件WA VECAR (或CHGCAR和CHG)中。
取值:.TRUE./.FALSE.,缺省值:.TRUE.
✍LVTOT:决定是否把总局域势写入外部文件LOCPOT中。
取值:.TRUE./.FALSE.,缺省值:. FALSE.
✍LELF:决定是否创建ELFCAR文件。
取值:.TRUE./.FALSE.,缺省值:. FALSE.
ELFCAR用于保存ELF(electron localization function)。
✍LORBIT:和适当的RWIGS一起决定是否创建PROCAR或PROOUT文件。
取值:
0 | 1 | 2 | 5 | 10 | 11 | 12,缺省值:0(创建DOSCAR和PROCAR文件)
✍NPAR:用于控制VASP切换到带间并行模式。
取值:整数,缺省值:总节点数。
每一个节点计算一个带,可以提高并行效率,减少通讯量,但可能会大幅增加内存的需求。
✍NBANDS:给出计算中实际的总能带数。
取值:整数,缺省值:NELECT/2+NIONS/2(非自旋),0.6*NELECT + NMAG(自旋)
NBANDS的取值应使计算中包含相当数量的空带。
因为计算需要大量的空带,至少要求1个空带(否则VASP会给出警告)。
NBANDS对于解决内存需求非常重要。
一般NBANDS在NELECT/2+NIONS/2以上可以得到较为精确的结果,但如果内存不够就只能减少NBANDS,在牺牲精度
和体系大小之间平衡了。
POTCAR文件
赝势文件,最重要的输入文件之一。
可以理解为分子力学模拟中的力场文件,但包含的信息更多。
VASP将各元素优化的INCAR里的参数也包含在该文件中,作为支持PREC的缺省选择。
通常各元素的POTCAR文件已经包含在VASP软件包中的赝势库里了,用户需要做的是确定自己具体需要哪几种赝势,然后按照POSCAR文件里的顺序,将所选择的POTCAR文件按顺序连接起来就可以了。
如以下命令:
cat file1 file2 file3 > POTCAR
赝势库中的赝势文件可以分为以下几类:
●根据产生方法的不同有Ultra-soft赝势(USPP)和投影扩充波赝势(PAW);
●根据交换关联函数的不同有LDA(local density approximation)和GGA(generalized
gradient approximation,又可以再分为PW91和PBE);
●根据半芯态的不同元素A的赝势文件还可以分为A,A_sv和A_pv;
●根据选取的不同截断能量(ENMAX)元素A的赝势文件还可以分为A,A_s和
A_h。
VASP的赝势文件放在目录~/vasp/potentials下,该目录又包含五个子目录:pot,pot_GGA,potpaw,potpaw_GGA,potpaw_PBE,其中每个子目录对应一种赝势形式:pot ==> PP, LDA;
pot_GGA ==> PP, GGA;potpaw ==> PAW, LDA;potpaw_GGA ==> PAW, GGA, PW91;
potpaw_PBE ==> PAW, GGA, PBE。
每个目录中每种元素根据截断能量和半芯态的不同还会有多个对应的赝势文件存在。
在具体选取时可以参考各版本同目录下的V_RHFIN和PSCTR文件,这两个文件说明了该版本的赝势是如何生成的。
选好所要使用的赝势之后,进入对应的目录,会看到里面有四个文件:POTCAR.Z,
PSCTR.Z,V_RHFIN.Z和WS_FTP.LOG。
现在需要用到的是第一个,把各元素的该文件解压(zcat POTCAR.Z > file),然后用cp或mv命令把这些文件移到工作目录里,再用cat命令把它们合并到POTCAR中,就得到了我们需要的POTCAR。
注意要记住这里元素的排列顺序,以后在POSCAR文件中各元素的排列就是按照这个顺序。
POSCAR文件
位置文件。
描述所计算体系的晶胞参数、原子个数及晶胞中原子的位置,以及分子动力学计算时原子的初始速度。
POSCAR文件示例:
Si-fcc
5.43
0.00.50 0.50
0.50 0.00 0.50
0.50 0.50 0.00
2
Direct
0.00.00 0.00
0.25 0.25 0.25
POSCAR文件的结构:
第1行:任意文字注释。
第2行:晶格常数(?),也是晶矢的缩放系数,后面所有长度值得自原值除以此值。
a=b=c 时取a即可,否则一般取三者最大值,若取负值,则为晶胞体积(?3)。
第3-5行:定义晶矢。
第6行:每种元素的原子个数,特别注意顺序,要与下面的坐标顺序以及POTCAR中的顺序一致。
第7行:可省略,无需空行。
做动力学时,用于指定是否需要固定部分原子的坐标。
若是,此行以‘S’或者‘s’作为首字母即可。
第8行开始为原子的坐标位置,格式为
option line
coordinate1 of element1
coordinate2 of element1
...
coordinateN of element1
option line
coordinate1 of element2
coordinate2 of element2
...
coordinateM of element2
...
其中,option line指定输入坐标的格式,除了第一个以外,如果后面的输入格式同前,则都可以无空行省略。
option line可指定的输入坐标格式有两种:
‘D’or‘d’for direct mode
‘C’or‘c’or‘K’or‘k’for cartesian mode
顾名思义,前者是定义在三个晶矢方向上的坐标:R=R1×x+ R2×y +R3×z,R1,R2,R3为前面的晶矢,x,y,z为输入的三个坐标,R为原子坐标位矢,是相对于晶矢给出的,而后者则是以笛卡尔坐标系来给出原子的绝对坐标,实际就是将直角坐标除以前面第二行定义的晶胞常数后得到的坐标值。
如果第7行设定为S(Selective Dynamic),则可以用以下形式定义各坐标是否可以移动:Selective dynamics
Cartesian
0.00 0.00 0.00 T T F
0.25 0.25 0.25 F F F
KPOINTS文件
设置布里渊区k点网格取样大小或能带结构计算时沿高对称方向的k点。
一般来说,k点越密越多,计算精度也就越高,但计算成本也会越高。
因此,对于原子数较多的体系的计算,需要谨慎的尝试k点数目,在避免或者预先评估wrap-around error的前提下尽量减少k点数目。
KPOINTS文件示例:
k-points along high symmetry lines
11
Reciprocal
0.00 0.00 0.00 1.00
0.05 0.00 0.05 1.00
……
0.05 0.00 0.50 1.00
KPOINTS文件结构:
第1行:注释行。
第2行:k点总数,或者‘0’(自动生成网格(Automatic k-mesh generation))。
如果是前者,给出k点总数,又分为两种情况:
M:全手动(Entering all k-points explicitly),手动输入即自定义各个k点的坐标和权重,推荐只在能带计算时使用。
此时:
第3行:输入格式标识。
直角坐标(Cartesian)或倒易坐标(Reciprocal)。
同样的,‘c’、‘C’、‘k’、‘K’for Cartesian,其他首字母则自动切换到Reciprocal。
第4~n行:逐个k点的坐标描述。
格式为“x y z W”。
其中“x y z”是该点的三个坐标,W 是权重。
所有k点的权重相互之间的比例对了就行,VASP会自动归一的。
注意C坐标和R坐标的定义:
C:k=(2π/a)(x y z)
R:k=x*b1+y*b2+z*b3(b1-b3为倒易晶矢)
这里“x y z”只是代表了坐标的顺序,与坐标轴无关。
一般如非必要,可以先用自动模式生成k点,VASP会自动生成一个简约化后的k点矩阵,存于IBZKPT文件,可以直接复制里面的数据到KPOINTS文件中使用,这也是该输入法的主要用途,可以减少重复自动生成格点的时间。
另一个用途是为了做精确的DOS(Density of status)计算,由于这类计算所需的k点数极大,通过全手动尽可能的优化k点也就必需了。
L:半手动/线形模式(Line-mode):在计算能带结构时使用,此时需要精确地选取k点,在指定的高对称性方向上生成指定数目的k点。
此时:
第2行:指定两点间生成的k点数,不同于全自动的总k点数。
第2.5行:‘L’表示是线形模式。
第3行:输入格式标识,同前。
第4~n行:每行描述一个点,格式为“x y z”。
每两行的点连成一条直线,在两点间生成指定数目的k点。
每隔两行间以空行区分,例如:
k-points along high symmetry lines
10
Line-mode
Reciprocal
0 0 0
0.5 0.5 0
0.5 0.5 0
0.5 0.75 0.25
最常用的方法是让程序自动生成k点网格,用户只需定义网格取样大小即可。
此时:第2行:0
第3行:生成k点的方法。
“A”:全自动模式,可以看作以Г点为圆心以l为半径做圆,当然各晶矢不同时,相应的圆就被拉成了椭圆,以确保三个倒格晶矢方向上覆盖的k点数都为l
“G”:Г/Gamma方法
“M”:Monkhorst-Pack方法
其它首字母:高级模式,就是用C坐标或R坐标直接输入新的晶矢,一般不使用第4行:在各个晶矢方向上分割各晶矢的点数。
一般为奇数,使得产生的k点是以Gamma 点为中心的。
第5行:是否移动网格点以及移动多少,也即偏移原点的位矢,一般设成“0 0 0”,表示不移动。
例如:
Automatic generation
Monhkorst-Pack
99 9
0.0 0.0 0.0
VASP的输出文件主要包括:
OUTCAR:包含运行VASP作业后得到的绝大部分计算结果以及每步迭代的详细
情况;
●CHG, CHGCAR:给出体系的电荷密度。
两个文件内容相同,但前者的数据精度比
后者略低一些;
●DOSCAR, EIGENVAL:分别给出所计算体系的电子态密度和本征值。
两个文件中
的能量值都是绝对的;
●WA VECAR:给出所计算体系的电子波函数,二进制文件,不可编辑;
●OSZICAR:包含每次迭代或离子移动情况的简单汇总;
●CONTCAR:给出离子进行弛豫时,每次移动后体系的晶格参数,与POSCAR内
容相同;
●PCDAT, XDATCAR:给出有关分子动力学模拟中的一些结果,如配对相关函数;
0人| 分享到:
阅读(197)|评论(0)|引用(0)|举报
[交流]【活动or资源】vasp晶体结构优化
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
youzhizhe(金币+10): 活动奖励。
2011-05-26 14:34:11
youzhizhe:标题高亮活动贴。
2011-05-26 14:34
youzhizhe:版主推荐 2011-05-26 15:03
youzhizhe:单行区域置顶 2011-05-26 15:07
贺仪:关闭主题修改中! 2011-05-26 15:19
贺仪:打开主题编辑,美化完毕! 2011-05-26 15:49
youzhizhe:版主推荐(有效期40天) 2011-05-26 16:40
youzhizhe:退还金币50个 2011-07-18 14:56
结构优势是我们做计算的的第一步,往往也是最重要的一步,一个不合理的结够优化可能导致错误的结果。
在论坛里面也有很多虫子们问关于结构优化的问题,貌似大家对结构优化不是很有把握。
我在这里开贴只是抛砖引玉,希望大家积极交流。
下面是我的结构优化的一些经验,希望对大家有点用
第一步:
可以用VESTA打开cif文件直接保存为vasp格式就可以,三楼youzhizhe
另一种方法:
建模一般都是MS建好之后修改*.cell文件得到POSCAR具体的方法参考站内的信息(没找到最开始的网页,谁找到了贴上来)
这是*.cell文件的内容
%BLOCK LATTICE_CART
7.365858463230930 0.816888331419153 1.518567634398170
0.000000000000000 7.749147189276010 0.114969347281651
0.000000000000000 0.000000000000000 16.835000015679299
%ENDBLOCK LATTICE_CART
%BLOCK POSITIONS_FRAC
H 0.1045034131293120 0.0506482790444403 0.1503325580937660
H -0.2037023292911190 0.2015583952382200 0.1604502537744340
H -0.4269999607791240 0.3837162987940400 0.0980194481736503
H -0.3453870956286900 0.4791801646100701 -0.0460018173909388
H 0.2784615598004869 0.2515795170279700 -0.1346530187895070
H 0.2619963944132780 -0.5890935655390530 0.3725661174512691
H 0.2595685601772050 -0.5519954246490220 0.1897443712411160
H 0.0767881789054980 -0.6048204220967270 0.2666625899874510
H 0.2771409424864049 -0.7522385903899170 0.2411634679797081
H 0.5634931211089379 -0.7084903644666670 0.2828144510356441
H 0.5814851393159790 -0.5287740945641601 0.3433449582781520
H 0.5793331415735910 -0.5003094920852541 0.2386888180011851
H 0.4946819829083929 -0.2212541120652400 0.3755202742234630 ……………………
%ENDBLOCK POSITIONS_FRAC
%BLOCK KPOINTS_LIST
0.0000000000000000 0.0000000000000000
0.2500000000000000 1.000000000000000
%ENDBLOCK KPOINTS_LIST
%BLOCK CELL_CONSTRAINTS
1 2 3
………………………………
把第一行
%BLOCK LATTICE_CART
改成SYSTEM=GRPHENE(你体系的名称可以随便写)
然后后面填一行1
再把
%ENDBLOCK LATTICE_CART
%BLOCK POSITIONS_FRAC
改为
H C N Si (原子的类型)
52 42 2 2 (原子的数目)
Direct (坐标表示的方式,对于这种方法,只能用D)
然后把后面的原子符号H C 等去掉
H -0.0000000000000000 -0.0000000000000001 0.7500000000000000
C 0.1666666666666668 0.0833333333333332 0.7500000000000000
把
%ENDBLOCK POSITIONS_FRAC以后的全部删掉就行了
保存为POSCAR 就可以了
此时要注意保存的格式使用unix格式,ultredit可以选择保存格式,如果用记事本编辑的话,所有的行前不能有空格(从*.cell里面复制过来的空格,自己加的没关系)否则提示找不到原子,论坛里面有很多这样的问题。
第二步:
开始结构优化了,我们一般使用脚本来实现,这里使用的是侯老师所说的方法,体积与能量的曲线然后拟合去能量最小的体积进行进一步优化。
先讲能量与体积的曲线怎么得来的。
INCAR最主要是设置
PREC = M # medium, high low
ISTART = 0 # job : 0-new 1-cont 2-samecut
ICHARG =2 # charge: 1-file 2-atom 10-const
EDIFF = 0.1E-04 # stopping-criterion for ELM(对于大的体系是设置0.1E-03)
NSW = 1000 # number of steps for IOM
IBRION = 2 # ionic relax: 0-MD 1-quasi-New 2-CG
ISIF = 4 # stress and relaxation
对于大的体系可以设置
IALGO=48
ALGO= Very Fast
如果速度还不行可以设置POTIM= 0.1
KPOINTS
A
M
4 4 4(体积大的可以弄小一点,这个没试过,但是感觉一个点可能有点问题)
下面开始POSCAR
侯老师也说过这个方法,在手册里面这也是有的
其实就是通过取不同大小的晶胞分别优化,取能量做图。
很多虫子们总是在问怎么建立,还有说对于,有三个轴的怎么取晶格常数,在这里如果你采用我这里的方法就不用了(但是在INCAR里面必须设置ISIF=4),为什么呢?我们通过刚才建立POSCAR 里面晶格常数1来实现,改变晶胞的大小就可以了。
有脚本,POSCAR 就不需要了,但是刚才编辑的POSCAR 还是有用的(其实这就是产生POSCAR 的脚本),这个脚本是vasp的说明书里面的
写脚本rvasp
内容如下:
for i in 1.00 1.01 1.02 0.99 0.98
do
cat >POSCAR <
$i
7.365858463230930 0.816888331419153 1.518567634398170
0.000000000000000 7.749147189276010 0.114969347281651
0.000000000000000 0.000000000000000 16.835000015679299
H C N Si
52 42 2 2
Direct
0.1045034131293120 0.0506482790444403 0.1503325580937660
-0.2037023292911190 0.2015583952382200 0.1604502537744340
-0.4269999607791240 0.3837162987940400 0.0980194481736503
-0.3453870956286900 0.4791801646100701 -0.0460018173909388
0.2784615598004869 0.2515795170279700 -0.1346530187895070
0.2619963944132780 -0.5890935655390530 0.3725661174512691
0.2595685601772050 -0.5519954246490220 0.1897443712411160
0.0767881789054980 -0.6048204220967270 0.2666625899874510
0.2771409424864049 -0.7522385903899170 0.2411634679797081
0.5634931211089379 -0.7084903644666670 0.2828144510356441
0.5814851393159790 -0.5287740945641601 0.3433449582781520
0.5793331415735910 -0.5003094920852541 0.2386888180011851
0.4946819829083929 -0.2212541120652400 0.3755202742234630 ……………………
!
echo "a= $i" ;mpirun -np 24 vasp
E=`tail -1 OSZICAR`;
echo $i $E >>SUMMARY
cp CONTCAR CONTCAR$i
done
最前面
for i in 1.01 1.01 1.02 0.99 0.98 (设置的体积比例,体积比例是 i 的3次方)do
cat >POSCAR <
这里面
SYSTEM=TN-PEN
$i
7.365858463230930 0.816888331419153 1.5185676343 98170
0.000000000000000 7.749147189276010 0.1149693472 81651
0.000000000000000 0.000000000000000 16.8350000156 79299
H C N Si
52 42 2 2
Direct
0.1045034131293120 0.0506482790444403 0.1503325580937660
-0.2037023292911190 0.2015583952382200 0.1604502537744340
-0.4269999607791240 0.3837162987940400 0.0980194481736503
-0.3453870956286900 0.4791801646100701 -0.0460018173909388
0.2784615598004869 0.2515795170279700 -0.1346530187895070
0.2619963944132780 -0.5890935655390530 0.3725661174512691
0.2595685601772050 -0.5519954246490220 0.1897443712411160
0.0767881789054980 -0.6048204220967270 0.2666625899874510
0.2771409424864049 -0.7522385903899170 0.2411634679797081
0.5634931211089379 -0.7084903644666670 0.2828144510356441
0.5814851393159790 -0.5287740945641601 0.3433449582781520
0.5793331415735910 -0.5003094920852541 0.2386888180011851
0.4946819829083929 -0.2212541120652400 0.3755202742234630 ……………………
这些都是刚才制作的POSCAR ,只有那个第二行$i 改了一下
后面这些
!
echo "a= $i" ;mpirun -np 24 vasp (24 是核数)
E=`tail -1 OSZICAR`; echo $i $E >>SUMMARY (注意那个`是tab键上的那个,非单引号)cp CONTCAR CONTCAR$i (这一步是我加的,把优化好的复制出来,为了下一步优化节省时间)
done
脚本rvasp写好以后,最好dos2unix一下再改变一下权限chmod +x rvasp ,最后运行./rvasp 即可
第三步:
运行脚本以后在SUNMMRY可以找到体积比例与对应的能量,我们未必一定把体积算出来,用体积比例可以得到拟合曲线,具体做法,把数据放入origin,然后选中数据在analysis里面,选择fiting,一般设置二次项拟合,找到能量最小值
第四步:
把能量最小值对应的体积比例找出来,把得到的类似CONTCAR1.01(后面那个数据是体积比例,选择一个离你拟合相差最小的一个)放到POSCAR中(cp CONTCAR1.01 POSCAR),(如果你最开始选择的体积比例间隔比较大的大,想得到更加精确的体积比例,就把CONTCAR1.01的内容复制到rvasp脚本,替换掉中间部分,然后再在for i in 后面设置你的体积比例,一般两次都能找到比较好的体积比例)
第五步:
设置INCAR如下
PREC = M # medium, high low
ISTART = 0 # job : 0-new 1-cont 2-samecut
ICHARG =2 # charge: 1-file 2-atom 10-const
EDIFF = 0.1E-05 # stopping-criterion for ELM(对于大的体系是设置0.1E-03)
EDIFFG= -0.001
NSW = 1000 # number of steps for IOM
IBRION = 2 # ionic relax: 0-MD 1-quasi-New 2-CG
ISIF = 3 # stress and relaxation (这里变为3,是因为我们拟合的未必是最合适的,通过这个参数可以适当调节到更好)
后面的可以不要了,如果算不动加上也无妨,但是最后一次优化精确点好。
里面的收敛标准看你自己定,上面的可以满足大部分的要求,但是如果对构型要求不严格的话可以适当调低点收敛标准(EDIFF = 0.1E-04 EDIFFG= 0.01),具体的收敛标准可以查看
/bbs/viewthread.php?tid=2512497
KPOINTS可以加大数量,但是也没什么太大的必要
A
M
4 4 4
POSCAR 就是第四步得到的
输入vasp计算
这一步运行结构优化就可以!但是一定要查看OUTCAR中关于原子受力的信息,如果有个别受力太大的话还是不行的,要继续优化,使用最后一步就行了。
如果有什么意见或者错误,欢迎大家指正!也希望大家能够积极参与讨论!
资源]【原创】关于结构优化的总结,体会
★ ★ ★ ★
小木虫(金币+1):奖励一下,鼓励发有价值的话题
youzhizhe:标题高亮 2011-01-04 09:54
youzhizhe(金币+3):鼓励原创。
2011-01-04 09:56:20
youzhizhe:设置为资源贴谢谢交流。
2011-01-04 09:56
cenwanglai:呵呵,有空再补充完全,发个长贴,到时作为精华贴。
2011-01-05 10:04:16
之前也有做结构优化,但是一直不太理解。
最近导师让我重新优化结构,结果被训的比较惨,之前的理解全部错误,还好基本算是被导师点通了吧。
现在把我从导师那得来的知识还有我自己的总结跟大家分享一下,希望对大家有帮助。
优化晶格常数,晶格常数取不同的值,最后得到晶格常数和能量的关系,再利用murn.f程序进行处理(murn.f只是针对立方相的),i取不同的值最后得到不同的体积,假设i=1
对应的体积是V0,通过拟合可以得到最低的体积,但是这一点不一定对应你所取的i值,这样我们可以通过计算得到最小体积下的i值,i=(V/ V0)^3(这里标示开三次方)。
得到最低能量下的体积对应的i值之后,再把i值代入运行一次,对结构参数进行优化。
注意:不可单独对某一个结构参数(a,c)进行优化(这是我开始犯得错误),当你固定一个参数优化另一个参数的时候,你不能保证弛豫之后的力为0
关于vasp收敛和优化
作者: bjmaowei25(站内联系TA)收录: 2012-03-02 发布: 2012-02-24
请问一下,关于vasp收敛,用能量来衡量,到什么程度可以算是收敛呢?另外,如果刚开始精度不高,初始的晶体结构不好,需要的时间长,收敛后再优化,将CONTCAR
复制到POSCAR在原目录下运行,其它的文件如WAVECAR 需要删除吗?cavediger(站内联系TA)
1.收敛精度要看你的要求和计算的性质,不知道时就先用默认值
2.优化收敛与否就是看是否达到了你的要求,一般可以取少数k点,待收敛后,。