VASP 初学者必读.docx

上传人:b****5 文档编号:4712419 上传时间:2022-12-07 格式:DOCX 页数:14 大小:27.10KB
下载 相关 举报
VASP 初学者必读.docx_第1页
第1页 / 共14页
VASP 初学者必读.docx_第2页
第2页 / 共14页
VASP 初学者必读.docx_第3页
第3页 / 共14页
VASP 初学者必读.docx_第4页
第4页 / 共14页
VASP 初学者必读.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

VASP 初学者必读.docx

《VASP 初学者必读.docx》由会员分享,可在线阅读,更多相关《VASP 初学者必读.docx(14页珍藏版)》请在冰豆网上搜索。

VASP 初学者必读.docx

VASP初学者必读

【转帖】VASP初学者必读

已有2798次阅读2009-8-2809:

59|个人分类:

未分类|系统分类:

科研笔记

转载自htt

初学VASP

(一)what'sit?

VASP=ViennaAb-initioSimulationPackage

VASPisacomplexpackageforperformingab-initioquantum-mechanical

moleculardynamics(MD)simulationsusingpseudopotentials(如超软赝势US-PP)

ortheprojector-augmentedwave(PAW)methodandaplanewavebasisset.

TheapproachimplementedinVASPisbasedonthe(finite-temperature)

local-densityapproximationwiththefreeenergyasvariationalquantity

andanexactevaluationoftheinstantaneouselectronicgroundstateat

eachMDtimestep.

它的好处主要包括

基组小适于第一行元素和过渡金属,

大体系计算快(<4000价电子),

适于平行计算(Unix/Linux)

其他特性还包括自动对称性分析、加速收敛算法另文涉及。

一个简单的VASP作业主要涉及四个输入文件:

INCAR(作业细节)POSCAR(体系坐标)POTCAR(赝势)KPONITS(k空间描述)

初学VASP

(二)布里赫定理

本文简单介绍点能带理论的基础知识以利于后文讨论

布里赫(F.Bloch)参考书:

《固体能带理论》谢希德陆栋主编

Bloch定理

周期性势场的单电子薛定谔方程的非简并解和适当选择组合系数的简并解同时

是平移算符T(Rl)的属于本征值exp(ik•Rl)的本征函数

数学表示:

T(Rl)ψn(k,r)=ψn(k,r+Rl)=exp(ik•Rl)•ψn(k,r)

ψn(k,r)称为Bloch函数,用它描写的电子也称为布里赫电子

推论一:

晶格电子可用通过晶格周期性调幅的平面波表示。

由此我们知道k的物理意义波矢

推论二:

若Km•Rl=2nπ,即Km为倒格矢,那么

ψn(k,r)=ψn(k+Km,r)

所以我们将k值限定在一个包括所有不等价k的区域求解薛定谔方程,这个区域称为

布里渊区(Brillouin,没错,就是量化课上CI方法中最重要的基石Brillouin定理的那位

)在布里渊区,对于每个n,En(k)是一个k的连续、可区分(非简并情况)的函数,称为能带

,所有的能带称为能带结构。

ok那么实际上VASP的计算就是利用以上定理,通过T算符的变换,将实空间(r空间)和动

量空间(k空间)联系起来,利用晶格的周期性简化计算,所以在后面的讨论中将常出现

band,k-points,projectorsinrealspace等概念。

初学VASP(三)描述原子坐标

POSCAR=position+CAR

第1行:

任意文字注释

第2行:

晶格常数,单位A,后面所有的长度值得自原值除以此值

a=b=c时取a即可,否则个人习惯取三者最大

若取负值,则为晶胞体积,单位A3

第3-5行:

定义晶矢参见《固体量子化学——材料化学的理论基础》赵成大

如对于正交晶体a=20.022b=19.899c=13.383α=β=γ=90

可以这样定义

20.022

1.000000.000000.00000

0.000000.993860.00000

0.000000.000000.66841

又如对于面心立方晶体a=b=c=3.57α=β=γ=90

可以定义如下

3.57

0.00.50.5  (1/2(b+c))

0.50.00.5  (1/2(a+c))

0.50.50.0  (1/2(a+b))

第6行:

每种元素的原子数,特别注意顺序,要与下面的坐标顺序以及POTCAR中

的顺序一致

第7行:

可省略,无需空行。

做动力学时,是否需要固定部分离子的坐标。

若是,此行以'S'或者's'首字即可。

第8行开始为离子的坐标,格式为

optionline

coordinate1ofelement1

coordinate2ofelement1

...

coordinateNofelement1

optionline

coordinate1ofelement2

coordinate2ofelement2

...

coordinateMofelement2

...

其中,optionline指定输入坐标的格式,除了第一个以外,如果后面的输入格式同前,

则都可以无空行省略。

optionline可指定的输入坐标格式有两种

'D'or'd'fordirectmode

'C'or'c'or'K'or'k'forcartesianmode

顾名思义,前者是定义在三个晶矢方向上的坐标

R=R1×x+R2×y+R3×zR1,R2,R3为前面的晶矢,x,y,z为输入的三个坐标,R为坐标位矢

而后者只是简单的将直角坐标除以前面第二行定义的晶胞常数

两者可以混用,但不推荐。

如果第7行设定了S(SelectiveDynamic),则可以用以下形式定义各坐标是否可以移动

Selectivedynamics

Cartesian

0.000.000.00TTF

0.250.250.25FFF

初学VASP(四)k点的选择

如前所述

TheBlochtheoremchangestheproblemofcalculatinganinfinitenumberof

electronicwavefucntionstooneofcalculatingafinitenumberof

wavefunctionsataninfinitenumberofk-points.(参见CASTEP的帮助文档,他和

VASP是亲兄弟)。

所以呢,一般来说,k点越密越多,计算精度也越高,当然计算成本也越高。

嗯,对于k点的需求,金属>>半导体,绝缘体,不过呢,很多时候主要还是受硬件限制

简约化可以使k点的数目大大下降。

对于原子数较多的体系的计算,就需要谨慎的尝试  

k点数目,在避免或者预先评估wrap-arounderror的前提下尽量减少k点数目。

另一个问题是k空间网格(k-pointsgrid)的位置和形状,

是否包括Г点(Gamma点,也可理解为原点)?

(一般不包括的话很可能会带来误差,尤其

是使用了tetrahedron方法的时候。

暂时还不知道不包括的好处,为了减少k点?

方形?

线形?

还是长方形?

或者奇形怪状?

后文另述。

那么现在来看看KPOINTSfile的结构:

Line1:

commentline注释行noproblem

Line2:

k点总数或者'0'自动生成网格(Automatick-meshgeneration)

如果是前者,给出k点总数,又分两种情况

M.全手动Enteringallk-pointsexplicitly

Line3:

输入格式标识。

直角坐标(Cartesian)或者倒格坐标(Reciprocal)

  同样的'cCkK'forCartesian,其他首字母则自动切换到Reciprocal

Line4-n:

逐个k点的描述。

格式为xyzW。

xyz是三个坐标,W是权重。

所有k点的权

  重相互之间的比例对了就行,VASP会自动归一的

注意C坐标和R坐标的定义

C:

k=(2π/a)(xyz)R:

k=x*b1+y*b2+z*b3b1-3为倒格基矢

(这里我们看到xyz只是代表了坐标的顺序,与坐标轴无关)

比如一些常用的高对称性点的C和R坐标:

Point  Cartesiancoordinates  Reciprocalcoordinates

      (unitsof2pi/a)      (unitsofb1,b2,b3)

------------------------------------------------------

G      (  0  0  0  )      (  0  0  0  )

X      (  0  0  1  )      (1/21/2  0  )

W      (1/2  0  1  )      (1/23/41/4  )

K      (3/43/4  0  )      (3/83/83/4  )

L      (1/21/21/2)      (1/21/21/2  )

输入示例:

Examplefile

4

Cartesian

0.0  0.0  0.0  1.

0.0  0.0  0.5  1.

0.0  0.5  0.5  2.

0.5  0.5  0.5  4.

一般如非必要,可以先用自动模式生成k点,VASP会自动生成一个简约化后的k点矩阵,

存于IBZKPTfile,可以直接复制里面的数据到KPOINTSfile来用,其实这也是这个输入

法的主要用途,为了减少重复自动生成格点的时间。

另一个用途是为了做精确的DOS(Densityofstatus)的计算,由于这类计算所需k点数极

大,通过全手动尽可能的优化k点也就必需了。

L.半手动/线形模式Stringsofk-pointsforbandstructurecalculations

看到啦,对于能带结构的计算,同前面的理由,需要精确的选取k点,在指定的高对称性

方向上生成指定数目的k点。

Line2:

指定两点间生成的k点数不同于全自动的总k点数

Line2.5:

'L'forLine-mode表示是线形模式

Line3:

输入格式标识。

同前。

CorR

Line4-n:

每行描述一个点格式为xyz。

每两行的点连成一线,在两点间生成指定数

目的k点。

每两行两行之间以空行区分(不空的话,VASP可能也认得出,没试过)

比如:

10  !

10intersections

Line-mode

rec

  0  0  0  !

gamma

  0.50.50  !

X

  0.50.50  !

X

  0.50.750.25  !

W

ok,那么更常用的方法是让VASP自动生成网格

Line2:

0!

numberofk-points=0->automaticgenerationscheme

(!

后面字符为注释)

Line3:

AforfullyautomaticorGforГ/GammaorMforMonkhorst-Pack

    若都不是这些首字母,则自动切换为高级模式。

Amode全自动模式,可以看作以Г点为圆心以l为半径做圆,当然各晶格矢不同时,相

应的圆就拉成了椭圆,来确保三个倒格矢方向上覆盖的k点数为l

Line4:

length(l)

  Usefulvaluesforthelengthvarybetween10(largegapinsulators)and

100(d-metals).  

进一步的做法是分别指定三个倒格矢方向上的格点数N1,N2,N3。

Gmode

Line4:

N1N2N3

Line5:

s1s2s3偏移原点的位矢一般设成000啦。

以及Monkhorst-Pack法,生成的格点不包括Г点,从Г点周围1/2长度处开始取点。

Mmode

Line4:

N1N2N3

Line5:

s1s2s3同上

所谓的高级模式,就是用C坐标或者R坐标直接输入新的基矢

c              c

0.2500          0.2500

00.250          00.250

000.25          000.25

0.00.00.0        0.50.50.5

分别等价于

g              m

444            444

000            000

因为存在这种等价关系,所以一般也没有必要使用高级模式

好啦,就这些。

最后提醒一点,VASP的帮助文档特别提醒,对于六方晶系,不要用M来自

动生成格点,而要用G。

关于tetrahedra方法,帮助文档说用于全手动模式,可选。

具体设定原文如下:

Inthiscase,thenextlinemuststartwith'T'or't'signalingthatthis

connectionlistissupplied.Onthenextlineafterthis'controlline'one

mustenterthenumberoftetrahedraandthevolumeweightforasingle

tetrahedron(alltetrahedramusthavethesamevolume).Thevolumeweight

issimplytheratiobetweenthetetrahedronvolumeandthevolumeofthe

(total)Brillouinzone.Thenalistwiththe(symmetrydegeneration)weight

andthefourcornerpointsofeachtetrahedronfollows(fourintegerswhich

representtheindicestothepointsinthek-pointlistgivenabove,1

correspondstothe-Seitzradius

  RCLOC  =  .65

  NE    =  100

  LCOR  =  .TRUE.

  QCUT  =  -1

  RMAX  =3.0!

coreradiusforproj-oper

  Description

l    E    TYPRCUT  TYP  RCUT(cutoffradius)

0  0      15  0.80  23  1.25

0  0.5    15  0.80  23  1.25

1  -0.2    15  0.80  23  1.25

最重要的地方上面已经用颜色标出来啦:

说明一下,TYP是指赝势的类型,RCUT是半径截距,TYP可取的值如下:

正则

1BHS

2TM

3VAN

6XNC

7RRKJwavefunctionpossiblywithnode

15RRKJwavefunctionstrictlynonode

非正则+8

最后一个问题是LDAorGGA。

貌似没有定论目前。

这个最好是两个一起做做看啦。

或者看文献别人验证过哪个数据好。

其实据说目前最好的是PAW(P.E.Blochl,Phys.Rev.B50,17953(1994).,Phys.Rev.B59,

1758(1999).),PP已经落伍了,不过好像我们用的VASP不带这个,就不展开讨论了。

初学VASP(六)最重要的INCAR参数

INCAR是决定howtodo的文件

限于能力,只对部分最基本的一些参数(>,没有这个标志的参数都是可以不出现的)

详细说明,在这里只是简单介绍这些参数的设置,详细的问题在后文具体示例中展开。

部分可能会干扰VASP运行的参数在这里被刻意隐去了,需要的同学还是请查看VASP自带

的帮助文档原文。

参数列表如下:

>SYSTEMnameofSystem

  任务的名字***

>NWRITEverbositywrite-flag(howmuchiswritten)

  输出内容详细程度0-3缺省2

  如果是做长时间动力学计算的话最好选0或1(首末步/每步核运动输出)

  据说也可以结合shell的tail或grep命令手动输出

>ISTARTstartjob:

  restart选项0-3缺省0/1for无/有前次计算的WAVECAR(波函数)

  1'restartwithconstantenergycut-off'

  2'restartwithconstantbasisset'

  3'fullrestartincludingwavefunctionandchargeprediction'

ICHARGcharge:

1-file2-atom10-constDefault:

ifISTART=02else0

ISPINspinpolarizedcalculation(2-yes1-no)default2

  

MAGMOMinitialmagmoment/atomDefaultNIONS*1

INIWAVinitialelectrwf.:

0-lowe1-rand

  Default1onlyusedforstartjobs(ISTART=0)  

IDIPOLcalculatemonopole/dipoleandquadrupolecorrections

  1-3只计算第一/二/三晶矢方向适于slab的计算

  4  全部计算尤其适于就算孤立分子

>PRECprecession:

medium,highorlow(VASP.4.5+also:

normal,accurate)

  Default:

MediumVASP4.5+采用了优化的accurate来替代high,所以一般不推荐使用

  high。

不过high可以确保'绝对收敛',作为参考值有时也是必要的。

  同样受推荐的是normal,作为日常计算选项,可惜的是说明文档提供的信息不足。

  受PREC影响的参数有四类:

ENCUT;NGX,NGY,NGZ;NGXF,NGYF,NGZF;ROPT

  如果设置了PREC,这些参数就都不需要出现了

  当然直接设置相应的参数也是同样效果的,这里不展开了,随后详释

>ENCUTenergycutoffineV:

defaulttakenfromPOTCAR-file

  important!

重要到几乎最好不要手工去设置

  除非文献告诉你要用多少,或者经过结果可靠性的验证

  当然,为了测试一下提交的任务,也不妨先设个较小的值

附加说明:

  当且仅当POTCAR里头没有设置ENCUT时(其实貌似没有才是常态),才受PREC设置影

响从POTCAR里找出相应的ENMAX/ENMIN值来设置。

  PREC=  Low    Medium  AccurateHigh

  ENCUT=  ENMIN  ENMAX  ENMAX  130%ENMAX

  对于多个元素的POTCAR不同的ENMAX/ENMIN,都取最大值

>NGX,NGY,NGZ:

FFTmeshforwavefunctions

>NGFX,NGFY,NGFZ:

FFTmeshforcharges

  也是两类重要的最好不要去动的参数,PREC设置将从POTCAR中自动读取。

  PREC=High,Accurate2倍值,用来避免wraparounderrors得到精确解

  PREC=Low,Medium,Normal3/4也已经足够精确到1meV/atom

>LREAL:

Default=.FALSE.

  赝势的非局域部分用到的一个积分在倒格空间或者实空间都可以求值。

这个选项就

是决定是在哪个空间里求。

在倒格空间里,采用平面波基组求解,在实空间里,采用积

分球求解。

  缺省是.FALSE,即不在实空间求。

但效率会低一些。

  其他选项是OorOn,AorAuto和.True.。

  On和.TRUE.的差别在于是否使用King-Smith算法优化,Auto则自动选择,推荐。

  

>ROPT:

优化控制每个核周围的积分球内的格点数,LREAL=AutoorOn

  ForLREAL=On  

      PREC=Low700pointsintherealspacesphere(ROPT=0.67)

      PREC=Med1000pointsintherealspacesphere(ROPT=1.0)

      PREC=High1500pointsintherealspacesphere(ROPT=1.5)

  ForLREAL=Auto

      PREC=Lowaccuracy1e-2(ROPT=0.01)

      PREC=Medaccuracy2e-3  (ROPT=0.002)

      PREC=Highaccuracy2e-4  (ROPT=2E-4)

>NELM,NELMINandNELMDLnr.ofelectronicsteps

  Default

最大电子自洽循环次数  NELM=60

最小次数          NELMIN=2

弛豫次数          NELMDL=-5  ifISTART=0,INIW

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1