ABINIT 高通量第一性原理计算和数据管理集成框架的研发
2019-10-11周嘉欣杨小渝王宗国赵旭山
周嘉欣,杨小渝*,王宗国,赵旭山
1.中国科学院网络信息中心,北京 100190
2.中国科学院大学,北京 100049
引言
在众多对于材料学的模拟方法中,第一性原理[1]由于其无需经验参数和较好的精度,已经得到了研究者的广泛认可。量子力学计算软件有很多,其中VASP 和 ABINIT 是第一性原理计算中应用最为广泛的软件,但是由于 VASP 为商业软件,这给没有VASP 版权的科研人员想从事第一性原理方面的研究带来了困扰,另外,相比于 VASP 软件,ABINIT 软件[2]给用户提供了更多的接口,这为科研人员开展材料性质的理论研究提供了更多的灵活性。ABINIT 软件具有完全免费开源、运行效率较好和计算功能较齐全等优点,适用于固体物理, 材料科学,化学和材料工程的研究[3]。ABINIT 本身作为一款材料计算软件,使用繁琐,使用起来有一定的困难:需要熟悉Linux 操作;需要安装编译 ABINIT;需要解决计算的机时问题;用户需要自行编写脚本和设定参数;计算产生的结果数据需要自行分析和提取关键数据;计算数据保存在本地硬盘,易丢失。因此,需要寻找一种简单易用的方式使用ABINIT软件。
目前国内外有相关软件平台集成了ABINIT计算软件,如 MAPS、 Pymatgen、ASE 等。MAPS(Materials And Processes Simulations) 是 MAPS 是由法国 Scienomics 公司出品的一套商用模拟工具,MAPS 中各种计算引擎由开发源程序和与其相对应的界面组成的 Plug-in 组成。Pymatgen 和 ASE 是开源的 Python 软件包,对 ABINIT 进行了封装,需要用户自行下载安装,同时用户需要熟悉 Python 编程才能很好使用。
为了更方便的使用 ABINIT 开展第一性原理材料计算,本研究基于课题组已有的高通量材料集成计算和数据管理平台 MatCloud (http://matcloud.cnic.cn) 构建 ABINIT 软件集成框架,根据不同的计算性质和材料结构设置相关的参数,对于不熟悉 ABINIT 的用户也可以使用该软件进行材料部分性质的计算。此外,还对 ABINIT 的输入进行准确的描述,便于用户的修改和参考。计算结束后将自动提取计算结果,并进行可视化展示。计算的数据还可以利用平台提供的插件进行数据标识。
文章结构如下:第一部分简单叙述用于集成ABINIT 软件的高通量材料计算和数据管理平台以及关于 ABINIT 集成的现状;第二部分主要介绍高通量材料计算和数据管理平台集成 ABINIT 软件的基本集成框架;第三部分主要介绍高通量材料计算和数据管理平台的知识产品保护服务;第四部分基于已经集成的 ABINIT 功能进行材料计算;第五部分是对本论文工作的总结。
1 高通量材料计算和数据管理平台简介
高通量材料计算和数据管理平台是一个高通量材料集成计算软件框架,旨在为新材料的设计和计算提供一套通用性的方法和技术。该平台是基于“互联网+”和云计算 SaaS/IaaS 理念而研发的[5–6],采用了经典的 B/S (Browser/Server) 架构,使用了 .Net Core 框架,数据库存储使用 NoSQL 型数据库 MongoDB,支持高通量计算[7],能够在较短的时间内处理大规模的作业量[8]。平台[9]直接与计算集群或网格相连,支持多用户,高并发的材料集成计算与数据管理自动流程化,支持跨地域集群调度,图形化建模, 复杂计算流程设计等。实现了作业在线提交和监控、结果分析,数据提取和数据管理自动化,能有效开展大规模计算模拟,进行材料成分设计、性质预测、及机理解释等,通过材料数据库实现对数据的集中管理和挖掘。图1 展示了平台的主要工作原理[4],其中,高通量作业生成,高通量材料计算环境,高通量作业查询与监控和材料计算数据库部分是开展材料计算的全流程,材料大数据分析模块是在数据库基础上开展材料研究的数据方法。
本论文的工作主要是是基于高通量材料计算和数据管理平台集成ABINIT软件,方便用户使用云端资源进行性质计算和数据管理。基本流程如下:用户通过使用平台提供的建模工具,构建晶体结构模型,根据需求选择计算任务构建工作流,平台根据用户提供的晶体结构和计算任务自动设置ABINIT相关参数,通过作业调度系统将计算任务提交到HPC开展计算,作业监控系统会时时监控作业状态,作业完成后自动提取计算结果,将结果可视化处理,并存入数据库中。用户通过数据库检索,可以查看计算结果信息。
2 材料第一性原理计算软件 ABINIT 集成框架
高通量材料计算平台计算的核心在于工作流调度和性质计算工具的执行。其中,性质计算工具依托于工作流,具体关系如下:当启动构建的工作流后,由工作流解析引擎解析提交的作业,生成对应计算任务,再根据计算任务的需要调用对应的计算工具进行计算。本论文的主要工作是开发一个 ABINIT 计算软件集成框架,方便基于高通量材料计算平台的不同性质计算工具的集成开发,提供基于 ABINIT 的第一性原理基础计算和数据管理服务。ABINIT 计算软件集成框架如图2所示,针对此开发需要解决的主要问题是如何处理ABINIT计算的输入和输出问题。因此重点阐述输入处理和输出处理模块。
2.1 输入处理
ABINIT 计算软件集成框架的输入处理模块主要负责 ABINIT 输入文件的生成,可分为三个部分:
(1) 设置参数。包括性质计算参数、结构参数等,该部分需要专家建议或参考 ABINIT 手册来确定。
ABINIT 可以设置的参数数量非常大,在开发ABINIT 集成工作时,需要考虑如何处理这些参数,将对应计算的必要参数展示给用户。因此,参数设置页面中的参数需要通过合理选择,大量测试进行确定。在参数设置页面,提供了参数的统一描述,参数描述在第一性原理计算中都是通用的。用户可以通过描述信息较容易地对参数进行设置。以已经集成的结构优化和静态计算两种计算为例,展示页面设置的参数如图3 (a)、(b)所示。未展示的参数,主要是结构参数和 K 点相关的参数信息如表1所示。
图1 材料计算和数据管理平台的主要功能模块Fig.1 Main function modules of material computing and data management platform
部分输入参数之间存在关联关系,如参数Potentials 与 Exchange Correlation Type,这是因为交换关联势的选择取决于用什么类型的赝势,当Potentials 取 PAW_LDA 时,Exchange CorrelationType取 LDA or LSD,Teter Pade parametrization。当 Potentials 取 PAW_PBE 或 NC_PBE 时,Exchange Correlation Type 取 GGA,Perdew-Burke-Ernzerh of GGA functional。最终,输入处理模块会解析设置的参数来生成性质计算所需的输入文件。
(2) 解析参数。需要将前端用户设置的参数以及对应的结构信息传递至后台进行解析处理和存储。解析参数利用了 Angular 的双向绑定机制,将参数传递指后台,后台对接收的参数和结构信息进行解析,确定性质计算所需的参数信息,便于后续处理。
图2 ABINIT计算软件集成框架Fig.2 Integration framework of ABINIT software
图3 性质计算参数设置页面。(a) 是静态计算参数设置页面,(b) 是结构优化计算参数设置页面。Fig.3 Property calculation parameter setting page.(a) is the parameter setting page of Static Calculation, (b) is the parameter setting page of Geometry Optimization.
(3) 生成文件。根据解析后的参数信息生成ABINIT 性质计算所需的输入文件,如图4所示。ABINIT 的输入文件包括 x.in、x.files,其中 x.in 文件存储计算时所需要的所有参数 (x 可任取,但要配合x.files,本论文中 x 取 run) 。x.files 文件存储 ABINIT读入参数的文件的文件名、输出结果文件的文件名和赝势文件的路径。除了两个输入文件以外,还需要赝势文件,在集成 ABINIT 时,根据赝势的情况编写了pseudopotential.xml 文件,该文件中存储了每种元素所需的赝势信息,平台会根据计算的结构和参数信息自动在该文件中推荐合适的赝势,并在对应的赝势库中获取赝势文件。
2.2 输出处理
ABINIT 输出处理模块主要负责 ABINIT 输出文件的处理,可分为三个部分:
表1 未展示的参数列举Table 1 List of parameters not shown in the setting page
图4 ABINIT输入文件信息展示。(a)是x.in文件,(b) 是x.files文件,(c)是赝势文件的部分内容截图,该图中展示的是Al原子的赝势信息。Fig.4 The input files information of ABINIT.(a) is x.In file, (b) is x.files file, (c) is a partial screenshot of the pseudopotential file, which shows the pseudopotential information of the Al atom.
(1) 数据采集。包括性质计算结果数据、计算参数和中间结果等。如总能量、优化后的结构等。
具体方法是从主要输出文件 x.out 文件中提取关键数据并存入数据库中以便后续处理。以本论文案例使用的 ABINIT 静态计算及结构优化为例,其中静态计算的输出处理主要是能量值的提取,具体方法在run.out 文件中,根据关键字“etotal”,搜索,提取对应的总能量。结构优化的输出处理主要是优化过程和结构信息的提取,列举如下:根据关键字“rprimd”,提取优化后晶格矢量;根据关键字“xred”,提取优化后的原子坐标;根据关键字“typat”和“znucl”,提取原子信息;根据Lattice 和 Sites 信息计算最终优化结构;根据关键字“OUTPUT”,提取优化过程数据。
(2) 数据存储。即将数据采取的结果存入数据库中以便检索下载。
根据已有的数据库 scheme,将提取的数据存入对应的表单中,如能量信息存储在Static Calculation表的 Properties.Total Energy 属性中,每一步迭代的能量,存储在Static Calculation 表的 Electronic Steps.Total Energy 属性中;优化后的晶格矢量存储在Geometry Optimization 表的 Output Structure.Lattice属性中;优化后的原子坐标存储在Geometry Optimization 表的 Output Structure.Sites.Position 属性中;原子信息存储在Output Structure.Sites.Atom中;最终优化结构存储在Geometry Optimization 表的 Output Structure 属性中;每一步的优化结构存储在Geometry Optimization 表的 Ionic Steps.Structure属性中。
(3) 数据可视化。 需要从数据库中取出数据采取的结果进行可视化展示,绘制图像、表格等,用户可通过网页浏览器进行查看、下载。如图5 (a) 的结构优化过程动画,图5 (b) 的静态计算能量收敛图。
3 数据管理与知识产权保护
ABINIT 第一性原理计算模块所产生的计算结果经规范化抽取、汇总整理、采集加工后,形成直接能够工程应用的材料物理化学性质数据存入数据库,方便用户后续通过数据分析等手段开展新材料发现及作用机理阐释等研究工作。同时为有效保障数据质量和鼓励用户共享数据,数据管理平台[9]还为数据库中的每一条数据提供申请 Handle 标识服务,用户有权对自己的数据申请知识产权标识。
图5 数据可视化。(a) 是结构优化过程动画,(b) 是能量收敛图。Fig.5 Data visualization.(a) is the process animation of Geometry Optimization, (b) is the energy convergence graph.
Handle 标识是指面向数字对象的一个唯一、永久、安全的标识。不同于其它 DOI 注册代理提供的繁琐、耗时的注册服务,平台提供的 Handle 标识服务使用简单,无需缴费和会员注册,能做到实时申请、获取和发布。注册的基本流程如下:首先从计算结果数据中提取已有的元数据信息在Handle 注册页面进行展示,如图6 (a)所示;然后由用户选择所属的组织机构代码,如图6(b)所示,并根据表2 的标识方案创建 Handle 标识,得到完整的元数据信息;最后将Handle 标识和元数据信息提交注册。
其中元数据信息如表3所示,包括计算数据的最简化学式、空间群信息、性质计算类型、所有者、组织机构、计算来源、创建日期、Handle 号、Doi 和URL 信息。其中 URL 末尾字符是计算数据在计算平台中的 ID 号。
4 应用案例
4.1 案例设计
纯铝具有重量轻、导电好的优点,在大容量、远距离输电方面比铜线更具有优势,然而使用铝进行导电时,还需需要提高其强度和抗蠕变能力。实验表明,加入微量稀有金属Zr可以有效提高纯铝的强度和耐热性,且不明显降低合金的相对电导率。
本案例利用 MatCloud 平台对 AlxZr1-x固溶结构进行了计算,筛选出稳定的 AlxZr1-x固溶结构。固溶结构采用两种方式获取,基于 FCC 结构的 Al 单质掺杂Zr 获取掺杂结构,另一种时基于 HCP 结构的 Zr 单质掺杂 Al 获取掺杂结构。两种掺杂结构的原子总数都是8,分别计算了浓度为0,1/8,2/8,…,7/8 和 1,9种配比下的所有掺杂结构。计算工作流如图7所示。
表2 Handle标识方案Table 2 Handle identification scheme
表3 元数据表Table 3 Metadata Table
图6 Handle注册。(a)是Handle注册页面,(b) 是组织机构代码选择页面。Fig.6 Handle registration.(a) is the handle registration page, (b) is the organization code selection page.
其中,静态计算参数和结构优化参数设置如图8(a)、(b)所示。
另外,Zr和Al单质分别进行了替代掺杂的建模,包括构建超胞和替代掺杂,这两个建模过程的参数设置分别为图9 和图10所示。Zr 单质构建 221 大小的超晶胞,Al 单质构建 211 大小的超晶胞。
4.2 结果分析
通过替代掺杂共产生 512 个掺杂结构,经过等价判断后,获取不等价掺杂结构共计 55 个 Al-Zr 合金结构。计算所有不等价结构的总能量,根据公式 (1) 计算每个体系的形成焓,
图7 利用 MatCloud 开展 Al-Zr 合金的能量计算工作流Fig.7 Energy calculation workf l ow of Al-Zr alloy by using MatCloud
图8 Zr 单质计算的参数设置。(a) 是静态计算参数设置,(b) 是组结构优化参数设置。Fig.8 Parameter setting page of Zr elemental calculation.(a) is the parameter setting page of Static Calculation, (b) is the parameter setting page of Geometry Optimization.
计算结果如下图所示。
通过图11 的凸包图可以看出,计算结果推荐的 AlxZr1-x结构的 x 为 0.375,0.5,0.625,0.75。并且x=0.5,0.625,0.75 的结构实验上已经成功制备[10–12]。相比于实验,通过计算还预测出了 Zr 的浓度为 0.375时,也可能会形成稳定的相。
若计算结果通过审核,可以为其申请 Handle 标识,在计算结果展示页面提供 Handle 注册入口,如图12所示,具体流程在本文第三部分有详细描述。
图9 Zr 单质建模的参数设置。(a) 是构建超胞参数设置,(b) 是替代掺杂参数设置。Fig.9 Parameter setting page of Zr elementary modeling.(a) is the parameter setting page of BuildSupercell, (b) is the parameter setting page of Substitution and Doping
图10 Al 单质建模的参数设置。(a) 是构建超胞参数设置,(b) 是替代掺杂参数设置。Fig.10 Parameter setting page of Al elementary modeling.(a) is the parameter setting page of BuildSupercell, (b) is the parameter setting page of Substitution and Doping
图11 计算 Al-Zr 合金形成焓相图,横坐标为 Zr 的浓度Fig.11 The formation enthalpy phase diagram of calculating the Al-Zr alloy, and the concentration of the Zr on the abscissa
图12 Handle标识注册入口Fig.12 Handle identification Registration Entry
5 讨论和结论
本文对如何基于 MatCloud 平台集成第一性原理计算软件 ABINIT 进行了深入讨论,并利用已经实现的功能对 Zr-Al 合金的结构进行了预测。集成ABINIT 软件,可以为使用 ABINIT 开展研究的用户提供便捷的服务,加快材料的研发进度。考虑到目前 ABINIT 计算软件的赝势信息通过 xml 文件查找,不全面还比较慢,下一步工作中,我们将会考虑集成Libxc,Libxc 是目前最为全面、最强大的泛函库,通过集成 Libxc 功能,给用户提供更多的选择空间,以获取更多交换和关联相互作用的组合。此外,基于本论文的工作,下一步还将集成声子谱等计算功能。该工作降低了 ABINIT 软件的使用门槛,使材料模拟变得更加便捷和方便。