VASP遇到小总结问题 联系客服

发布时间 : 星期五 文章VASP遇到小总结问题更新完毕开始阅读5dd19a2a55270722182ef717

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设置为负,但是它们的绝对值一样。因此在进行反铁磁的计算时,