hnuhjf的个人博客分享 http://blog.sciencenet.cn/u/hnuhjf

博文

[转载]VASP学习入门心得

已有 13938 次阅读 2020-2-23 17:38 |个人分类:理论计算|系统分类:科研笔记|文章来源:转载

转载自http://wap.sciencenet.cn/blog-3393337-1155872.html

最近在学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方法(线性缀加平面波);此外还有一种方法是只考虑价电子,而把芯电子和原子核构成离子实放在一起考虑,即赝势法,一般赝势法是选取一个截断半径,截断半径以内,波函数变化较平滑,和真实的不同,截断半径以外则和真实情况相同,而且赝势法得到的能量本征值和全电子法应该相同。
赝势包括模守恒和超软,模守恒较硬,一般需要较大的截断能,超软势则可以用较小的截断能即可。另外,模守恒势的散射特性和全电子相同,因此一般红外,拉曼等光谱的计算需要用模守恒势。
    赝势的测试标准应是赝势与全电子法计算结果的匹配度,而不是赝势与实验结果的匹配度,因为和实验结果的匹配可能是偶然的。
(4)关于收敛测试
(a)Ecut,也就是截断能,一般情况下,总能相对于不同Ecut做计算,当Ecut增大时总能变化不明显了即可;然而,在需要考虑体系应力时,还需对应力进行收敛测试,而且应力相对于Ecut的收敛要比总能更为苛刻,也就是某个截断能下总能已经收敛了,但应力未必收敛。
(b)K-point,即K网格,一般金属需要较大的K网格,采用超晶胞时可以选用相对较小的K网格,但实际上还是要经过测试。
(5)关于磁性
一般何时考虑自旋呢?举例子,例如BaTiO3中,Ba、Ti和O分别为+2,+4和-2价,离子全部为各个轨道满壳层的结构,就不必考虑自旋了;对于BaMnO3中,由于Mn+3价时d轨道还有电子,但未满,因此需考虑Mn的自旋,至于Ba和O则不必考虑。其实设定自旋就是给定一个原子磁矩的初始值,只在刚开始计算时作为初始值使用,具体的可参照磁性物理。
(6)关于几何优化
包括很多种了,比如晶格常数和原子位置同时优化,只优化原子位置,只优化晶格常数,还有晶格常数和原子位置分开优化等等。
在PRL一篇文章中见到过只优化原子位置,晶格常数用实验值的例子(PRL 100, 186402 (2008));也见到过晶格常数先优化,之后固定晶格常数优化原子位置的情况;更多的情况则是Full geometry optimization。
一般情况下,也有不优化几何结构直接计算电子结构的,但是对于缺陷形成能的计算则往往要优化。
(7)关于软件
软件大致分为基于平面波的软件,如CASTEP、PWSCF和ABINIT等等,计算量大概和体系原子数目的三次方相关;还有基于原子轨道线性组合的软件(LCAO),比如openmx,siesta,dmol等,计算量和体系原子数目相关,一般可模拟较多原子数目的体系。

VASP是使用赝势和平面波基组,进行从头量子力学分子动力学计算的软件包,它基于CASTEP 1989版开发。VAMP/VASP中的方法基于有限温度下的局域密度近似(用自由能作为变量)以及对每一MD步骤用有效矩阵对角方案和有效Pulay混合求解瞬时电子基态。这些技术可以避免原始的Car-Parrinello方法存在的一切问题,而后者是基于电子、离子运动方程同时积分的方法。离子和电子的相互作用超缓Vanderbilt赝势(US-PP)或投影扩充波(PAW)方法描述。两种技术都可以相当程度地减少过渡金属或第一行元素的每个原子所必需的平面波数量。力与张量可以用VAMP/VASP很容易地计算,用于把原子衰减到其瞬时基态中。
02、VASP程序的亮点:
1. VASP使用PAW方法或超软赝势,因此基组尺寸非常小,描述体材料一般需要每原子不超过100个平面波,大多数情况下甚至每原子50个平面波就能得到可靠结果。
2. 在平面波程序中,某些部分代码的执行是三次标度。在VASP中,三次标度部分的前因子足可忽略,导致关于体系尺寸的高效标度。因此可以在实空间求解势的非局域贡献,并使正交化的次数最少。当体系具有大约2000个电子能带时,三次标度部分与其它部分可比,因此VASP可用于直到4000个价电子的体系。
3. VASP使用传统的自洽场循环计算电子基态。这一方案与数值方法组合会实现有效、稳定、快速的Kohn-Sham方程自洽求解方案。程序使用的迭代矩阵对角化方案(RMM-DISS和分块Davidson)可能是目前最快的方案。
4. VASP包含全功能的对称性代码,可以自动确定任意构型的对称性。
5. 对称性代码还用于设定Monkhorst-Pack特殊点,可以有效计算体材料和对称的团簇。Brillouin区的积分使用模糊方法或四面体方法。四面体方法可以用Blöchl校正去掉线性四面体方法的二次误差,实现更快的k点收敛速度。
03、VASP 5.2的新功能:
1. 大规模并行计算需要较少的内存。
2. 加入新的梯度校正泛函AM05和PBEsol;用标准PBE POTCAR文件提供新泛函;改善了单中心处理。
3. 离子位置和格矢中加入有限差分,从而得到二阶导,用于计算原子间力常数和声子(需要超晶胞近似),和弹性常数。计算中自动考虑对称性。
4. 离子位置和静电场中加入线性响应,从而得到二阶导,用于计算原子间力常数和声子(需要超晶胞近似),Born有效电荷张量,静态介电张量(电子和离子贡献),内应变张量,压电张量(电子和离子贡献)。线性响应只能用于局域和半局域泛函。
5. 精确的非局域交换和杂化泛函:Hartree-Fock方法;杂化泛函,特别是PBE0和HSE06;屏蔽交换;(实验性的)简单模型势GW-COHSEX,用于经验的屏蔽交换内核;(实验性的)杂化泛函B3LYP。
6. 通过本征态求和计算含频介电张量:使用粒子无关近似,或通过GW的随机相近似。可用于局域,半局域,杂化泛函,屏蔽交换,和Hartree-Fock。
7. 完全含频GW,速度达到等离子极点模型:单发G0W0;在G和W中迭代本征矢直至自洽;(实验性的)迭代G(也可以选W)本征矢的自洽GW;(实验性的)对相关能使用RPA近似的GW总能量;用LDA计算G和W的顶点校正(局域场效应),仅能用于非自旋极化的情况;(实验性的)W的多体顶点校正,仅能用于非自旋极化的情况。
8. 实验性的功能:用TD-HF和TD-杂化泛函求解Cassida方程(仅能用于非自旋极化的Tamm-Dancoff近似);GW顶点的Bethe-Salpeter(仅能用于非自旋极化的Tamm-Dancoff近似)。

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时视为收敛中断计算,移动离子位置尝试进行下一步计算。EDIFFG这个值可以为负,例如EDIFFG=-0.02,这时的收敛标准是当系统发现所有离子间作用力都小于给定的数值,如0.02eV/A时视为收敛而中断。

弛豫计算主要有两种方式:准牛顿方法(quasi-Newton RMM-DIIS)和共轭梯度法(CG)两种。准牛顿方法计算速度较快,适合于初始结构与平衡结构(势能面上全局最小值)比较接近的情况,而CG方法慢一些,找到全局最小的可能性也要大一些。选择方法为IBRION=1时为准牛顿方法而IBRION=2时为CG方法。

具体来说要做弛豫计算,设置IBRION=1或者2就可以了,其它参数根据需要来设置。NSW是进行弛豫的最大步数,例如设置NSW=100,当计算在100步之内达到收敛时计算自动中断,而100步内没有达到收敛的话系统将在第100步后强制中止(平常计算步数不会超过100步,超过100步可能是计算的体系出了问题)。参数通常可以从文献中发现,例如收敛标准EDIFFG等。

有的时候我们需要一些带限制条件的弛豫计算,例如冻结部分原子、限制自旋的计算等等。冻结部分原子可以在POSCAR文件中设置selective dynamic来实现。自旋多重度限制可以在INCAR中以NUPDOWN选项来设置。另外ISIF选项可以控制弛豫时的晶胞变化情况,例如晶胞的形状和体积等。

费米面附近能级电子分布的smearing是一种促进收敛的有效方法,可能产生物理意义不明确的分数占据态情况,不过问题不大。在INCAR文件中以ISMEAR来设置。一般来说K点只有一两个的时候采用ISMEAR=0,金属体材料用ISMEAR=1或2,半导体材料用ISMEAR=-5等等。不过有时电子步收敛速度依然很慢,还需要设置一些算法控制选项,例如设置ALGO=Very_Fast,减小真空层厚度,减少K点数目等。

弛豫是一种非常有效的分析计算手段,虽然是静力学计算但是往往获得一些动力学得不到的结果。

4、vasp的分子动力学模拟

vasp做分子动力学的好处,由于vasp是近些年开发的比较成熟的软件,在做电子scf速度方面有较好的优势。缺点:可选系综太少。

尽管如此,对于大多数有关分子动力学的任务还是可以胜任的。主要使用的系综是NVT 和NVE。

一般做分子动力学的时候都需要较多原子,一般都超过100个。

当原子数多的时候,k点实际就需要较少了。有的时候用一个k点就行,不过这都需要严格的测试。通常超过200个原子的时候,用一个k点,即Gamma点就可以了。

INCAR:
EDIFF  一般来说,用1E-4 或者1E-5都可以,这个参数只是对第一个离子步的自洽影响大一些,对于长时间的分子动力学的模拟,精度小一点也无所谓,但不能太小。
IBRION=0 分子动力学模拟
IALGO=48 一般用48,对于原子数较多,这个优化方式较好。
NSW=1000  多少个时间步长。
POTIM=3  时间步长,单位fs, 通常1到3.
ISIF=2  计算外界的压力.
NBLOCK= 1  多少个时间步长,写一次CONTCAR,CHG和CHGCAR,PCDAT.
KBLOCK=50 NBLOCK*KBLOCK 个步长写一次XDATCAR.(个离子步写一次PCDAT.)
ISMEAR=-1  费米迪拉克分布.
SIGMA =0.05 单位:电子伏
NELMIN=8  一般用6到8, 最小的电子scf数.太少的话,收敛的不好.
LREAL=A
APACO=10 径向分布函数距离, 单位是埃.
NPACO=200  径向分布函数插的点数.
LCHARG=F 尽量不写电荷密度,否则CHG文件太大.
TEBEG=300  初始温度.
TEEND=300 终态温度。不设的话,等于TEBEG.
SMASS=-3  NVE ensemble;-1 用来做模拟退火。大于0 NVT 系综。正确:SMASS=1,2,3 是没有区别的。都是NVT ensemble。SMASS只要是大于0就是NVT系综。

CONTCAR是每个离子步之后都会写出来的,但是会用新的把老的覆盖

CHG是在每10个离子步写一次,不会覆盖

CHGCAR是在任务正常结束之后才写的。

5、收敛判据的选择

结构弛豫的判据一般有两中选择:能量和力。这两者是相关的,理想情况下,能量收敛到基态,力也应该是收敛到平衡态的。但是数值计算过程上的差异导致以二者为判据的收敛速度差异很大,力收敛速度绝大部分情况下都慢于能量收敛速度。这是因为力的计算是在能量的基础上进行的,能量对坐标的一阶导数得到力。计算量的增大和误差的传递导致力收敛慢。

到底是以能量为收敛判据,还是以力为收敛判据呢?关心能量的人,觉得以能量为判据就够了;关心力相关量的人,没有选择,只能用力作为收敛标准。对于超胞体系的结构优化,文献大部分采用Gamma点做单点优化。这个时候即使采用力为判据(EDIFFG=-0.02),在做静态自洽计算能量的时候,会发现,原本已经收敛得好好的力在不少敏感位置还是超过了结构优化时设置的标准。这个时候,是不是该怀疑对超胞仅做Gamma点结构优化的合理性呢?是不是要提高K点密度再做结构优化呢。

在我看来,这取决于所研究的问题的复杂程度。我们的计算从原胞开始,到超胞,到掺杂结构,到吸附结构,到反应和解离。每一步都在增加复杂程度。结构优化终点与初始结构是有关的,如果遇到对初始结构敏感的优化,那就头疼了。而且,还要注意到,催化反应不仅与原子本身及其化学环境有关,还会与几何构型有关。气固催化反应过程是电子的传递过程,也是分子拆分与重新组合的过程。如果优化终点的构型不同,可能会导致化学反应的途径上的差异。仅从这一点来看,第一性原理计算的复杂性,结果上的合理性判断都不是手册上写的那么简单。

对于涉及构型敏感性的结构优化过程,我觉得,以力作为收敛判据更合适。而且需要在Gamma点优化的基础上再提高K点密度继续优化,直到静态自洽计算时力达到收敛标准的。

6、结构优化参数设置

结构优化,或者叫弛豫,是后续计算的基础。其收敛性受两个主要因素影响:初始结构的合理性和弛豫参数的设置

初始结构

初始结构包括原子堆积方式,和自旋、磁性、电荷、偶极等具有明确物理意义的模型相关参数。比如掺杂,表面吸附,空位等结构,初始原子的距离,角度等的设置需要有一定的经验积累。DFT计算短程强相互作用(相对于范德华力),如果初始距离设置过远(如超过4埃),则明显导致收敛很慢甚至得到不合理的结果。

比较好的设置方法可以参照键长。比如CO在O顶位的吸附,可以参照CO2中C-O键长来设置(如增长20%)。也可以参照文献。记住一些常见键长,典型晶体中原子间距离等参数,有助于提高初始结构设置的合理性。实在不行,可以先在小体系上测试,然后再放到大体系中算。

弛豫参数

弛豫参数对收敛速度影响很大,这一点在计算工作没有全部铺开时可能不会觉察到有什么不妥,反正就给NSW设置个“无穷大”的数,最后总会有结果的。但是,时间是宝贵的,恰当的设置3小时就收敛的结果,不恰当的设置可能要一个白天加一个黑夜。如果你赶文章或者赶着毕业,你就知道这意味这什么。

结构优化分电子迭代和离子弛豫两个嵌套的过程。电子迭代自洽的速度,有四个响很大的因素:初始结构的合理性,k点密度,是否考虑自旋和高斯展宽(SIGMA);离子弛豫的收敛速度,有三个很大的影响因素:弛豫方法(IBRION),步长(POTIM)和收敛判据(EDIFFG).

一般来说,针对理论催化的计算,初始结构都是不太合理的。因此一开始采用很粗糙的优化(EDIFF=0.001,EDIFFG=-0.2),很低的K点密度(Gamma),不考虑自旋就可以了,这样NSW<60的设置就比较好。其它参数可以默认。

经过第一轮优化,就可以进入下一步细致的优化了。就我的经验,EDIFF=1E-4,EDIFFG=-0.05,不考虑自旋,IBRION=2,其它默认,NSW=100;跑完后可以设置IBRION = 1,减小OPTIM(默认为0.5,可以设置0.2)继续优化。

优化的时候让它自己闷头跑是不对的,经常看看中间过程,根据情况调节优化参数是可以很好的提高优化速度。这个时候,提交两个以上的任务排队是好的方式,一个在调整的时候,下一个可以接着运行,不会因为停下当前任务导致机器空闲。

无论结构优化还是静态自洽,电子步的收敛也常常让新手头痛。如果电子步不能在40步内收敛,要么是参数设置的问题,要么是初始模型太糟糕(糟糕的不是一点点)。

静态自洽过程电子步不收敛一般是参数设置有问题。这个时候,改变迭代算法(ALGO),提高高斯展宽(SIGMA增加),设置自洽延迟(NELMDL)都是不错的方法。对于大体系比较难收敛的话,可以先调节AMIN,BMIX跑十多步,得到电荷密度和波函数,再重新计算。实在没办法了,可以先放任它跑40步,没有收敛的迹象的话,停下来,得到电荷密度和波函数后重新计算。一般都能在40步内收敛。

对于离子弛豫过程,不调节关系也不大。开始两个离子步可能要跑满60步(默认的),后面就会越来越快了。

总的说来,一般入门者,多看手册,多想多理解,多上机实践总结,比较容易提高到一个熟练操作工的水平。

如果要想做到“精确打击”,做到能在问题始发的时候就立刻采取有效措施来解决,就需要回归基础理论和计算方法上来了。

7、优化结果对初始结构和“优化路径”的依赖

原子吸附问题不大,但是小分子吸附,存在初始构型上的差异。slab上水平放置,还是垂直放置,可能导致收敛结果上的差异。根据H-K理论,理想情况下,优化得到的应该是全局最小,但在数值计算的时候可能经常碰到不是全局最小的情况。实际操作中发现,多个不同初始结构优化收敛后在能量和结构上存在一定差异。

为了加快收敛速度,特别是对于表面-分子吸附结构,初始放松约束,比如EDIFF=1E-3,EDIFFG=-0.3,NSW=30可能是很好的设置。但是下面的情况应当慎重:

EDIFF=1E-3;

EDIFFG=-0.1;!或者更小

NSW=500;!或者更大

电子步收敛约束较小,而离子步约束偏大,离子步数又很多,这种情况下,可能导致的结果是结构弛豫到严重未知的区间。

再在这个基础上提高约束来优化,可能就是徒劳的了——结果不可逆转的偏向不正常的区间。

好的做法,是对初始结构做比较松弛的约束,弛豫离子步NSW应该限制在一个较小的数值内。EDIFF=1E-3的话,EDIFFG也最好是偏大一些,如-0.3而不是-0.1. 这样可以在较少的步数内达到初步收敛。

对于远离基态的初始结构,一开始在非常松弛的约束下跑若干离子步,时间上带来的好处是很大的。对于100个原子的体系用vasp做Gamma点优化,如果一开始就是正常优化(EDIFF=1E-4,EDIFFG=-0.02)设置,开始十个离子步可能都要花上几个小时。如果这个时候才发现输入文件有错误,那下午的时间就白费了,顺便带上晚上机器空转。

所以,我习惯的做法,是在初始几步优化后,会用xcrysden 检查一下XDATCAR中的数据,用xdat2xyz.pl生成movie.xyz,然后看看弛豫过程是不是按照设想的那样。后续过程跑完一个收敛过程,就再检查一下movie.xyz。如此这般,才放心的展开后续计算。

8、目的导向的结构优化

结构优化到这个阶段,是高级的了。为了得到特定结构,或者为了验证某些猜想,需要设计合理的初始结构,然后在这个基础上小心优化,比如POTIM=0.1跑几步看看,然后修改优化参数。

我遇到过的一件跟结构优化关系很大的算例是CeO2氧空位结构电子局域的问题(http://emuch.net/bbs/viewthread.php?tid=2954558)。按照一般方式(从优化好的bulk建slab模型,然后优化)得到一个O空位留下的两个电子均匀局域到O次外层三个Ce原子上,得到空位形成能2.34eV.经高人指点后,调节空位附近O原子位置,打破对称性后重新优化,两个电子完美的局域到两个Ce原子上了。并且空位形成能降低到2.0X eV。从这个例子可以看到,结构优化存在不少技巧的,这些技巧建立在研究者对模拟对象的物理意义的理解上。对物理图像的直观深入理解,才能做好模型预设,在此引导下才可能有目的的优化出不比寻常的结果。



目前第一性原理理论中的交换关联泛函部分包含经验参数。考虑这一点对优化结果的影响也很有意思。比如有专家提到,DFT+U参数对某些结构的收敛终态构型有影响。构型的变化可能影响表面反应过程。基于这一点,一个好的计算研究可能就出来了。



真实过程总是复杂多变的。无论何种模拟,估计都可以找到一些试验现象来验证。但是到底应该如何评判模拟结果,如何从第一性原理研究中得出有意义的结论需要很好的洞察力。这样的模拟不见得就必须建立的试验的基础上,完全凭空设计的模型有可能更能优美的解释本质。



9、在单机上计算态密度好像不会出问题。我先谈一下我的看法:

第一个WARNING,可以在INCAR文件中设置NGX,NGY和NGZ的值,设置的值要足够大,就可以消除这个warning。设置多大合适呢?这就要用到编译vasp时,同时也编译得到的make param小程序,make param可以帮助你预先检查你设置的文件是否正确,以及某些参数的值是否合适。要得到合适的NGX,NGY,NGZ以及NBANDS,先在INCAR中不设置这些参数的值,然后运行makeparam >param.inc,其中param.inc是包含了输出结果的文件,在param.inc文件中你可以看到这些参数的值,以及计算大概需要多少的内存。然后把param.inc文件中的NGX,NGY,NGZ和NBANDS的值拷贝到INCAR文件中。

第二个是计算态密度时,我个人的做法是,一般把KPOINTS文件中的k点增多,然后把INCAR文件中的ISTART=1,ICHARG=11,当然还设置RWIGS。最后把静止自洽计算得到的CHG和CHGCAR文件拷贝到当前目录下。从我在单机上的计算来看,没有WAVECAR文件也是可以计算态密度的。我想你出现的这个问题,可能是你cluster上计算时,每个节点上的CHGCAR和WAVECAR文件不一致造成的。

第三个是当k点数增加了,会出现一个WARING,要把此WARNING消失掉,在INCAR文件中设置NELMDL,它的值小于等于默认值(默认值好像是-5,你可以设为-6)。没有cluster的系统用来计算,也没有这样的经历,我仅从在单机上的计算经验来谈,有错还请包涵

10、如何用VASP计算铁磁、反铁磁和顺磁

顺磁,意味进行non-spin polarized的计算,也就是ISPIN=1。

铁磁,意味进行spin-polarized的计算,ISPIN=2,而且每个磁性原子的初始磁矩设置为一样的值,也就是磁性原子的MAGMOM设置为一样的值。对非磁性原子也可以设置成一样的非零值(与磁性原子的一样)或零,最后收敛的结果,非磁性原子的local磁矩很小,快接近0,很小的情况,很可能意味着真的是非磁性原子也会被极化而出现很小的local磁矩。

反铁磁,也意味着要进行spin-polarized的计算,ISPIN=2,这是需采用反铁磁的磁胞来进行计算,意味着此时计算所采用的晶胞不再是铁磁计算时的最小原胞。比如对铁晶体的铁磁状态,你可以采用bcc的原胞来计算,但是在进行反铁磁的Fe计算,这是你需要采用sc的结构来计算,计算的晶胞中包括两个原子,你要设置一个原子的MAGMOM为正的,另一个原子的MAGMOM设置为负,但是它们的绝对值一样。因此在进行反铁磁的计算时,应该确定好反铁磁的磁胞,以及磁序,要判断哪种磁序和磁胞是最可能的反铁磁状态,那只能是先做好各种可能的排列组合,然后分别计算这些可能组合的情况,最后比较它们的总能,总能最低的就是可能的磁序。同样也可以与它们同铁磁或顺磁的进行比较。了解到该材料究竟是铁磁的、还是顺磁或反铁磁的。

亚铁磁,也意味要进行spin-polarized的计算,ISPIN=2,与反铁磁的计算类似,不同的是原子正负磁矩的绝对值不是样大。非共线的磁性,那需采用专门的non-collinear的来进行计算,除了要设置ISPIN,MAGMOM的设置还需要指定每个原子在x,y,z方向上的大小。这种情况会复杂一些。

举个例子来说,对于Mn-Cu(001)c(2x2)这种体系,原胞里面有2个Mn原子,那么你直接让两个Mn原子的MAGMOM的绝对值一样,符号相反就可以了,再加上ISPIN=2。这样就可以实现进行反铁磁的计算了

11、vasp在计算磁性的时候,oszicar中得到的磁矩和outcar中得到各原子磁矩之和不一致在投稿的是否曾碰到有审稿人质疑,对于这个不一致你们一般是怎么解释的了?

答:OSZICAR中得到的磁矩是OUTCAR中最后一步得到的总磁矩是相等的。总磁矩和各原子的磁矩(RMT球内的磁矩)之和之差就是间隙区的磁矩。因为有间隙区存在,不一致是正常的。

12、磁性计算应该比较负责。你应该还使用别的程序计算过磁性,与vasp结果比较是否一致,对磁性计算采用的程序有什么推荐。

ps:由于曾使用vasp和dmol算过非周期体系磁性,结构对磁性影响非常大,因此使用这两个程序计算的磁性要一致很麻烦。还不敢确定到底是哪个程序可能不可靠。

答:如果算磁性,全电子的结果更精确,我的一些计算结果显示磁性原子对在最近邻的位置时,PAW与FPLAW给出的能量差不一致,在长程时符合的很好。虽然并没有改变定性结论。感觉PAW似乎不能很好地描述较强耦合。我试图在找出原因,主要使用exciting和vasp做比较。计算磁性推荐使用FP-LAPW, FP-LMTO, FPLO很吸引人(不过是商业的),后者是O(N)算法。

13、vasp 学习笔记POTCAR 的建立

POTCAR将要告诉vasp计算的系统中所包含的各种元素的赝势pesudopotential,vasp本身就带有比较完善的赝势包,我们需要做的就是选择我们需要具体哪种赝势,然后把相应的文件拷贝形成我们具体的POTCAR文件。我们以GaAs为例。

1)赝势的选择:

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

赝势按产生方法可以分为PP (standard pesudopotential,其中大部分是USPP, ultrasoft pesudopotential) 和PAW (projector augmented wave method)。按交换关联函数的不同又可以有LDA (local density approximation) 和GGA (generalized gradient approximation),其中GGA之下又可以再分为PW91和PBE。

以上各个目录对应起来分别是pot ==> PP, LDA ; pot_GGA ==> PP, GGA ; potpaw ==> PAW, LDA ; potpaw_GGA ==> PAW, GGA, PW91 ; potpaw_PBE ==> PAW , GGA, PBE。选择某个目录进去,我们还会发现对应每种元素往往还会有多种赝势存在。这是因为根据对截断能量的选取不同还可以分为Ga,Ga_s,Ga_h,或者根据半芯态的不同还可以分为Ga,Ga_sv,Ga_pv的不同。

一般推荐选取PAW_PBE。其中各个元素具体推荐哪种形式的赝势可以参考vasp workshop中有关赝势部分的ppt。当然自己能测试之后在选择是最好不过的了,以后再聊。

2).POTCAR的建立:

选好哪一种赝势之后,进入对应的目录,你会看到里边有这么几个文件,POTCAR.Z PSCTR.Z V_RHFIN.Z WS_FTP.LOG 。我们需要的是第一个。把它解压,如zcat POTCAR.Z > Ga 。对As元素我们也可以类似得到一个As文件。用cp 命令或者mv 命令把这两个文件都移到我们的工作目录里。然后再用cat 命令把这两个文件合并在一起,如cat Ga As > POTCAR ,这样就得到了我们需要的POTCAR。同理,有多个元素的POTCAR也可以这样产生。这里需要注意的是,记住元素的排列顺序,以后在POSCAR里各个元素的排列就是按着这里来的。

3).POTCAR里的信息:

如果你想看POTCAR长什么样,可以用vim POTCAR 命令,进去后可以用上下键移动光标。想出来的时候,可以敲入:q!就可以。具体的vim的命令可以在网上查到。一般我会看POTCAR里的截断能量为多大,用grep -in "enmax" POTCAR 。

据说B3LYP的赝势计算比较准,我在MS上面测试过,好像DOS和能带图的计算确实比较准。不过不知道vasp有没有类似的赝势包。

hybrid functional的计算,并不需要特定的hybrid functional 的赝势。大部分就是基于GGA-PBE的赝势来做,也就是芯电子与价电子的交换关联作用,以及芯电子与芯电子的交换关联作用还是基于GGA-PBE的,只是将价电子与价电子的交换关联作用通过hybrid functional交换关联来描述。

谢谢老师的解答。那具体操作是不是像网上写的那样,使用GGA的赝势,设置GGA = B3,然后更改POTCAR里面的LEXCH =B3就行了。我试过了,可以跑,不过结果没做详细的分析。

14、VASP中所有能量的物理意义及它们之间的区别,让你彻底搞清楚VASP的所有能量

(一)首先我们应明白,固体的结合能就是固体的内能E(结合)=U(内能),

原因如下:

一般情况都把孤立原子的能量作为能量参考点。前段时间有个同学问VASP中得出的绝对能量是相对于什么的,其实就是相对孤立原子得。

(二)其次我们根据自由能与内能之间的关系F=U-TS

而且我们都知道VASP的所有计算都是在绝对0度下的情况,T=0代入上式,有F=U。所以结合就等于内能等于自由能。肯定有Free energy TOTEN=energy without entropy恒成立...

这时候肯定有人会说不对啊,可以看VASP手册,候博的参考书作证,肯定不对得。

现在我告诉你确实它们二者确实有区别,区别在下面的情况

(1)当我们用ISMEAR=-5时,费米能这儿没有展宽,它算出来的就是完全在绝对0度的能量。Free energy TOTEN=energy without entropy恒成立。

(2)有时为了在数学上处理的方便,为了更容易积分,我们也用ISMEAR!=-5(!=是不等于的意思)的方法,这个时候费米能这儿有一定的展宽。此时,我们容易想到,有展宽不就是相当有一定的熵值吗?所以这个时候虽然算的是绝对0度的情况,但是有一定的熵值(我们应明白,这个熵值不是由一定的温度带来的,而是数学处理的结果)。所以在SMEAR!=-5的方法我们会发现Free energy TOTEN和energy without entropy有一定的差别。此时energy without entropy是Free energy TOTEN在SIGMA趋于0的极限。

注意:(1)有人在算单个原子的能量时会发现单个原子的能量虽然很小但并不是0,但是按我上面的推导,固体中的结合能是相对孤立体系的能量而来的,所以单个原子得到的TOTEN肯定是0啊,原因在于我们的POTCAR不可能绝对合理,而且我们也知道计算单个原子的能量就是为了检测赝势,单原子得到的TOTEN越小说明赝势越好。但一般不会正好是0.对这个说法我还存在点疑问,写在了最后面。

(2)如果你注意的话,energy without entropy与Free energy TOTEN在SIGMA趋于0也不是完全相等,但是也会发现它们之间的差别在10E-3左右,原因在于计算机求积分、求极限不能像我们人一样达到任意的精度。

15、VASP中过渡态计算设置的一点体会

计算过渡态先要摆正心态,不急于下手。步骤如下:

(1)做模型,初态IS和终态FS,分别结构优化到基态;

(2)线形插入images: nebmake.pl POSCAR.IS POSCAR.FS N

N为image个数。

(3)nebmovie.pl,生成movie.xyz。用Xcrysden --xyz movie.xyz 反复观看动画,仔细检查过程的合理性。这里要提醒,POSCAR.IS 和POSCAR.FS中原子坐标列表的顺序必须对应。

(4)写INCAR,选IOPT。注意,最好忘记vasp自带的NEB,而全部改用包含vtstool的vasp. IBRION=3,POTIM=0关闭vasp自带的NEB功能。

(5)过渡态计算第一个离子步最耗时,也最容易出问题,也是模型设计合理性检验的首要环节。所以可以选小一些的ENCUT,可以不用考虑自旋(ISPIN=1),也不用考虑DFT+U。而且用最快最粗糙的算法(IOPT=3,其他默认)。

(6)带vtstool的vasp-ClNEB(NEB)过渡态计算ICHAIN=0作为入口,这个也是默认的。LCLIMB=TRUE也是默认的。如果不要climb image,可以设置LCLIMB = False.

(7)收敛判据EDIFFG<0。过渡态计算要以力为收敛判据,而不是能量。一般EDIFFG=-0.05就可以接受,-0.02或者-0.01更好。但是作为开始的过渡态计算,可以设置很宽的收敛条件,如EDIFFG=-1.

(8)初步过渡态收敛后,修改INCAR中的优化器(IOPT),并修改相应参数(参考vtstool官方论坛),EDIFFG改小(如-0.05),然后运行vfin.pl,这个脚本自动帮你准备在原来的基础上继续运行新的过渡态计算(完成cp CONTCAR POSCAR, 保留电荷密度和波函数的操作)。

(9)过渡态如何验算虚频呢?

比如一个6层原子层的slab上表面吸附小分子。slab下部3层原子是固定的。验算虚频的时候,是不是还是固定下面三层原子,然后按照一般频率计算方法来算虚频?这样的话,可以移动的原子数在20数量级上,考虑三个自由度,及其组合,就有很多很多可能了。请问该怎么设置这样的过渡态虚频计算呢?

16、关于概念的问题做个讨论
(一)关于结合能。你说“结合能是定义为相距无穷远的原子结合形成一定结构的物质所放出的能量”
你和我说的没区别,我说的是结合能是相对于“孤立原子做参考点的”,也就是它与周围任何原子没有相互作用,和你所说的相距无穷远一回事,我这个好像没有任何错误。
===============
这里你说的是没有错误,但是我觉得有必要先澄清一下。
(二)关于单点能。你说“它是第一性原理计算直接得到的能量,或者说是赝能,是一个空间点阵平均每阵点上采用赝势计算所得到的能量,其中包含了结合能的贡献,但是更多的,也包含了靠近芯区附近的电子在采用赝势近似下的能量,这一部分能量既不是原子芯区附近电子能量的真实反应,也不会影响化学键性质,不会对结合能有所贡献”。
我赞同你的大部分观点,也提出你说的几点错误,单点能准确的来说它包含了所有哈密顿的量,而且这儿的单点能不是你所说的“平均每个原子的能量”,而是你计算的整个原胞的能量。但是这个能量有一个参考点。你可以看候博得,也可以看我回的下一个贴子,至于“影响不影响成键之类的内容”固体力学上已经说的很清楚了。
==============
从你的回复中,我可以知道你肯定没有学过晶体学或者空间群理论,你应该看看晶体学国际表中对于阵点的定义,阵点并不是每个原子,这里你的理解有问题,阵点是一个抽象点,一个晶体中包含所有对称性的可以仅通过平移来构造整个晶体的结构所占据的位置就是一个阵点,换句话说,一个阵点,就是一个满足平移对称性的原子集团,且该集团内部的位置满足该晶体结构的全部对称性,而且它不仅仅是“原胞”
(三)你说“Free energy TOTEN是体系总能,要减去阵点上分布的原子的能量再除以平均原子数才是结合能(当然,这个和你的计算脚本的设计有关),而且这还没有考虑不加展宽时没有被计算到的能带的因素”
我不赞同你后面说的几点。Free energy TOTEN从字面意思上我们也知道它的结果是自由能,你可以说它是总能,因为根据我上面的推导,它们至少在数值是相等得。不在于你把它说成什么,你就是把它说成总能,其实它还是等于结合能,等于自由能,等于内能。至于除不除原子总数在于你想得到的是平均每个原子的还是总体系的,这在于个人。考虑不考虑展宽,那要看ISMEAR等于几,做几个实例就会感觉到它考虑没考虑了。
===============
这个能量确切的说应该是叫做考虑电子振动熵的体系总自由能,当不考虑展宽的时候,它是等于总能的,如果你读过Vasp的代码,就知道TOTEN在vasp的计算中就是总能,这个和结合能不是一个概念,还包含有非成键部分的贡献,至于内能的定义,如果你阅读过塞兹的现代固体理论,或者Pauling的书,或者读过Morse当时提出morse势的那篇文献,就应该知道,固体物理中所使用的内能,指的是离子实的动能和原子的“结合能”之和——这里结合能之所以要打引号,是因为按定义,是要形成稳定结构或者亚稳态结构时才能称之为结合能,内能定义并没有考虑粒子芯区附近电子能量的影响,正如你所说,是“相对于“孤立原子做参考点的””,在0K下已经不考虑动能,因此就应是总能减去孤立原子的能量和才行,至于结合能,则是稳定状态下结构的这个能量。
(四)你说“是否考虑展宽和结合能的定义没有关系”
我也没说和它的定义有什么关系啊,但是由于数学处理带来的误差,它对结合能的结果有一定的影响啊。
(五)对单个原子的结合能的计算应该只计算Gamma点的能量,且用削除简并。
你说得第五点我不懂,我算单个原子的能量时一直是按三个表面的构造方法来算的,也没想过什么简并。还望有高手给我帮助,第五点怎么理解。
=============
简单的操作是计算单个原子能量只考虑Gamma点,然后三边都设置在10A以上,且不相等
至于原因,应该去查量子力学的书,记得本科的时候,老师都会讲到的。

根据F=U-TS,E(结合)=E(bulk)-nE(单个离散)。而E(bulk)就是U,通常我们取E(离散)为参考点。也就是把E(离散)看为0,这样推出来,在T=0时,F=E(结合)。它是包含你所说得那些,而且就像我在前面的贴子中说得,它就是总得H得到的能量,但是它有一个参考,而这个参考就是离散原子的能量

17、用vasp软件研究表面小分子的吸附解离遇到几个问题。

1 关于反应物和产物的结构,请问你们是如何构建的?(参考文献吗?)能不能介绍一下相关的经验,个人认为好的开端是成功的一半,所以需要更多的经验帮助。

答:.据说现在流行的过渡态算法多用CINEB,vasp自带的NEB也可以,但是镜像受力优化和势垒精确度以及收敛速度略逊于CINEB,lz可以google到其官方网站了解。初始和终了的结构是局部能量最低的构型(vasp做弛豫收敛的构型),至于lz所关心的是从具体结构之间的过渡的化,一是猜测,二是文献吧。基本出发点是能量趋向降低的构型。

2 关于结构的优化,能量收敛和力收敛的标准是否应该比默认值高,有利于过渡态的搜寻?

答:DFT理论计算能量可能更准确,对力的计算由于是对能量再求导,涉及数值算法原因可能不准,所以收敛标准基本采用默认即可,有时适当提高(一个量级以内)也是可以的。在合理的精度范围内讨论出合理的结果就达到目的了,这是师兄告我的。基本上收敛精度高于默认值去跑的话,那就god bless you了。

3 关于结构虚频的处理,通过学习了解了消除虚频的方法--将对应原子的坐标加到原坐标上。由于vasp的振动模式不能可视化,所以请问如何找到对应的原子?另外关于虚频,大家是如何处理的呢。

答:.虚频没有关注过。只知道在鞍点位置才应该有一个虚频,属于鞍点具有的特性吧。为何要消除呢?根据这个好像才能按速率理论算出反应率的吧,这个我没有经验。只关注过势垒。

4 关于images的问题,最近利用脚本产生了2、4的POSCAR的文件,发现只有2的能跑起来,我的服务器是4个核的。看别人发的贴:指定4个cpu同时计算,应该是1个cpu一个image 。为什么我设置4个image跑不起来呢?

答:image数量越多,相互之间受力需要同时满足收敛准则,速度肯定会降低,但是这样找到的能量最低路径也会与实际更加符合。没错,每个image事实上是需要相当于单独计算的构型的cpu的数目的,所以4个核的话,平均一个image一个cpu,实在是不一定跑得动。如果体系原子数较多,k点网格较密,能量截断值再一高,估计经过很久才可能有结果。

5、在计算dos时,为什么会出现WARNING:stress and forces are not correct。这是那些原因造成的,计算的是多铁物质。还有就是在优化时,TOTAL-FORCE这项怎么全是0啊,原子这个没有关系的

答:用优化后的CONTCAR算band或dos都会出现这个提示位置没有变化啊,这是怎么回事啊?

6、我在做能带计算,发现自洽计算和非自洽计算中,OUTCAR文件中都可以找到一个费米能级的大小,但是现在迷茫的是,不知道在画能带时减去的费米能级的大小应该取哪个结果文件中得值?是取自洽计算的结果文件中的E-fermi ,还是取非自洽的结果文件中的E-fermi 的大小??

答:算能带的那次计算,指的是自洽(求解WAVECAR和CHGCAR的那一步)的那步计算,还是非自洽(直接读取自洽的电荷和波函数,进行非自洽计算)的那次计算啊?我对这个说法的标准不是很理解,希望您能再指导一下,我觉得画能带图时,费米能级的取值是否正确是很关键的,取自洽计算得到的E-fermi




https://blog.sciencenet.cn/blog-3421716-1220016.html

上一篇:[转载]VASP +U与自旋极化计算同时or不同时设置
收藏 IP: 111.79.191.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 11:14

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部