vasp计算参数设置 下载本文

内容发布更新时间 : 2024/5/21 21:07:11星期一 下面是文章的全部内容请认真阅读。

采用部分占位波函数,用一个函数来平滑积分,尤其是对于金属体系可减少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,VASP会先用38,再自动切换到48。各种算法只要收敛,结果应该一致。

另一个可能有用的选项是-1。不进行实际的计算,只对重要的步骤做计算测试,并将测试得到的各部分耗时输出到OUTPUT中。

? VOSKOWN:决定是否使用VWN插值算法。取值:0(不使用)/1(使用),缺省值:0 如果使用了PW91泛函或需要计算磁性质时可以设为1使用。

? Mixing-tags:

w IMIX:混合的类型,取值:整数,缺省值:4

w AMIX:线性混合参数。取值:实数,缺省值:0.8(US-PP),0.4(PAW) w AMIN:最小混合参数。取值:实数,缺省值:0.1

w BMIX:Kerker混合方案的截断波向量。取值:实数,缺省值:1.0 w AMIX_MAG:磁化过程的线性混合参数。取值:实数,缺省值:1.6

w BMIX_MAG:磁化过程的Kerker混合方案的截断波向量。取值:实数,缺省值:1.0 w WC:Broyden混合方案中每步的加权因子。取值:实数,缺省值:1000.0 w INIMIX:Broyden混合方案中的初始混合类型。取值:整数,缺省值:1 w MIXPRE:Broyden混合方案中的预处理类型。取值:整数,缺省值:1 w MAXMIX:Broyden混合器中存储的最大步数。取值:整数,缺省值:-45

值得注意的是,在MD或者弛豫的时候,设置MAXMIX(>0,一般约3倍的电子SC步数)可能会大大减少核运动步数,但同时也会增加对内存的要求。

? LWAVE,LCHARG:决定是否把波函数(或电荷密度)写入外部文件WAVECAR(或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

赝势库中的赝势文件可以分为以下几类:

l 根据产生方法的不同有Ultra-soft赝势(USPP)和投影扩充波赝势(PAW);

l 根据交换关联函数的不同有LDA(local density approximation)和GGA(generalized gradient approximation,又可以再分为PW91和PBE);

l 根据半芯态的不同元素A的赝势文件还可以分为A,A_sv和A_pv;

l 根据选取的不同截断能量(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.0 0.50 0.50 0.50 0.00 0.50 0.50 0.50 0.00 2 Direct

0.0 0.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 0

Monhkorst-Pack 9 9 9 0.0 0.0 0.0

VASP的输出文件主要包括: l OUTCAR:包含运行VASP作业后得到的绝大部分计算结果以及每步迭代的详细情况; l CHG, CHGCAR:给出体系的电荷密度。两个文件内容相同,但前者的数据精度比后者略低一些;

l DOSCAR, EIGENVAL:分别给出所计算体系的电子态密度和本征值。两个文件中的能量值都是绝对的;

l WAVECAR:给出所计算体系的电子波函数,二进制文件,不可编辑; l OSZICAR:包含每次迭代或离子移动情况的简单汇总;

l CONTCAR:给出离子进行弛豫时,每次移动后体系的晶格参数,与POSCAR内容相同;

l PCDAT, XDATCAR:给出有关分子动力学模拟中的一些结果,如配对相关函数;