服饰

攻略第一性原理计算结构优化

2019-11-09 11:36:30来源:励志吧0次阅读

前言

结构优化的过程是获得公道结构的进程。所谓公道的结构,大多数场景下为在某些限制下能量更低的结构。这些限制,可以是结构维度的限制(比如限制为二维材料)、晶格的限制(比如施加了应变、放置于衬底上)、元素散布的限制(比如进行吸附时要求吸附物的空间散布)、对称性的限制(比如双层二维材料不同的堆垛方式导致体系对称性不同)。若使用不合理的结构进行后续的计算,比如体系能量、电子结构、磁态的计算结果就会出现较大的误差甚至是致命毛病。

1、对结构优化影响较大的计算参数

一些解释:

1)弛豫:在本文里即为结构优化的意思。

2)电子步:自洽迭代时一次迭代称作一个电子步。

3)离子步:一次自洽计算称作一个离子步。自洽计算通常需要进行多步迭代,即一个离子步包含多个电子步。

攻略第一性原理计算结构优化

4)分步优化:在结构优化时,可以先使用较低精度的参数组合,快速取得一个较为合理的结构;然后再使用更高精度的参数组合进一步优化,直至取得合理的结构。这里的分步即是多次结构优化计算。所谓的较为公道的结构,其反面对应的是离合理情况较远的的结构,常见的有:未弛豫的间隙原子搀杂、空位原子、表面小份子吸附、手动搭建的新结构等。特别是对构建了缺陷的大体系,使用分步优化乃至可以节省一半以上的计算耗时。关于分步优化的进一步讨论见下文。

5)k-spacing:在倒空间中在 ka,kb,kc 三个倒格矢上相邻 k 点的距离,由 KpOINTS 文件控制。

6)如何获得初始结构 pOSCAR:

从现有的材料数据库中导出cif文件,然后使用VESTA或者VASpKIT把cif文件转换为pOSCAR格式的文件。常用数据库有:

https://materialsproject.org/#search/materials/

https://materials.springer.com/periodictable#

基于现有结构搭建。有许多软件都可以用于建模,经常使用的有Materials Studio(简称 MS) 。使用 MS 建好模型后,导出cif文件,然后使用VESTA或VASpKIT把cif文件转换为pOSCAR格式的文件。

7)结构优化的进程见下列简单的流程图(简单绘画,一些不当的细节请忽略):VASp会对当前结构进行自洽迭代取得该结构的电荷密度,计算该结构的能量和原子受力,然后判断是不是达到结构优化收敛判据。若没到达,则生成新结构,使用新结构进行自洽计算 … 如此往复,直至达到收敛判据或到达设定的最大离子步数(NSW 控制),计算退出。如何判断弛豫是不是完成见下文 “结构优化需要收集的信息” 。

8)备注:个人只使用过负的EDIFFG,在此不考虑正数EDIFFG的情况。

攻略第一性原理计算结构优化

pREC、ENCUT、EDIFF、KpOINTS

pREC、ENCUT、EDIFF、KpOINTS这四个参数会显著影响电子迭代的速度、和得到的结果的精度。自洽迭代的精度会进一步影响各个原子上受力的精度。

1、对于大体系或者离合理结构较远的体系的结构优化,强烈建议进行分步优化。个人常用的分步优化方案见下文 “个人常用分步优化方案” 。

2、

攻略第一性原理计算结构优化

ISpIN

ISpIN参数确定自洽计算是不是斟酌自旋极化。若斟酌自旋极化,自旋向上和自旋向下的电子将被当作不同的对象进行处理,此时电子步耗时会增加 (有时还会致使自洽迭代步数增加,甚至致使自洽迭代不收敛) 。对于暂不确定是不是有磁性的体系,建议在结构优化时打开ISpIN =2,并设置合理的MAGMOM值。若进行分步优化,我自己在第一步低精度优化时会考虑关掉自旋极化 (即ISpIN = 1)(对小体系,我可能会在此时直接打开ISpIN=2) ,而在后面高精度结构优化时打开ISpN=2。

ALGO、IMIX(及 IMIX 相关参数)

ALGO、IMIX(及 IMIX 相关参数)控制电子自洽迭代的算法,既影响每一步电子步耗时,也影响自洽收敛所需电子步数。关于这1参数的具体讨论可参考本人的帖子《加快磁性材料电子迭代收敛经验小结》。

LREAL

LREAL同样会影响电子迭代速度和计算精度。贴一段手册中对这1参数的描述:We recommend to use the real-space projection scheme for systems containing more than 20 atoms.

1)根据手册描述,若体系原子大于20个,可以考虑使用LREAL=Auto。

2)若关注的性质需要误差很小,比如极小的带隙 (meV范围),磁各向异性能 (多在μeV范围内),建议使用LREAL=.FALSE.。

3)一样,若做分步优化,在第一步粗精度优化时,若体系原子大于 20 个,个人会考虑使用LREAL=Auto。

EDIFFG

EDIFFG,负值为每一个原子上的最大受力。若体系中每个原子受力小于该值,则判断为到达结构优化要求,完成计算。若做分步优化,在第一步粗精度优化时,个人经常使用EDIFFG=-0.05 ~ -0.08,最后的精优化经常使用EDIFFG=-0.01。

NSW

NSW,结构优化中最大离子步数。若计算 NSW 步离子步后,结构优化仍然不收敛,则退出计算。若做分步优化,在第一步粗精度优化时,根据个人经验,NSW 最大设成200便可。第一步粗优化跑完200步依然不收敛也没有关系,此时我们的目的 (获得较合理的结构) 已经达到了,可以斟酌进行下一步的精优化。

ISYM

ISYM,控制自洽迭代时是否需要斟酌对称性。结构优化时多用ISYM=0 或 ISYM=2。设置ISYM=2打开对称性的话,VASp 中会涉及如下操作:

1、确定结构的对称性:结构所属的布拉维晶格类型、点群和空间群。

2、布拉维格子类型在OUTCAR 中“LATTpY”关键字后面打印出来 (阅读 VASp 源代码可知),见下面第一张图 。

3、在“LATTpY”关键字后面几十行,打印了体系所属点群信息 (其中包括static configuration 和 dynamic configuration,我目前还不确定这两个具体都有甚么区别) ,见下面第二张图。

4、如果体系打开了自旋极化(ISpIN=2),还会给出考虑了磁态后所属的点群。MAGMOM的设置会影响这一对称性。要提一句的是,MAGMOM的正负值不影响磁态所属点群,其绝对值才影响磁态所属点群。以CrI3结构为例,CrI3属于D3d点群。若MAGMOM = 6*0 2*3,此时磁态属于 D3d 点群。若把其中一个Cr原子初始磁矩设为设为负数,即MAGMOM = 6*0 3 -3,此时磁态仍然属于D3d点群。若改变一下Cr原子初始磁矩大小,比如MAGMOM=6*0 3 3.5,此时磁态属于D3点群,见下面第三张图。

5、确定斟酌了对称性后用于计算的不可约 K 点,查看 IBZKpT 文件可见。此时用于计算的 K 点个数减少,电子步耗时将减少,计算速度加快。

若还未确定合理结构所属对称性:在进行分步优化,个人建议在第一步粗优化时不要加上对称性 (即设置 ISYM=0) 。关于对称性的更具体讨论见下文。

IBRION

IBRION,控制产生新结构的算法。若进行分步优化,个人在第一步粗优化时使用IBRION=2。若认为当前结构离合理结构比较接近,个人会考虑换用IBRION=1。IBRION 参数的说明从手册中摘抄以下:

IBRION=1:对初始结构接近局域极小时是最好的选择。

IBRION=2:比较可靠,弛豫困难时,推荐使用。

IBRION=3:对非常糟的初始结构进行弛豫时可斟酌使用。

ISIF

ISIF,在产生新结构时,决定晶胞和原子如何变化。手册中有一个表格说明了不同 ISIF 值对应甚么意思,此处不再摘抄下来。我个人经常使用的 ISIF 解释以下:

1) ISIF=2:保持晶格常数不变,仅弛豫原子。施加双轴应变进行结构优化,或弛豫零维体系时,就需要使用 ISIF=2。一些复杂体系弛豫时,为了加快结构优化,第一步粗优化也可以考虑使用 ISIF=2 弛豫后,再在后面的精优化中使用 ISIF=3。

2) ISIF=3:在弛豫原子时,也弛豫晶格。在弛豫晶格时,可以通过修改 VASp 源代码 constr_cell_relax.F 文件,实现一些 VASp 手册中没有提到的结构优化方式,比如固定某个晶格的优化,具体讨论见下文。在计算二维材料时,在设置了足够大的真空层后,个人喜欢使用 ISIF=3,并在优化时固定住 c 方向晶格 (真空层位于 c 方向) 。

pOTIM

pOTIM,(简单理解为) 在产生新结构时,控制原子移动的距离。VASp 会根据原子上的受力和 pOTIM 计算原子移动的距离。pOTIM 越大,原子移动的距离越大。

1)在作分步优化时,对极度不合理的结构,第一步粗优化个人有时会考虑设置增大 pOTIM 值 (如 pOTIM=0.2),加快原子移动到较公道的位置。

2)若结构经多次弛豫仍然没法收敛,此时结构可能离合理结构非常接近,但一直在势能极小值点附近振荡,此时将 pOTIM 值调小,使用 IBRION=1 会有助于结构的收敛。

二、几种常见情况及讨论

对称性的影响

对称性的影响:在结构优化过程中,对称性极为重要。寻找合理结构的进程,一方面也是确定结构对称性的进程。对称性主要影响三个方面:

1、计算速度:

斟酌了对称性后,只需要使用简约区内的 k 点进行积分计算,电子步耗时缩短。同时,原子受力也会受到对称性的影响,原子只能在对称性允许的方向上移动,保证结构的对称性不会降低 (在弛豫进程中,结构对称性可以升高,但不会下降) 。一般情况下,给体系加上公道的对称性会使得体系更快收敛到公道的结构。但若加上不合理的对称性,会致使以下两个问题。在个人经常使用分步优化方案中说明了如何寻找结构合理的对称性。

2、体系的合理性:

在搭建新结构时,以某纯平面二维材料中掺入过渡金属 (TM) 为例。如果在初始搭建模型时,TM 与二维材料处于同一平面,那末在弛豫时,(即使不加对称性 ISYM=0) ,TM 在垂直平面方向受力始终为0,弛豫后全部材料依然会保持纯平面的结构。但如果 TM 略微突出二维材料平面,弛豫后 TM 及其附近的二维材料出现较大起伏。两种结构的能量对比如下表,此时后者体系能量明显低于前者。

往体系中掺杂间隙原子 (比如上例) ,或者从已有结构做元素替换成新结构 (比如从 MoS2 动身把 Mo 替换成其他 TM,或者把一部分的 S 替换成其他元素) ,个人建议在构建初始结构时,手动移动某些关键原子,尽可能使得结构只具有 p1 对称性,避免初始结构处于势能面上某些特殊点。这样往往可以获得能量更低的结构。

3、对电子结构(主要是对与能带相干的量)的影响:

以石墨烯为例。如果关注石墨烯布里渊区高对称点 K 点处的性质。如果在结构优化时,没有找到正确的对称性 (D6h),而 VASp 给确定成了 C2h 对称性。C2h 对称性的石墨烯晶格常数 a ≠ b,格矢 a 和 b的夹角可能与 120°存在一定偏差,这会致使该结构倒空间中的高对称点 K 点与真正的 K 点 (D6h 对称性的石墨的 K 点) 有偏离,进一步导致与 K 点有关的量存在计算误差。而这个误差,是可以通过给结构加上正确的对称性完全避免的。

个人经常使用分步优化方案

个人常用分步优化方案:对基于现有结构产生的新结构 (比如构造缺陷,元素替换,原子位置调剂) 和纯粹手搭的全新结构,常常需要屡次优化才能取得合理结构。以两步优化为例,个人经常使用优化方案如下:

Step1:手动微调一些原子,使其只具有 p1 对称性 (比如在 MS 中以 0.01Å 的精度找到的对称性为 p1 )。

pREC = M

ISpIN = 1

EDIFF = 1E-04 (若体系较小或认为离合理结构较近,斟酌使用 1E-05)

EDIFFG = -0.05 (若体系较小或认为离合理结构较近,斟酌使用 -0.03;若体系很大,斟酌使用 -0.08)

LREAL = Auto (原子数目大于 20 使用 Auto,小于 20 使用 .FALSE.)

NSW = 200

IBRION = 2

ISIF = 3 (有的时候使用 ISIF = 2 也是不错的选择)

ISMEAR = 0 SIGMA = 0.1

ISYM = 0

K-spacing = 0.03Å-1 ~ 0.04Å-1

Step2:将 step1 取得的结构导入 MS 中,按照 0.05 Å ~ 0.1Å 的精度寻觅对称性并加上该对称性。该对称性可能会是体系公道的对称性。

pREC = N

ISpIN = 2 (若认为体系没有磁性,可使用 ISpIN = 1)

EDIFF = 1E-06

EDIFFG = -0.01

LREAL = Auto (原子数目大于 20 使用 Auto,小于 20 或者想进一步提高计算精度,则使用 .FALSE.)

NSW = 200

IBRION = 2

ISIF = 3

ISMEAR = 0 SIGMA = 0.1 (见下面讨论)

ISYM = 2

K-spacing = 0.02Å-1 ~ 0.025Å-1

pOTIM (可以不调剂,若体系屡次优化仍然不收敛,使用更小的 pOTIM 值)

Step3:在 step1 的基础上,可以大致判断出体系为金属还是半导体,判断方法见本人帖子《加快磁性材料电子迭代收敛经验小结》。根据体系是半导体还是金属,调剂 ISMEAR 和 SIGMA。

半导体:ISMEAR=-5

金属:ISMEAR=1,SIGAM=0.1。

可以继续使用 ISMEAR=0,但是需要根据 EENTRO 设置合理的 SIGMA 值。对金属,根据 step1 中最后的 EENTRO 值调剂 SIGMA 值,尽可能使得 EENTRO/atom 在 1meV ~ 2meV。(SIGMA 越大,EENTRO 最大)。

Step4:每一步需要搜集相应的信息,见下文。如果 pOSCAR 和 CONTCAR 的晶格常数差别较大,优化过程中使用的平面波对 CONTCAR 的描述可能已有较大的偏差,(即使在 step2 中弛豫收敛了) 需要斟酌使用 CONTCAR 进一步优化。个人常用的标准为 1% (即 pOSCAR 和 CONTCAR 晶格常数只差的最大值)。、

已有结构的优化

已有结构的优化:对于已知对称性的结构,可以直接加上其对称性,使用公道的晶格常数进行优化。

固定某个晶格的优化

固定某个晶格的优化:通过修改 VASp 源代码 constr_cell_relax.F 文件,实现一些 VASp 手册中没有提到的结构优化方式,比如固定特定晶格的优化 (目前个人认为也能够实现固定特定晶格夹角的优化,未来若实现了这1功能,会发布详细的讨论及说明) 。如何实现固定特定晶格的优化,可以参考刘锦程博士的博文:

http://blog.wangruixing.cn/2019/05/05/constr/ 。

需要提示的是:

1、OpTCELL 文件中 0 和 1 之间是没有空格的。

2、刘锦程博士的博文中还讨论了一种情况:将 OpTCELL 中上三角矩阵元设为 0 可以使得在弛豫进程中晶胞晶格不发生转动。但个人认为这么做可能存在一定的风险。具体讨论如下:

简单起见,假定晶格 c 轴垂直于 ab 轴平面。同时假定 a 轴沿笛卡尔坐标系 x 轴正方向(即 L_ax > 0),b 轴 x 方向分量 L_bx > 0 且 y 方向份量 L_by > 0。示意图以下:

格矢变换矩阵为:其中 F 矩阵为 FCELL 矩阵,L 矩阵为 A_OLD 矩阵,其中正数标记为绿色。

在 Lax、Lbx、Lby均大于 0 的情况下,在 F 矩阵元取不同值时,等式右边晶格增量矩阵中 a 晶格在 x 和 y 方向的增量:Fax*Lax+Fay*Lbx和 Fay*Lby,可能是正值也可能是负值,一共有4种情况,见下图。

若将Fay矩阵元置零,则 a 晶格在 x 和 y 方向的增量分别从 Fax*Lax+Fay*Lbx和 Fay*Lby退化为 Fax*Lax和 0。这时候除 y 方向增量被置零,x 方向的增量也受到了影响。若 Fax> 0,对应 Fax*Lax> 0,此时若 Fayax*Lax+Fay*Lbxay矩阵元置零前后,a 晶格在 x 方向增量正负值可能会不一样,导致a 晶格朝着相反的方向变化。

三、结构优化后需要收集的信息

在完成结构优化后,务必要搜集整理好相干的信息。下图为本人结构优化完成后使用脚本取得的基本信息。截图中每个量的含义介绍如下。判断结构是不是完成弛豫主要看下面标红色的指标。

1、E0:OUTCAR 中最后一个 energy(sigma->0) 对应的能量。为最后给出的体系的能量

2、EENTRO:OUTCAR 中最后一个 EENTRO 值。为最后给出的体系的 “熵” 值。

3、require:搜索 OUTCAR 中是否打印了 【reached required accuracy - stopping structural energy minimization】 这一句话。若有,则说明弛豫收敛了,显示 “reached” 。

4、pressure:OUTCAR 中最后一个 external pressure 对应的值。对不加压计算,其绝对值通常小于 1。

5、time:OUTCAR 中 Elapsed time 对应的时间。为计算耗时。

6、MAGNE:OSZICAR中最后一个 mag 对应的能量。为最后给出的体系的总磁矩。

7、Edisp:OUTCAR 中最后一个 Edisp 对应的能量。为考虑了 vdw 校正,最后给出的 vdw 校订能量。若不设置 vdw 校正,则输出 “--” 。

8、pullay:OUTCAR 中最后一个 pullay stress 对应的值。不加压计算,该值为 0。

9、sta_sym、dyn_sym、mag_sym:分别为 static configuration、dynamic configuration、magnetic configuration 对应的点群。

10、diff(%):三个格矢三个分量以及各个晶格常数 (pOSCAR - CONTCAR)/pOSCAR 值。在 Total 一栏中的值若大于 1%,我个人会考虑再次优化。

11、subt(A):三个格矢三个分量以及各个晶格常数 (pOSCAR - CONTCAR) 值。

若体系弛豫是打开了自旋极化 (ISpIN=2),还需要搜集整理磁矩相干的信息。

1、mag_tot:OSZICAR中最后一个 mag 对应的能量。为最后给出的体系的总磁矩。即为上一个截图中的 MAGNE。

2、ISpIN:若设置了 ISpIN=1,或每个原子磁矩绝对值都小于 0.01,则该值为 1。

3、atom_nam:元素符号。

4、atom_mag:OUTCAR 中最后一个离子步结束后给出的原子磁矩。

下图为个人将上述信息简要记录到 word 文件中所用的模板:

上述两个截图均由脚本生成,脚本稍后会上传至 qq 群(432953524,DFT计算之家-砥砺前行)。

四、其他讨论

结构优化给出的态密度是不是可用:阅读手册 DOSCAR 的介绍部分,可以看到在弛豫时,DOSCAR 包含的是平均 DOS。手册不建议使用弛豫时的 DOSCAR。“For dynamic simulations and relaxations anaveraged DOSand anaveraged integrated DOSis written to the file.… Mind:For relaxations the DOSCAR is usually useless.”。个人认为,如果弛豫时离子步只跑了很少的步数 (比如 20 步以内),结构没有发生较大变化,即弛豫过程体系电子结构没有产生较大变化,可以通过弛豫输出的 DOSCAR 获得体系的 DOS,从而大概判断体系为金属还是半导体,带隙大小。

结构优化给出的能量是不是可用:如果在弛豫过程中,晶格变化较小 (比如晶格常数相差 5% 以内,晶格夹角相差 5% 以内),结构没有产生较大的变化,可以使用弛豫给出的体系能量做一些快速判断 (比如吸附能,铁磁反铁磁能量差)。更进一步,弛豫在 20 步以内快速收敛,且晶格变化非常小 (1% 之内),结构优化给出的数据与后续静态计算给出的数据几近是一样的。下表为某体系吸附小分子的吸附自由能比较,可以看到分别使用弛豫和自洽计算的能量取得的吸附自由能相差在 1meV 以下。需要进一步说明的是,若要取得更加准确的能量,建议增加 K 点进行自洽计算。

五、总结

1、结构优化的重要性无论如何强调都不为过。

2、一定要花时间做各种检查:计算前检查初始文件,计算中检查弛豫进程,计算后检查结构及各种指标。

3、一定要花时间记录好弛豫后的信息,特别是对于磁性体系,强烈建议记录好结构的磁矩信息。之后的计算,包括单点能计算,能带计算,声子谱计算,都应该检查自洽结束后输出的磁矩信息,确保体系收敛到了弛豫给出的磁态。

本文作者为中科大无缺。

本文系学术之友微信公众号与材料人联合推出的计算攻略专栏。

【更多攻略】

材料人App延续推出了第一性原理、份子动力学系列课程,包括vasp、lammps、cp2k、qe、gromacs等软件的教学视频,永久回看,可开发票。

相干课程介绍

如有需要,欢迎下载材料人App观看

伟哥是什么_伟哥是什么意思

『伟哥』可能预防DOX化疗诱发的心肌病

印度神油口交

吃伟哥有什么副作用_伟哥的副作用一星期服用一次伟哥会有副作用吗?

分享到:
  • 友情链接
  • 合作伙伴