出品:科普中国
制作:中科院物理所科学传播协会
监制:中国科学院计算机网络信息中心
量子力学求解的困难
上世纪初出现的量子力学为我们研究微观世界的运行机理提供了强有力的工具,似乎所有的问题都可以通过求解一个薛定谔方程来解决。但在实际应用过程中却发现能够精确求解的体系实在是少之又少,即便是最简单的氢原子求解起来也并不容易,对于更加复杂的凝聚态体系更是无从下手。
因此,寻找可以描述凝聚态体系性质的简单模型和行之有效的近似方法称为物理学家的研究重点之一。赝势方法和经验赝势方法就是其中强有力的代表,于1998年获得诺贝尔化学奖的密度泛函理论也和这两种方法密切联系。
我们知道,无论在经典力学力还是在量子力学里,单粒子问题都是最好解决的。所以我们自然会想到,是否可以通过对单粒子体系的计算来理解多粒子体系的行为?不过,即使对于单粒子体系的求解也会因为势场在空间中的波动使计算变得困难(尤其是在计算机还没有出现的时候)。幸运的是,(经验)赝势方法可以较好地解决这两个问题。
赝势方法
赝势的概念最早是费米在研究高激发态电子时引入的。之后,赫尔曼尝试用赝势方法计算碱金属的能级。到1950年左右,赝势方法开始广泛应用到凝聚态物理领域。赝势方法之所以好用是因为很多时候我们只需要考虑价电子的行为,而芯电子可以和原子核一起组成一个整体,这样价电子就像在一个微弱的单电子势中运动。这让整个计算变得简单很多。
基于正交平面波(OPW)方法的赝势最早由Herring引入。在正交平面波方法中晶体波函数和芯电子波函数正交并用布洛赫函数和芯电子态进行展开。我们可以引入离子吸引势计算芯电子态,再利用的引入排斥势计算布洛赫函数。吸引势和排斥势的共同作用使得总势场在空间中变化缓慢,相应地,场强很弱。这套方法被称为Phillips-Kleinma方法,它也证明了为什么金属中价电子的行为表现得像近自由电子。
之所以在赝势中引入吸引部分和排斥部分是因为在接近原子的区域,势场主要由原子实提供,表现出强烈的吸引作用,在其他区域由于电子屏蔽等作用,吸引势被抵消,这也是我们引入排斥势来抵抗吸引势的原因。
经验赝势法
前面提到的Phillips-Kleinma方法将计算能带的问题简化成一个单电子问题。但想要直接确定赝势仍不是一件简单的事情。在前人工作的基础上,Cohen等人发展出经验赝势方法。
这种方法将赝势计算和晶体自身的独特对称性联系起来,赝势的形式会受到对称性的很多的限制,因此可以大大减小我们计算赝势时的难度。
由于晶体具有平移对称性,我们可以假定电子感受到的单电子势场也具有周期性。一般地,通过傅里叶变换可以将晶体势场按照倒格矢进行展开。这看起来好像并没有让问题变简单,但是对于实际应用来说,当阶数很大时,分量的系数会变得很小以至于可以忽略不计。如果再考虑到对称性的限制,我们往往只需计算少数几个系数。
在实际的使用中,我们需要几个初始的系数,通过一系列手续计算出能带和可以直接测量光电等性质,然后和实验得到的数据进行比较,如果和实验符合则计算结束,如果和实验不符则修改系数重新计算直到可以吻合。
影响
(经验)赝势方法的出现使得对凝聚态体系的理论计算称为可能,它从科学上阐明了很多我们之前不理解的问题,如为什么虽然金属中既有电子又有离子实但是电子的行为和自由电子非常像。
在应用中,经验赝势方法为半导体工业起到了强大的指导作用。半导体工业的发展催生了计算机技术的进步。有趣的是,计算机技术的进步反过来促进了(经验)赝势方法的发展。
参考文献:
[1] E. Fermi, Nuovo Cimento 11, 157 (1934).
[2] H.J. Hellman, J. Chem. Phys. 3, 61 (1935).
[3] J. C. Phillips and L. Kleinman, Phys. Rev. 116, 287 (1959).
[4] J. R. Chelikowsky and M. L. Cohen, Phys Rev. B 10, 12 (1974).
[5] J. R. Chelikowsky and M. L. Cohen, Phys. Rev. B 10, 5059 (1974).
第一性原理其实是包括基于密度泛函的从头算和基于Hartree-Fock自洽计算的从头算,前者以电子密度作为基本变量(霍亨伯格-科洪定理),通过求解Kohn-Sham方程,迭代自洽得到体系的基态电子密度,然后求体系的基态性质;后者则通过自洽求解Hartree-Fock方程,获得体系的波函数,求基态性质
DFT中密度泛函的Functional, 包括LDA,GGA,杂化泛函等等
在处理计算体系中原子的电子态时,有两种方法,一种是考虑所有电子,叫做全电子法,比如WIEN2K中的FLAPW方法(线性缀加平面波);此外还有一种方法是只考虑价电子,而把芯电子和原子核构成离子实放在一起考虑,即赝势法,一般赝势法是选取一个截断半径,截断半径以内,波函数变化较平滑,和真实的不同,截断半径以外则和真实情况相同,而且赝势法得到的能量本征值和全电子法应该相同。
赝势包括模守恒和超软,模守恒较硬,一般需要较大的截断能,超软势则可以用较小的截断能即可。另外,模守恒势的散射特性和全电子相同,因此一般红外,拉曼等光谱的计算需要用模守恒势。
赝势的测试标准应是赝势与全电子法计算结果的匹配度 ,而不是赝势与实验结果的匹配度,因为和实验结果的匹配可能是偶然的。
一般何时考虑自旋呢?举例子,例如BaTiO3中,Ba、Ti和O分别为+2,+4和-2价,离子全部为各个轨道满壳层的结构,就不必考虑自旋了;对于BaMnO3中,由于Mn+3价时d轨道还有电子,但未满,因此需考虑Mn的自旋,至于Ba和O则不必考虑。其实设定自旋就是给定一个原子磁矩的初始值,只在刚开始计算时作为初始值使用,具体的可参照磁性物理。
包括很多种了,比如晶格常数和原子位置同时优化,只优化原子位置,只优化晶格常数,还有晶格常数和原子位置分开优化等等。在PRL一篇文章中见到过只优化原子位置,晶格常数用实验值的例子(PRL 100, 186402 (2008));也见到过晶格常数先优化,之后固定晶格常数优化原子位置的情况;更多的情况则是Full geometry optimization。
一般情况下,也有不优化几何结构直接计算电子结构的,但是对于缺陷形成能的计算则往往要优化。
软件大致分为基于平面波的软件,如CASTEP、PWSCF和ABINIT等等,计算量大概和体系原子数目的三次方相关;还有基于原子轨道线性组合的软件(LCAO),比如openmx,siesta,dmol等,计算量和体系原子数目相关,一般可模拟较多原子数目的体系。
VASP是使用赝势和平面波基组,进行从头量子力学分子动力学计算的软件包,它基于CASTEP 1989版开发。VAMP/VASP中的方法基于有限温度下的局域密度近似(用自由能作为变量)以及对每一MD步骤用有效矩阵对角方案和有效Pulay混合求解瞬时电子基态。这些技术可以避免原始的Car-Parrinello方法存在的一切问题,而后者是基于电子、离子运动方程同时积分的方法。离子和电子的相互作用超缓Vanderbilt赝势(US-PP)或投影扩充波(PAW)方法描述。两种技术都可以相当程度地减少过渡金属或第一行元素的每个原子所必需的平面波数量。力与张量可以用VAMP/VASP很容易地计算,用于把原子衰减到其瞬时基态中。
我们平时最常用的研究方法是做单点能计算,结构优化、从头计算的分子动力学和电子结构相关性质的计算。一般我们的研究可以按照这样的过程来进行
跟其它软件类似,VASP具有单点能计算的功能。也就是说,对一个给定的固定不变的结构(包括原子、分子、表面或体材料)能够计算其总能,即静态计算功能。
单点能计算需要的参数最少,最多只要在 KPOINTS 文件中设置一下合适的K点或者在 INCAR 文件中给定一个截断能 ENCUT 就可以了。还有一个参数就是电子步的收敛标准的设置 EDIFF,默认值为 EDIFF=1E-4,一般不需要修改这个值。
具体来说要计算单点能,只要在 INCAR 中设置 IBRION=-1 也就是让离子不移动就可以了。
结构优化又叫结构弛豫 (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 点数目等。
弛豫是一种非常有效的分析计算手段,虽然是静力学计算但是往往获得一些动力学得不到的结果。
vasp 做分子动力学的好处,由于vasp是近些年开发的比较成熟的软件,在做电子 scf 速度方面有较好的优势。缺点:可选系综太少。尽管如此,对于大多数有关分子动力学的任务还是可以胜任的。主要使用的系综是 NVT 和 NVE。一般做分子动力学的时候都需要较多原子,一般都超过100个。当原子数多的时候,k点实际就需要较少了。有的时候用一个k点就行,不过这都需要严格的测试。通常超过200个原子的时候,用一个k点,即 Gamma 点就可以了。
结构弛豫的判据一般有两中选择:能量和力。这两者是相关的,理想情况下,能量收敛到基态,力也应该是收敛到平衡态的。但是数值计算过程上的差异导致以二者为判据的收敛速度差异很大,力收敛速度绝大部分情况下都慢于能量收敛速度。这是因为力的计算是在能量的基础上进行的,能量对坐标的一阶导数得到力。计算量的增大和误差的传递导致力收敛慢。
到底是以能量为收敛判据,还是以力为收敛判据呢?关心能量的人,觉得以能量为判据就够了;关心力相关量的人,没有选择,只能用力作为收敛标准。对于超胞体系的结构优化,文献大部分采用 Gamma 点做单点优化。这个时候即使采用力为判据 (EDIFFG=-0.02),在做静态自洽计算能量的时候,会发现,原本已经收敛得好好的力在不少敏感位置还是超过了结构优化时设置的标准。这个时候,是不是该怀疑对超胞仅做 Gamma 点结构优化的合理性呢?是不是要提高K点密度再做结构优化呢。
在我看来,这取决于所研究的问题的复杂程度。我们的计算从原胞开始,到超胞,到掺杂结构,到吸附结构,到反应和解离。每一步都在增加复杂程度。结构优化终点与初始结构是有关的,如果遇到对初始结构敏感的优化,那就头疼了。而且,还要注意到,催化反应不仅与原子本身及其化学环境有关,还会与几何构型有关。气固催化反应过程是电子的传递过程,也是分子拆分与重新组合的过程。如果优化终点的构型不同,可能会导致化学反应的途径上的差异。仅从这一点来看,第一性原理计算的复杂性,结果上的合理性判断都不是手册上写的那么简单。
对于涉及构型敏感性的结构优化过程,我觉得,以力作为收敛判据更合适。而且需要在 Gamma 点优化的基础上再提高 K 点密度继续优化,直到静态自洽计算时力达到收敛标准的。
结构优化,或者叫弛豫,是后续计算的基础。其收敛性受两个主要因素影响:初始结构的合理性和弛豫参数的设置
初始结构
初始结构包括原子堆积方式,和自旋、磁性、电荷、偶极等具有明确物理意义的模型相关参数。比如掺杂,表面吸附,空位等结构,初始原子的距离,角度等的设置需要有一定的经验积累。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步(默认的),后面就会越来越快了。
总的说来,一般入门者,多看手册,多想多理解,多上机实践总结,比较容易提高到一个熟练 *** 作工的水平。
如果要想做到“精确打击”,做到能在问题始发的时候就立刻采取有效措施来解决,就需要回归基础理论和计算方法上来了。
原子吸附问题不大,但是小分子吸附,存在初始构型上的差异。slab上水平放置,还是垂直放置,可能导致收敛结果上的差异。根据H-K理论,理想情况下,优化得到的应该是全局最小,但在数值计算的时候可能经常碰到不是全局最小的情况。实际 *** 作中发现,多个不同初始结构优化收敛后在能量和结构上存在一定差异。
为了加快收敛速度,特别是对于表面-分子吸附结构,初始放松约束,比如EDIFF=1E-3,EDIFFG=-0.3,NSW=30可能是很好的设置。但是下面的情况应当慎重:
电子步收敛约束较小,而离子步约束偏大,离子步数又很多,这种情况下,可能导致的结果是结构弛豫到严重未知的区间。
再在这个基础上提高约束来优化,可能就是徒劳的了——结果不可逆转的偏向不正常的区间。
好的做法,是对初始结构做比较松弛的约束,弛豫离子步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。如此这般,才放心的展开后续计算。
结构优化到这个阶段,是高级的了。为了得到特定结构,或者为了验证某些猜想,需要设计合理的初始结构,然后在这个基础上小心优化,比如 POTIM=0.1 跑几步看看,然后修改优化参数。
我遇到过的一件跟结构优化关系很大的算例是 CeO2 氧空位结构电子局域的问题 。按照一般方式(从优化好的bulk建slab模型,然后优化)得到一个O空位留下的两个电子均匀局域到O次外层三个Ce原子上,得到空位形成能2.34eV.经高人指点后,调节空位附近O原子位置,打破对称性后重新优化,两个电子完美的局域到两个Ce原子上了。并且空位形成能降低到2.0X eV。从这个例子可以看到,结构优化存在不少技巧的,这些技巧建立在研究者对模拟对象的物理意义的理解上。对物理图像的直观深入理解,才能做好模型预设,在此引导下才可能有目的的优化出不比寻常的结果。
目前第一性原理理论中的交换关联泛函部分包含经验参数。考虑这一点对优化结果的影响也很有意思。比如有专家提到,DFT+U参数对某些结构的收敛终态构型有影响。构型的变化可能影响表面反应过程。基于这一点,一个好的计算研究可能就出来了。
真实过程总是复杂多变的。无论何种模拟,估计都可以找到一些试验现象来验证。但是到底应该如何评判模拟结果,如何从第一性原理研究中得出有意义的结论需要很好的洞察力。这样的模拟不见得就必须建立的试验的基础上,完全凭空设计的模型有可能更能优美的解释本质。
第一个WARNING,可以在INCAR文件中设置NGX,NGY和NGZ的值,设置的值要足够大,就可以消除这个warning。设置多大合适呢?这就要用到编译vasp时,同时也编译得到的make param小程序, make paramv 可以帮助你预先检查你设置的文件是否正确,以及某些参数的值是否合适。要得到合适的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的系统用来计算,也没有这样的经历,我仅从在单机上的计算经验来谈,有错还请包涵。
顺磁 ,意味进行 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。这样就可以实现进行反铁磁的计算了。
答:OSZICAR中得到的磁矩是OUTCAR中最后一步得到的总磁矩是相等的。总磁矩和各原子的磁矩(RMT球内的磁矩)之和之差就是间隙区的磁矩。因为有间隙区存在,不一致是正常的。
ps:由于曾使用vasp和dmol算过非周期体系磁性,结构对磁性影响非常大,因此使用这两个程序计算的磁性要一致很麻烦。还不敢确定到底是哪个程序可能不可靠。
答:如果算磁性,全电子的结果更精确,我的一些计算结果显示磁性原子对在最近邻的位置时,PAW与FPLAW给出的能量差不一致,在长程时符合的很好。虽然并没有改变定性结论。感觉PAW似乎不能很好地描述较强耦合。我试图在找出原因,主要使用exciting和vasp做比较。计算磁性推荐使用FP-LAPW, FP-LMTO, FPLO很吸引人(不过是商业的),后者是O(N)算法。
POTCAR 将要告诉vasp计算的系统中所包含的各种元素的赝势 pesudopotential,vasp本身就带有比较完善的赝势包,我们需要做的就是选择我们需要具体哪种赝势,然后把相应的文件拷贝形成我们具体的POTCAR文件。我们以GaAs为例。
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。当然自己能测试之后在选择是最好不过的了,以后再聊。
选好哪一种赝势之后,进入对应的目录,你会看到里边有这么几个文件,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 里各个元素的排列就是按着这里来的。
如果你想看POTCAR长什么样,可以用 vim POTCAR 命令,进去后可以用上下键移动光标。想出来的时候,可以敲入 :q! 就可以。具体的vim的命令可以在网上查到。一般我会看POTCAR里的截断能量为多大,用 grep -in "enmax" POTCAR 。
据说B3LYP的赝势计算比较准,我在MS上面测试过,好像DOS和能带图的计算确实比较准。不过不知道vasp有没有类似的赝势包。
hybrid functional 的计算,并不需要特定的 hybrid functional 的赝势。大部分就是基于GGA-PBE的赝势来做,也就是芯电子与价电子的交换关联作用,以及芯电子与芯电子的交换关联作用还是基于GGA-PBE的,只是将价电子与价电子的交换关联作用通过hybrid functional交换关联来描述。
内能 E(结合)= U(内能),一般情况都把孤立原子的能量作为能量参考点。前段时间有个同学问VASP中得出的绝对能量是相对于什么的,其实就是相对孤立原子得。
我们都知道VASP的所有计算都是在绝对0度下的情况,T=0代入上式,有F=U。所以结合就等于内能等于自由能。肯定有Free energy TOTEN=energy without entropy恒成立...
这时候肯定有人会说不对啊,可以看VASP手册,候博的参考书作证,肯定不对得。
现在我告诉你确实它们二者确实有区别,区别在下面的情况
注意 :(1)有人在算单个原子的能量时会发现单个原子的能量虽然很小但并不是0,但是按我上面的推导,固体中的结合能是相对孤立体系的能量而来的,所以单个原子得到的TOTEN肯定是0啊,原因在于我们的POTCAR不可能绝对合理,而且我们也知道计算单个原子的能量就是为了检测赝势,单原子得到的TOTEN越小说明赝势越好。但一般不会正好是0.对这个说法我还存在点疑问,写在了最后面。
(2)如果你注意的话,energy without entropy与Free energy TOTEN在SIGMA趋于0也不是完全相等,但是也会发现它们之间的差别在10E-3左右,原因在于计算机求积分、求极限不能像我们人一样达到任意的精度。
计算过渡态先要摆正心态,不急于下手。步骤如下:
博文作者 : http://blog.sina.com.cn/lipai91
原文链接 : http://blog.sina.com.cn/s/blog_b364ab230101e9dp.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)