VASP遇到小总结问题(2)

2019-01-07 12:43

初始结构包括原子堆积方式,和自旋、磁性、电荷、偶极等具有明确物理意义的模型相关参数。比如掺杂,表面吸附,空位等结构,初始原子的距离,角度等的设置需要有一定的经验积累。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 \。

据说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有一定的差别。此时


VASP遇到小总结问题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:英语专业英语教学法试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: