一种获取材料计算数据的方法与流程

文档序号:18884605发布日期:2019-10-15 20:41阅读:652来源:国知局
一种获取材料计算数据的方法与流程

本申请涉及数据获取领域,具体而言,涉及一种获取材料计算数据的方法及其装置。



背景技术:

随着大数据和人工智能的普及和应用,越来越多的高校和科研院所将人工智能技术应用于新材料的研发上,以弥补传统方法的不足。在新材料的研发领域,材料实验数据稀缺是较为常见的问题,利用人工智能中的材料计算模拟进行数据的衍生计算,通常可以弥补很多材料实验数据的不足。

采用材料计算中的vasp第一性原理计算就可以获取不少的材料晶体结构信息和物化性质数据。想要基于vasp第一性原理计算进一步获取材料计算数据,需要对相应的第一性原理计算输出文件进行处理。而第一性原理计算的结算文件中包含多种类型的数据文件,且不同格式的数据文件所包含的参数和涉及的运算方法不同,导致从第一性原理计算的结果文件中获取参数并分析数据的操作过程繁琐、计算数据处理方法复杂极易出错。经过上述处理后,也只能获取最基本的物化性质数据。更多的材料物化性质数据需要进一步衍生才能得到。

此外,vasp第一性原理计算结果数据往往分散于各超算中心或用户的个人电脑里,不能集中有效管理形成数据资产,也不能共享,随着时间流逝很容易丢失和遗忘,造成浪费。如果能将这些不同时间、不同阶段大量离散的第一性原理计算结果数据集中处理,并对它们集中衍生,便能对快速获取材料的大量计算数据。

因此需要一种可以解决材料计算结果文件中包含多种类型的数据文件,快速获取材料计算数据并衍生出更多物化性质数据的方法。



技术实现要素:

本申请的主要目的在于提供一种获取材料计算数据的方法,解决了材料计算结果文件中由于包含多种类型的数据文件,关键材料计算数据隐藏于这些文件中不易获取,并很难衍生出更多材料计算数据的技术难题。

为了实现上述目的,提供了一种获取材料计算数据的方法,包括:

接收材料计算结果文件,所述材料计算结果文件中包含多种类型的数据文件;

根据预设材料计算标签与数据文件类型的对应关系信息,确定每个预设材料计算标签对应的数据文件;

根据预设材料计算标签对应的数据文件以及所述数据文件对应的关键词,从相应数据文件中提取出归属于所述材料计算标签的材料计算数据;

基于衍生算法库为所述材料计算数据匹配衍生运算模型,通过匹配到的衍生运算模型对所述材料计算数据进行衍生运算,得到衍生的材料计算数据。

进一步的,所述材料计算数据为vasp第一性原理计算的结果数据,所述材料计算标签包括与vasp第一性原理计算对应的晶体结构优化标签、力学性质计算标签、光学性质计算标签和磁学性质计算标签;

所述根据预设材料计算标签与数据文件类型的对应关系信息,确定每个预设材料计算标签对应的数据文件,包括:

所述晶体结构优化标签、力学性质计算标签、光学性质计算标签和磁学性质计算标签对应的数据文件包括:输出vasprun文件、计算参数incar文件、输出outcar文件和积分路径kpoints文件。

进一步的,所述材料计算标签还包括与第一性原理计算对应的静态计算标签、能带计算标签和态密度计算标签;

所述根据预设材料计算标签与数据文件类型的对应关系信息,确定每个预设材料计算标签对应的数据文件,包括:

所述静态计算标签对应数据文件包括vasprun文件、incar文件、outcar文件、kpoints文件和oszicar文件;所述能带计算标签对应数据文件包括vasprun文件、incar文件、outcar文件、kpoints文件和eigenval文件;所述态密度计算标签对应数据文件包括vasprun文件、incar文件、outcar文件、kpoints文件和doscar文件。

进一步的,所述根据预设材料计算标签对应的数据文件以及所述数据文件对应的关键词,从相应数据文件中提取出归属于所述材料计算标签的材料计算数据,包括:

从所述incar文件中提取关键计算控制参数;

根据材料计算标签,从所述kpoints文件中获得kpointpath或kpointgrid值;

从所述vasprun文件或outcar文件中提取材料结构信息和材料计算数据。

进一步的,在从所述vasprun文件或outcar文件中提取材料结构信息后,判断存储所述材料计算数据的数据库中是否存在相同的材料结构信息,如果不存在,则将所述材料结构信息存储到所述数据库中。

进一步的,所述判断存储所述材料计算数据的数据库中是否存在相同的材料结构信息,包括:

根据材料结构信息中包含的化学表达式、晶格参数和原子占位信息进行哈希运行,得到哈希值;

判断所述数据库中是否存在相同的所述哈希值,如果存在,则数据库中存在相同的材料结构信息;否则,判断数据库中不存在相同的材料结构信息。

进一步的,所述基于衍生算法库为所述材料计算数据匹配衍生运算模型,包括:

根据所述衍生算法库中的衍生运算模型能够处理的材料计算数据,从所述衍生算法库中筛选能够对所述材料计算数据进行衍生运算的衍生算法模型。

进一步的,在接收材料计算结果文件后,确定每个预设材料计算标签对应的数据文件前,还包括:

判断接收到的材料计算结果文件的是否完整,如果不完整,则进行异常告警;如果完整,则对所述材料计算结果文件进行重复性检查,过滤重复的文件。

进一步的,所述判断接收到的材料计算结果文件的是否完整,包括:

对接收到的计算结果文件的节点进行分析,根据节点的分析结果判断所述接收到的计算结果文件中的vasprun文件、outcar文件、incar文件和kpoints文件是否完整。

进一步的,所述对所述材料计算结果文件进行重复检查,避免从同一vasp第一性原理计算结果文件重复获取计算数据,至少包括:

获取vasprun文件中<modelling><generator>节点中的date和time数据,获取outcar文件中totalcputimeused(sec),usertime,systemtime,elapsedtime数据,共同运算得到哈希值,与数据库中的哈希值进行校验判断;如果相同,则视为重复文件。

在本申请实施例中,采用建立一种获取材料计算数据的方法,基于预设材料计算标签的设置和数据文件对应的关键词,对材料计算结果文件中多种类型的数据文件的材料计算数据进行提取,通过衍生算法库匹配到的衍生运算模型对材料计算数据进行衍生运算,得到衍生的材料计算数据。从而实现了简化获取衍生的材料计算数据过程,达到通过计算使材料物化性质数据获取更加便捷的技术效果,进而解决了材料计算结果文件中由于包含多种类型的数据文件,关键材料计算数据隐藏于这些文件中不易获取,并很难衍生出更多材料计算数据的技术难题。

同时,因为对材料计算结果文件中不同类型的数据进行了分别的处理,后续又对材料计算结果文件进行细致的完整性和重复性的校正,可更好的避免因材料计算结果文件不完整导致的材料计算结果文件部分无法使用,整体数据排查困难的问题;如此解决了大批量计算结果文件处理容易出错的问题,可实现对大量的材料计算结果文件进行一键式集中处理,达到可快速获取更多材料物化性质数据的目的。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请获取材料计算数据的方法的流程示意图;

图2是本申请具体实施例一获取弹性常数计算数据及其衍生数据的方法的流程示意图;

图3是本申请具体实施例二获取获取态密度计算数据的方法的流程示意图;

图4是本申请具体实施例三获取获取能带计算数据及其衍生数据的方法的流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本申请保护地范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。

并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。

此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

本申请的实施例为微观量子尺度的第一性原理计算,但是其获取计算数据的方法和理念,同样适用于其它尺度的材料计算获取数据的方法。

如图1所示,本申请涉及一种获取材料计算数据的方法,步骤包括:

s1,接收材料计算结果文件,所述材料计算结果文件中包含多种类型的数据文件;

优选的,在接收材料计算结果文件后,确定每个预设材料计算标签对应的数据文件前,还包括:

判断接收到的材料计算结果文件的是否完整,如果不完整,则进行异常告警;如果完整,则对所述所述材料计算结果文件进行重复上传检查,过滤重复上传的文件。

当接收的材料计算结果文件为vasp第一性原理计算的结果文件时,包含的多种类型的数据文件包括输出vasprun文件、计算参数incar文件、输出outcar文件、积分路径kpoints文件、oszicar文件、eigenval文件和doscar文件。

优选的,判断接收到的vasp第一性原理计算结果文件是否完整包括,对接收到的计算结果文件的节点进行分析,根据节点的分析结果判断所述接收到的计算结果文件中的vasprun文件、outcar文件、incar文件和kpoints文件是否完整。

上述数据文件不完整,则进行异常告警;完整,则对所述弹性常数计算结果文件进行重复性检查,过滤重复的文件。

具体的过滤重复的文件,避免从同一vasp第一性原理计算结果文件重复获取计算数据包括,获取vasprun文件中<modelling><generator>节点中的date和time数据,获取outcar文件中totalcputimeused(sec),usertime,systemtime,elapsedtime数据,共同运算得到哈希值,与数据库中的哈希值进行校验判断;如果相同,则视为重复文件。

s2,根据预设材料计算标签与数据文件类型的对应关系信息,确定每个预设材料计算标签对应的数据文件;

以材料计算数据为vasp第一性原理计算的结果数据为例,材料计算标签设定为与vasp第一性原理计算对应的标签,优选的材料计算标签可设定包括晶体结构优化标签、力学性质计算标签、光学性质计算标签和磁学性质计算标签;

晶体结构优化标签、力学性质计算标签、光学性质计算标签和磁学性质计算标签对应的数据文件均包括:输出vasprun文件、计算参数incar文件、输出outcar文件和积分路径kpoints文件。

优选的,材料计算标签还可设定包括与vasp第一性原理计算对应的静态计算标签、能带计算标签和态密度计算标签;其中,静态计算标签对应数据文件包括vasprun文件、incar文件、outcar文件、kpoints文件和oszicar文件;能带计算标签对应数据文件包括vasprun文件、incar文件、outcar文件、kpoints文件和eigenval文件;态密度计算标签对应数据文件包括vasprun文件、incar文件、outcar文件、kpoints文件和doscar文件

s3,根据预设材料计算标签对应的数据文件以及所述数据文件对应的关键词,从相应数据文件中提取出归属于所述材料计算标签的材料计算数据;

以接收的材料计算结果文件为vasp第一性原理计算的结果文件,材料计算标签为vasp第一性原理计算对应的材料计算标签为例,

从所述incar文件中提取关键计算控制参数;

根据材料计算标签,从所述kpoints文件中获得kpointpath或kpointgrid值;

从所述vasprun文件中提取材料结构信息。

本实施例优选的,在从所述vasprun文件中提取材料结构信息后,判断存储所述材料计算数据的数据库中是否存在相同的材料结构信息,如果不存在,则将所述材料结构信息存储到所述数据库中。

具体的,根据材料结构信息中包含的化学表达式、晶格参数和原子占位信息进行哈希运行,得到哈希值;

判断所述数据库中是否存在相同的所述哈希值,如果存在,则数据库中存在相同的材料结构信息;否则,判断数据库中不存在相同的材料结构信息。

s4,基于衍生算法库为所述材料计算数据匹配衍生运算模型,通过匹配到的衍生运算模型对所述材料计算数据进行衍生运算,得到衍生的材料计算数据。

具体实施例一

如图2所示,在本申请一种获取材料计算数据的方法优选的具体实施例中,具体涉及获取弹性常数计算数据及其衍生数据。

101、接收基于vasp第一性原理计算获取的弹性常数计算结果文件,所述弹性常数计算结果文件中包括vasprun文件、outcar文件、doscar文件、incar文件、kpoints文件、eigenval文件和oszicar文件;

弹性常数的提取是针对vasprun文件、outcar文件、incar文件和kpoints文件进行数据处理得出的。

对接收到的弹性常数计算结果文件中的vasprun文件、outcar文件、incar文件和kpoints文件分别进行完整性的判断;具体的完整性判断过程为:

根据vasprun文件中是否是以</structure></modeling>格式结束,如果是以</structure></modeling>格式结束,则对vasprun文件中的generator、incar、atominfo、parameters、calculation、和energy节点的完整性进行分析,判断它们分别是否以</generator>、</incar>、</atominfo>、</parameters>、</calculation>、和</energy>;完全符合节点预设的结构规范,则满足vasprun文件完整性的要求;

确定outcar文件中是否具有totalcputimeused行、maximummemoryused行信息;具有totalcputimeused行、maximummemoryused行信息则证明outcar文件是完整的。

incar文件中涉及的各项参数的分隔符中必须包含“=”,例如参数a和参数b的之间书写分隔符的形式可以是“a=b”。如果参数之间的分隔符不包含“=”,则证明incar文件的上传不完整。

分析kpoints文件中的坐标是否为x、y、z形式的三维坐标,如果不是,则证明kpoints文件不完整。

上述数据文件不完整,则进行异常告警;完整,则对所述弹性常数计算结果文件进行重复性检查,过滤重复的文件。

具体的过滤重复上传的文件包括对vasprun文件和outcar文件进行分析,避免从同一vasp第一性原理计算结果文件重复获取计算数据,包括,获取vasprun文件中<modelling><generator>节点中的date和time数据,获取outcar文件中totalcputimeused(sec),usertime,systemtime,elapsedtime数据,共同运算得到哈希值,与数据库中的哈希值进行校验判断。如果相同,则视为重复文件。

102、弹性常数计算对应的预设标签为力学性质标签,力学性质标签对应弹性常数计算结果文件中的vasprun文件、outcar文件、incar文件和kpoints文件;

103、根据预设标签力学性质,对vasprun文件、outcar文件、incar文件和kpoints文件依照预设标签力学性质对应的信息提取方式进行数据内容的提取。具体的,

对从vasprun文件中的modeling标签下的name属性为initialpos的标签中抽取初始化的结构信息;

解析kpionts文件,提取正常网格坐标、偏移坐标以及算法类型(此处算法类型可以是gamma或monkhorstpack)形成k点对象并提取kpointgrid参数。

从incar中提取控制参数,所述控制参数包括从prec标签中读取精度参数和从incar中提取除精度参数以外的其他参数,其中其他参数用以控制收敛,迭代步数等;

从outcar文件中找到totalelasticmoduli(总弹性模量)(kbar),查找xx、yy、zz、xy、yz、zx下的数据,采集上述数据构建6*6矩阵,并将数据(xx、yy、zz、xy、yz、zx)序列改变为(xx、yy、zz、yz、zx、xy),从而得到力学性质中的弹性常数。

在优选的实施例中,在从所述vasprun文件中提取材料结构信息后,判断存储所述材料计算数据的数据库中是否存在相同的材料结构信息,如果不存在,则将所述材料结构信息存储到所述数据库中。

具体的,根据材料结构信息中包含的化学表达式、晶格参数和原子占位信息进行哈希运行,得到哈希值;

判断所述数据库中是否存在相同的所述哈希值,如果存在,则数据库中存在相同的材料结构信息;否则,判断数据库中不存在相同的材料结构信息。

104、根据关键词“弹性常数”,在衍生算法库中搜索与弹性常数相关联的衍生运算模型,在衍生算法库中找到的与弹性常数相匹配的衍生算法模型为杨氏模量运算模型、体弹模量运算模型、剪切模量运算模型和泊松比运算模型。模型均以软件代码形式存储在衍生库中。将上述过程提取出的弹性常数分别输入到杨氏模量运算模型、体弹模量运算模型、剪切模量运算模型和泊松比运算模型中,分别算出对应上述弹性常数的杨氏模量、体弹模量、剪切模量和泊松比。

105、可选地,将上述从计算结构文件中提取到的弹性常数数据、衍生得到的杨氏模量、体弹模量、剪切模量和泊松比的相关数据信息存储到材料数据库中,方便后续数据运算或数据使用的调取。

具体实施例二

如图3所示,在本申请一种获取材料计算数据的方法优选的具体实施例中,具体涉及获取态密度计算数据。

201、接收基于vasp第一性原理计算获取的态密度计算结果文件,所述态密度计算结果文件中包括vasprun文件、outcar文件、doscar文件、incar文件、kpoints文件、eigenval文件和oszicar文件;

态密度的提取是针对vasprun文件、outcar文件、incar文件和kpoints文件和doscar文件进行数据处理得出的。

对接收到的态密度计算结果文件中的vasprun文件、outcar文件、incar文件和kpoints文件分别进行完整性的判断;具体的完整性判断过程为:

根据vasprun文件中是否是以</structure></modeling>格式结束,如果是以</structure></modeling>格式结束,则对vasprun文件中的generator、incar、atominfo、parameters、calculation、和energy节点的完整性进行分析,判断它们分别是否以</generator>、</incar>、</atominfo>、</parameters>、</calculation>、和</energy>。完全符合节点预设的结构规范,则满足vasprun文件完整性的要求;

确定outcar文件中是否具有totalcputimeused行、maximummemoryused行信息;具有totalcputimeused行、maximummemoryused行信息则证明outcar文件是完整的。

incar文件中涉及的各项参数的分隔符中必须包含“=”,例如参数a和参数b的之间书写分隔符的形式可以是“a=b”。如果参数之间的分隔符不包含“=”,则证明incar文件的上传不完整。

分析kpoints文件,判断第三行是否为g(gamma)或者m(monkhorstpack),如果不是则证明上传不完整;如果总行数小于4行,则证明上传不完整;从第五行起,检查坐标格式是否为x、y、z形式的三维坐标,不是,则证明上传不完整。

上述数据文件不完整,则进行异常告警;完整,则对所述弹性常数计算结果文件进行重复性上传检查,过滤重复上传的文件。

具体的过滤重复上传的文件包括对vasprun文件和outcar文件进行分析,避免从同一vasp第一性原理计算结果文件重复获取计算数据,包括,获取vasprun文件中<modelling><generator>节点中的date和time数据,获取outcar文件中totalcputimeused(sec),usertime,systemtime,elapsedtime数据,共同运算得到哈希值,与数据库中的哈希值进行校验判断;如果相同,则视为重复文件。

202、态密度计算对应的预设标签为态密度标签,态密度标签对应态密度计算结果文件中的vasprun文件、outcar文件、incar文件、kpoints文件和doscar文件;

203、根据态密度计算的预设标签态密度,对vasprun文件、outcar文件、incar文件、kpoints文件和doscar文件依照预设的关键“态密度”对应的信息提取方式进行数据内容的提取。具体的,

对从vasprun文件中的modeling标签下的name属性为initialpos的标签中抽取初始化的结构信息,如晶体结构信息;

解析kpionts文件,提取正常网格坐标、偏移坐标以及算法类型(此处算法类型可以是gamma或monkhorstpack)形成k点对象并提取kpointgrid参数。

从incar中提取控制参数,所述控制参数包括从prec标签中读取精度参数和从incar中提取除精度参数以外的其他参数,其中其他参数用以控制收敛,迭代步数等;

解析doscar文件,读取第六行第三列的数据,得到dos总数n;根据列的个数判断自旋(默认为非自旋),如果列数为3列则非自旋极化,否则为自旋极化计算;从第六行开始,遍历n行dos数据,提取每一行的第一列构建一个1*n的能量矩阵:若为自旋极化计算(非3列),则提取每一行的第二列和第三列作为数据源构造一个2*n的总态密度矩阵;若为非自旋极化计算(3列),则提取每一行的第二列作为数据源构建一个1*n的总态密度矩阵;通过能量矩阵和总密度矩阵创建一个完整的总态密度对象,至此总态密度数据提取完成;判断n+6行是否文件结束,如果没有则构建一个投影态密度矩阵,数据提取流程同上类似;通过能量矩阵和投影态密度矩阵,创建一个完整的分态密度对象,至此所有态密度数据提取完成;

在优选的实施例中,在从所述vasprun文件中提取材料结构信息后,判断存储所述材料计算数据的数据库中是否存在相同的材料结构信息,如果不存在,则将所述材料结构信息存储到所述数据库中。

具体的,根据材料结构信息中包含的化学表达式、晶格参数和原子占位信息进行哈希运行,得到哈希值;

判断所述数据库中是否存在相同的所述哈希值,如果存在,则数据库中存在相同的材料结构信息;否则,判断数据库中不存在相同的材料结构信息。

204、根据关键词“态密度”,在衍生算法库中搜索与态密度相关联的衍生运算模型,模型均以软件代码形式存储在衍生库中。本实施例中,根据关键词“态密度”在衍生算法库中没有搜索到与态密度相关的衍生运算模型,因此,本实施例针对态密度数据不进行衍生运算。

205、可选地,将上述经过提取得到的态密度数据存储到材料数据库中,方便后续数据运算或数据使用的调取。

具体实施例三

如图4所示,在本申请一种获取材料计算数据的方法优选的具体实施例中,具体涉及获取能带计算数据及其衍生数据。

301、接收基于vasp第一性原理计算获取的能带计算结果文件,所述能带计算结果文件中包括vasprun文件、outcar文件、doscar文件、incar文件、kpoints文件、eigenval文件和oszicar文件;

能带的提取是针对vasprun文件、outcar文件、incar文件和kpoints文件和eigenval文件进行数据处理得出的。

对接收到的能带计算结果文件中的vasprun文件、outcar文件、incar文件和kpoints文件分别进行完整性的判断;具体的完整性判断过程为:

根据vasprun文件中是否是以</structure></modeling>格式结束,如果是以</structure></modeling>格式结束,则对vasprun文件中的generator、incar、atominfo、parameters、calculation、和energy节点的完整性进行分析,判断它们分别是否以</generator>、</incar>、</atominfo>、</parameters>、</calculation>、和</energy>;完全符合节点预设的结构规范,则满足vasprun文件完整性的要求;

确定outcar文件中是否具有totalcputimeused行、maximummemoryused行信息;具有totalcputimeused行、maximummemoryused行信息则证明outcar文件是完整的。

incar文件中涉及的各项参数的分隔符中必须包含“=”,例如参数a和参数b的之间书写分隔符的形式可以是“a=b”。如果参数之间的分隔符不包含“=”,则证明incar文件的上传不完整。

分析kpoints文件,判断从第五行起,检查坐标格式是否为x、y、z形式的三维坐标;如果不是前述三维坐标则文件不完整;检查每一个坐标行的结尾是否含有!符号,如果不包含!符号,则文件不完整;检查是否坐标行为奇数,如果为奇数则文件不完整。

上述数据文件不完整,则进行异常告警;完整,则对所述能带计算结果文件进行重复性检查,过滤重复的文件。

具体的过滤重复上传的文件包括对vasprun文件和outcar文件进行分析,避免从同一vasp第一性原理计算结果文件重复获取计算数据,包括,获取vasprun文件中<modelling><generator>节点中的date和time数据,获取outcar文件中totalcputimeused(sec),usertime,systemtime,elapsedtime数据,共同运算得到哈希值,与数据库中的哈希值进行校验判断;如果相同,则视为重复文件。

302、能带计算对应的预设标签为能带标签,能带标签对应计算结果文件中的vasprun文件、outcar文件、incar文件、kpoints文件和eigenval文件;

303、根据预设标签能带,对vasprun文件、outcar文件、incar文件、kpoints文件和eigenval文件依照预设标签能带对应的信息提取方式进行数据内容的提取。具体的,

对从vasprun文件中的modeling标签下的name属性为initialpos的标签中抽取初始化的结构信息,如晶体结构信息;

解析kpionts文件,提取正常网格坐标、偏移坐标以及算法类型(此处算法类型可以是gamma或monkhorstpack)形成k点对象并提取kpointgrid参数。

从incar中提取控制参数,所述控制参数包括从prec标签中读取精度参数和从incar中提取除精度参数以外的其他参数,其中其他参数用以控制收敛,迭代步数等;

解析eigenval文件,读取第一行第四列数据,如果为1则非自旋,否则为自旋;读取第六行第二列的数据,得到总计算次数n和每一次产生的总能带个数m;从第六行开始,遍历m行能带数据n次(一共n*m行)若为自旋极化计算,则提取每行第二列的数据构建一个2*n*m的特征值矩阵(仅存放在[0,x,y]的位置上);若为非自旋极化计算,则提取每行第二列和第三列的数据构建一个2*n*m的特征值矩阵(分别存放在[0,x,y]和[1,x,y]位置上);根据k点坐标矩阵和2*n*m的特征值矩阵创建一个特征值对象,至此能带数据提取完成;

在优选的实施例中,在从所述vasprun文件中提取材料结构信息后,判断存储所述材料计算数据的数据库中是否存在相同的材料结构信息,如果不存在,则将所述材料结构信息存储到所述数据库中。

具体的,根据材料结构信息中包含的化学表达式、晶格参数和原子占位信息进行哈希运行,得到哈希值;

判断所述数据库中是否存在相同的所述哈希值,如果存在,则数据库中存在相同的材料结构信息;否则,判断数据库中不存在相同的材料结构信息。

304、根据能带计算结果文件对应的关键词“能带”,在衍生算法库中搜索与能带相关联的衍生运算模型。在此实施例中,找到与能带相关联的衍生算法模型为直接能隙计算模型,间接能隙计算模型,模型均以软件代码形式存储在衍生库中。将得到的能带数据输入给直接能隙计算模型和间接能隙计算模型,从而得到与能带相关的直接能隙数据和间接能隙数据。

305、可选地,将上述经过运算得出的能带数据,以及衍生出的直接能隙和间接能隙存储到材料数据库中,方便后续数据运算或数据使用的调取。

优选的,根据所述衍生算法库中的衍生运算模型能够处理的材料计算数据,从所述衍生算法库中筛选能够对所述材料计算数据进行衍生运算的衍生算法模型。衍生运算模型为预设的经验模型和/或半经验模型。

在本申请实施例中,采用建立一种获取材料计算数据的方法,基于预设材料计算标签的设置和数据文件对应的关键词,对材料计算结果文件中多种类型的数据文件的材料计算数据进行提取,通过衍生算法库匹配到的衍生运算模型对材料计算数据进行衍生运算,得到衍生的材料计算数据。从而实现了简化获取衍生的材料计算数据过程,达到通过计算使材料物化性质数据获取更加便捷的技术效果,进而解决了材料计算结果文件中由于包含多种类型的数据文件,关键材料计算数据隐藏于这些文件中不易获取,并很难衍生出更多材料计算数据的技术难题。

同时,因为对材料计算结果文件中不同类型的数据进行了分别的处理,后续又对材料计算结果文件进行细致的完整性和重复性的校正,可更好的避免因材料计算结果文件不完整导致的材料计算结果文件部分无法使用,整体数据排查困难的问题;如此解决了大批量计算结果文件处理容易出错的问题,可实现对大量的材料计算结果文件进行一键式集中处理,快获取更多材料物化性质数据的目的。

上述针对vasp第一性原理计算数据的处理方法和构建材料计算数据库的思路,同样适用于其它第一性原理计算数据的获取和构建材料计算数据库,微观尺度材料计算数据的处理和构建材料计算数据库,介观尺度材料计算数据的获取和构建材料计算数据库,以及宏观尺度的材料计算数据获取和构建材料计算数据库。凡是将该方法应用于上述尺度的材料计算数据处理,属于保护范围。

从材料计算结果文件中获取材料计算数据,以及衍生出更多材料计算数据后,实施例中是选择将它们存于材料计算数据库中。实际情况中也可以不选则存于数据库中,或选择其它的处理方式。只要是将该方法和思路用于从材料计算结果文件中获取数据,及衍生出更多数据,属于保护范围。

对应上述获取材料计算数据的方法,提供一种获取材料计算数据的装置,包括:数据接收模块、数据校正模块、标签匹配模块和数据分析模块;

所述数据接收模块接收材料计算结果文件,传输给所述数据校正模块;

所述数据校正模块对接收到材料计算结果文件的完整性和是否存在重复上传的情况进行判断,得到完整且不存在重复上传的材料计算结果文件,所述数据校正模块将所述完整且不存在重复上传的材料计算结果文件传送给标签匹配模块;

所述标签匹配模块根据所述预设材料计算标签与数据文件类型的对应关系信息,确定每个预设材料计算标签对应的数据文件,根据预设材料计算标签对应的数据文件以及所述数据文件对应的关键词,从相应数据文件中提取出归属于所述材料计算标签的材料计算数据,并将从相应数据文件中提取出归属于所述材料计算标签的材料计算数据传送给数据分析模块;

所述数据分析模块基于衍生算法库为所述材料计算数据匹配衍生运算模型,通过匹配到的衍生运算模型对所述材料计算数据进行衍生运算,得到衍生的材料计算数据。

进一步的,所述获取材料计算数据的装置还包括数据存储装置,所述数据存储装置对从标签匹配模块中输出的所述提取出归属于所述材料计算标签的材料计算数据,以及所述数据分析模块输出的衍生的材料计算数据进行存储,形成数据库,方便后续数据运算或数据使用的调取。

进一步的,所述获取材料计算数据的装置还包括数据调取装置,所述数据调取装置接收所述标签匹配模块输出的材料计算数据,并根据所述标签匹配模块输出的材料计算数据中包含的材料结构信息,如化学表达式、晶格参数和原子占位信息等,进行哈希运行得到哈希值;

判断所述数据存储装置的数据库中是否存在相同的所述哈希值,如果存在,则所述数据存储装置的数据库中存在相同的材料结构信息;否则,判断数据库中不存在相同的材料结构信息。

如果不存在,则将从所述标签匹配模块输出的材料计算数据存储到所述数据存储装置的数据库中。

使用商业软件如vasp,需要用户自己提供vasp版权。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1