CN112466418A - 晶体空间结构变换方法及系统 - Google Patents

晶体空间结构变换方法及系统 Download PDF

Info

Publication number
CN112466418A
CN112466418A CN202011427695.3A CN202011427695A CN112466418A CN 112466418 A CN112466418 A CN 112466418A CN 202011427695 A CN202011427695 A CN 202011427695A CN 112466418 A CN112466418 A CN 112466418A
Authority
CN
China
Prior art keywords
atom
cell
crystal
molecule
chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011427695.3A
Other languages
English (en)
Inventor
师雪坤
温书豪
马健
赖力鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhiyao Technology Co ltd
Original Assignee
Shenzhen Zhiyao Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhiyao Technology Co ltd filed Critical Shenzhen Zhiyao Technology Co ltd
Priority to CN202011427695.3A priority Critical patent/CN112466418A/zh
Publication of CN112466418A publication Critical patent/CN112466418A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C60/00Computational materials science, i.e. ICT specially adapted for investigating the physical or chemical properties of materials or phenomena associated with their design, synthesis, processing, characterisation or utilisation

Abstract

一种晶体空间结构变换方法及系统包括读取晶体文件,将文件中的晶胞参数、分子内的原子坐标和空间群信息转换为面向对象的数据结构存储,将面向对象的数据结构转换为新对象数据结构,将面向对象的数据结构中晶体结构中的晶胞属性和空间群属性复制到新晶体结构中对应属性,读取分子结构中分子内全部原子的位置信息,根据原子的位置信息确定每个原子的原子链;计算晶体晶格能,根据设定步长调整晶胞属性参数和柔性键取值;将新对象数据结构转换为面向对象的数据结构,进行保存;上述方法及系统通过转换将晶体的参数空间从描述每个原子在晶胞内的分数坐标转换为描述晶体内相邻两个原子之间相对位置,从而在晶体演化过程中整个参数空间是连续变化的。

Description

晶体空间结构变换方法及系统
技术领域
本发明涉及晶体展示,特别涉及一种晶体空间结构变换方法及系统。
背景技术
当前描述一个晶体的3维微观空间结构的方式主要是描述晶胞参数,晶体中非对称单元内的分子的每一个原子在晶胞中的相对坐标,和空间群来实现的。具体方式说明如下:
晶胞参数
构成晶体的最基本的几何单元称为晶胞(Unit Cell),其形状、大小与空间格子的平行六面体单位相同,保留了整个晶格的所有特征。
晶胞能完整反映晶体内部原子或离子在三维空间分布之化学-结构特征的平行六面体单元。其中既能够保持晶体结构的对称性而体积又最小者特称“单位晶胞”,但亦常简称晶胞。如图1所示,其具体形状大小由它的三组棱长a、b、c及棱间交角α、β、γ(合称为”晶胞参数”)来表征,与空间格子中的单位平行六面体相对应。
分子内的原子坐标。
晶胞构成了一个参考坐标系。原点为三组棱的交点,x、y、z方向分别为从原点出发沿a、b、c三个方向。
在晶胞这个最小单元内,非对称的每个分子的每个原子都有在上述参考坐标系下的坐标。
比如,对于分子(C13 H16 N4 O),可以用下面的方式来描述每个原子的坐标
Figure BDA0002825582760000011
Figure BDA0002825582760000021
Figure BDA0002825582760000031
每一行中第一列为原子的名称,第二列为原子的元素类型,第三至五列为原子在坐标系中的分数坐标,其实际坐标为该分数坐标乘以x、y、z方向分别对应的棱长a、b、c。最后一列为权重值,通常为1。
晶体的空间群信息
晶体内部结构中全部对称要素的集合称为“空间群”。
一切晶体结构中总共只能有230种不同的对称要素组合方式,即230个空间群。它是由俄国结晶学家费多洛夫和德国结晶学家薛弗利斯(Artur Moritz Schoenflies,1853-1928)于1890至1891年间各自独立地先后推导得出来的,故亦称为“230个费多洛夫群”。
只要给定晶体的空间群的序号,就可以唯一确定该晶体是以怎样的对称要素从非对称的单个分子在空间中有序排列成整个晶体的。
比如如果确定晶体是2号空间群。则全部对称要素为下面两个对称操作
1x,y,z
2-x,-y,-z
所以,晶胞内的所有分子可以从这两个对称操作得到。比如对于上述分子中的每个原子应用这两个对称操作,应用对称操作1,分子中原子坐标不变;应用对称操作2,分子中原子坐标都变为原来的负数。这样就得到完整的晶体3维微观结构描述。
当前大部分的晶体学软件,比如CCDC等都支持这样的描述。
当前的描述方法虽然比较直观,计算也相对简单,但在描述有机晶体优化过程中却非常不方便。因为有机晶体中通常包括好多个柔性健,这些柔性键可以在空间内自由旋转。在晶体优化的过程中,通常都需要保持其他原子间相对位置不变,单独旋转指定的1个或几个柔性键。那么,上述的描述方式就很难直接计算出旋转后的晶体结构。如果在晶体搜索的全局优化算法中,更是无法对晶体结构进行指定的柔性键扫描。这会让整个晶体搜索和优化的过程变成一个不连续的过程,只能通过试错的方式进行。
发明内容
基于此,有必要提供一种可提高晶体优化效率的晶体空间结构变换方法。
同时,提供一种可提高晶体优化效率的晶体空间结构变换系统。
一种晶体空间结构变换方法,包括:
读取:读取晶体文件,将晶体文件中的晶胞参数、分子内的原子坐标和空间群信息转换为面向对象的数据结构存储,面向对象的数据结构包括:晶体结构、分子结构,晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性;分子结构包括:对应的分子实例的唯一标识、分子内全部原子的位置信息;
转换:将面向对象的数据结构转换为新对象数据结构,新对象数据结构包括:新晶体结构、新分子结构,新晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性,新分子结构包括:分子内每个原子对应的原子链,将面向对象的数据结构中晶体结构中的晶胞属性和空间群属性复制到新晶体结构中对应属性,读取分子结构中分子内全部原子的位置信息,根据原子的位置信息确定每个原子的原子链;
晶体演化:计算晶体的晶格能,根据设定步长调整晶体的晶胞属性参数和柔性键取值,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,对每条原子链匹配指定的柔性键,根据设定步长进行旋转调整柔性键,每次调整一个参数,计算调整后的晶体晶格能,直至最低的晶体晶格能在设定的停止次数下不再增加,分配ID给演化形成新的晶体;
二次转换:将新对象数据结构转换为面向对象的数据结构;
保存:将晶胞属性、空间群属性写入新的文件,遍历非对称单元内所有分子的属性,获取对应的分子结构参数,对每个分子结构中的原子数组依次逐行写入文件。
在优选实施例中,所述晶体结构的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ,所述分子结构的分子内全部原子的位置信息为二维数组,该二维数组中每一项为一个5维数组,该5维数字第一项为原子的名称,第二项为原子的元素类型,第三至五项为原子在晶胞内的分数坐标。
在优选实施例中,所述新晶体结构包的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ;所述新分子结构用三维数组记录分子内每个原子对应的原子链{[(cell_o,cell_o,0,θ01,0,θ02),(an1,at1,d1111,d1212,),(an2,at2,d2121,d2222),…,(ann,atn,dn1n1,dn2n2)],…,[(cell_o,cell_o,0,θ01,0,0),(an1,at1,d1111,d1212),(an2,at2,d2121,d2222),…,(anm,atm,dm1m1,dm2m2)]},其中第一层数组中的每个数组记录了一条原子链,每一条原子链中的数组记录了这条原子链中的每一个原子的信息,每条原子链中第一个数组记录的是晶胞原点的坐标信息,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角。
在优选实施例中,所述原子局部坐标轴为以该原子与前一个原子之间的连线为z轴的负方向,x轴方向为该原子与前一个和后一个原子所在平面垂直的方向,y轴为与z轴、x轴成右手螺旋规则的方向,第一个原子的前一个原子为晶胞原点,最后一个原子的后一个原子为分子内任意一个非骨架原子;所述原子链:计算分子内每个原子与晶胞原点之间的距离,选择距离最近的一个原子为起始原子,对分子内的每个原子,在分子的拓扑结构中找到一条连接该原子和起始原子的通路,分子内的原子作为通路的节点,分子内两原子之间的键作为通路的边。
在优选实施例中,所述转换还包括:读取与晶体结构对应的分子结构中每个原子的分数坐标,确定每个原子的原子链,并将原子链存储为三维数组中{[(cell_o,cell_o),(an1,at1),(an2,at2),…,(ann,atn)],…,[(cell_o,cell_o),(an1,at1),(an2,at2),…,(anm,atm)]},其中an1为起始原子,ani为分子内的任一原子,每个数组记录每个原子到起始原子的连接链路;计算晶胞原点到第一个原子的向量和晶胞棱a、c的夹角,得到θ0102;遍历该数组,对每个原子链计算其di1i1,di2i2;获取该原子在原子链上前一个和后一个原子的分数坐标,第一个原子的前一个原子为晶胞的原点,最后一个原子的后一个原子为分子内任一一个与该原子和前一个原子不共线的原子,计算该原子距离前一个原子的距离,得到di1;计算该原子与前后原子形成的夹角的度数,得到θi1;确定原子链上每个原子的原子局部坐标轴,计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴距,得到di2;计算计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴间夹角,得到θi2;将该数组存储为新分子结构中的分子内每个原子对应的原子链的属性中,并关联到对应的新晶体结构中。
在优选实施例中,所述演化步骤包括:接受晶胞属性参数演化范围的输入或设置,接受柔性键演化范围的输入或设置,接受新对象数据结构,计算晶体的晶格能,复制新晶体结构对象,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,然后遍历新晶体结构中的分子内每个原子对应的原子链的对应数组,对每条原子链匹配指定的柔性键,若匹配到原子链中相邻的两个原子名称和顺序与指定的柔性键的原子键名称和顺序相同,则对后一个原子按指定步长调整,每次调整一个参数,默认做正向调整,然后计算调整后的晶体的晶格能,若调整后的晶体的晶格能增加,则下一步调整循环中做负向调整,如果调整后的晶体的晶格能减少则在下一个调整循环中继续做正向调整,若调整值超出预设调整边界,则将边界作为调整后的值,重复调整,直至最低的晶体晶格能在设定的停止次数下不再增加;所述演化步骤的演化顺序为先调整晶胞参数,再调整柔性键参数,晶胞参数按a、b、c、α、β、γ顺序进行调整,柔性键按新分子结构中的原子链数组中的顺序进行调整。
在优选实施例中,所述二次转换包括:将新晶体结构中的晶胞属性和空间群属性复制为晶体结构中的对应属性,读取第一条原子链中的晶胞原点数组(cell_o,cell_o,0,θ01,0,θ02)和初始原子数组(an1,at1,d1111,d1212,),记初始原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d11 2,cosθ01 2=x2/(x2+y2+z2),cosθ02 2=z2/(x2+y2+z2),解方程组可获取初始原子在晶胞内的分数坐标;读取下一个原子数组(an2,at2,d2121,d2222,),记该原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d21 2,cosθ11=(d11 2+d21 2-x2-y2-z2)/2d11d21,cosθ12=(d12 2+d22 2-x2-y2-z2)/2d12d22,解方程组获取该原子在晶胞内的分数坐标;依次读取下一个原子数组(ani,ati,di1i1,di2i2),重复解方程组x2+y2+z2=di1 2,cosθ(i-1)1=(d(i-1)1 2+di1 2-x2-y2-z2)/2d(i-1)1di1
cosθ(i-1)2=(d(i-1)2 2+di2 2-x2-y2-z2)/2d(i-1)2di2,获取原子在晶胞中的分数坐标,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角;如此迭代可以得到整条原子链中每个原子的分数坐标;遍历新分子结构中的分子内每个原子对应的原子链数组,对每条原子链重复上述求解操作,得到整个分子内全部原子的分数坐标,将分子内的全部原子的原子名称、原子类型、分数坐标填入分子结构的分子内全部原子的位置信息属性中,就得到了完整的晶体结构。
一种晶体空间结构变换系统,包括:
读取模块:读取晶体文件,将晶体文件中的晶胞参数、分子内的原子坐标和空间群信息转换为面向对象的数据结构存储,面向对象的数据结构包括:晶体结构、分子结构,晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性;分子结构包括:对应的分子实例的唯一标识、分子内全部原子的位置信息;
转换模块:将面向对象的数据结构转换为新对象数据结构,新对象数据结构包括:新晶体结构、新分子结构,新晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性,新分子结构包括:分子内每个原子对应的原子链,将面向对象的数据结构中晶体结构中的晶胞属性和空间群属性复制到新晶体结构中对应属性,读取分子结构中分子内全部原子的位置信息,根据原子的位置信息确定每个原子的原子链;
晶体演化模块:计算晶体的晶格能,根据设定步长调整晶体的晶胞属性参数和柔性键取值,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,对每条原子链匹配指定的柔性键,根据设定步长进行旋转调整柔性键,每次调整一个参数,计算调整后的晶体晶格能,直至最低的晶体晶格能在设定的停止次数下不再增加,分配ID给演化形成新的晶体;
二次转换模块:将新对象数据结构转换为面向对象的数据结构;
保存模块:将晶胞属性、空间群属性写入新的文件,遍历非对称单元内所有分子的属性,获取对应的分子结构参数,对每个分子结构中的原子数组依次逐行写入文件。
在优选实施例中,所述晶体结构的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ,所述分子结构的分子内全部原子的位置信息为二维数组,该二维数组中每一项为一个5维数组,该5维数字第一项为原子的名称,第二项为原子的元素类型,第三至五项为原子在晶胞内的分数坐标;
所述二次转换模块包括:将新晶体结构中的晶胞属性和空间群属性复制为晶体结构中的对应属性,读取第一条原子链中的晶胞原点数组(cell_o,cell_o,0,θ01,0,θ02)和初始原子数组(an1,at1,d1111,d1212,),记初始原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d11 2,cosθ01 2=x2/(x2+y2+z2),cosθ02 2=z2/(x2+y2+z2),解方程组可获取初始原子在晶胞内的分数坐标;读取下一个原子数组(an2,at2,d2121,d2222,),记该原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d21 2,cosθ11=(d11 2+d21 2-x2-y2-z2)/2d11d21,cosθ12=(d12 2+d22 2-x2-y2-z2)/2d12d22,解方程组获取该原子在晶胞内的分数坐标;依次读取下一个原子数组(ani,ati,di1i1,di2i2),重复解方程组x2+y2+z2=di1 2,cosθ(i-1)1=(d(i-1)1 2+di1 2-x2-y2-z2)/2d(i-1)1di1
cosθ(i-1)2=(d(i-1)2 2+di2 2-x2-y2-z2)/2d(i-1)2di2,获取原子在晶胞中的分数坐标,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角;如此迭代可以得到整条原子链中每个原子的分数坐标;遍历新分子结构中的分子内每个原子对应的原子链数组,对每条原子链重复上述求解操作,得到整个分子内全部原子的分数坐标,将分子内的全部原子的原子名称、原子类型、分数坐标填入分子结构的分子内全部原子的位置信息属性中,就得到了完整的晶体结构
在优选实施例中,所述新晶体结构包的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ;所述新分子结构用三维数组记录分子内每个原子对应的原子链{[(cell_o,cell_o,0,θ01,0,θ02),(an1,at1,d1111,d1212,),(an2,at2,d2121,d2222),…,(ann,atn,dn1n1,dn2n2)],…,[(cell_o,cell_o,0,θ01,0,0),(an1,at1,d1111,d1212),(an2,at2,d2121,d2222),…,(anm,atm,dm1m1,dm2m2)]},其中第一层数组中的每个数组记录了一条原子链,每一条原子链中的数组记录了这条原子链中的每一个原子的信息,每条原子链中第一个数组记录的是晶胞原点的坐标信息,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角;
所述转换模块还包括:读取与晶体结构对应的分子结构中每个原子的分数坐标,确定每个原子的原子链,并将原子链存储为三维数组中{[(cell_o,cell_o),(an1,at1),(an2,at2),…,(ann,atn)],…,[(cell_o,cell_o),(an1,at1),(an2,at2),…,(anm,atm)]},其中an1为起始原子,ani为分子内的任一原子,每个数组记录每个原子到起始原子的连接链路;计算晶胞原点到第一个原子的向量和晶胞棱a、c的夹角,得到θ0102;遍历该数组,对每个原子链计算其di1i1,di2i2;获取该原子在原子链上前一个和后一个原子的分数坐标,第一个原子的前一个原子为晶胞的原点,最后一个原子的后一个原子为分子内任一一个与该原子和前一个原子不共线的原子,计算该原子距离前一个原子的距离,得到di1;计算该原子与前后原子形成的夹角的度数,得到θi1;确定原子链上每个原子的原子局部坐标轴,计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴距,得到di2;计算计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴间夹角,得到θi2;将该数组存储为新分子结构中的分子内每个原子对应的原子链的属性中,并关联到对应的新晶体结构中。
上述晶体空间结构变换方法及系统通过转换将面向对象的数据结构转换为新对象数据结构,从而将晶体的参数空间从描述每个原子在晶胞内的分数坐标,转换为描述晶体内相邻两个原子之间的相对位置,包括相对距离,之间的夹角,和相邻两个分子键之间的轴距和轴间夹角,这样在晶体演化过程中整个参数空间是连续变化的,克服了之前由于参数空间不连续,导致演化过程不能平滑找到局部最优解的问题,这使得使用新的参数空间在找到局部和全局能量最低的晶体结构的过程中,效率有大幅提升,在研究和算法开发方面也更直观。
附图说明
图1为晶胞的示意图;
图2为本发明一实施例的晶体空间结构变换方法的部分流程图。
具体实施方式
如图1所示,本发明一实施例的晶体空间结构变换方法,包括:
步骤S101,读取:读取晶体文件,将晶体文件中的晶胞参数、分子内的原子坐标和空间群信息转换为面向对象的数据结构存储,面向对象的数据结构包括:晶体结构、分子结构,晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性;分子结构包括:对应的分子实例的唯一标识、分子内全部原子的位置信息;
步骤S103,转换:将面向对象的数据结构转换为新对象数据结构,新对象数据结构包括:新晶体结构、新分子结构,新晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性,新分子结构包括:分子内每个原子对应的原子链,将面向对象的数据结构中晶体结构中的晶胞属性和空间群属性复制到新晶体结构中对应属性,读取分子结构中分子内全部原子的位置信息,根据原子的位置信息确定每个原子的原子链;
步骤S105,晶体演化:计算晶体的晶格能,根据设定步长调整晶体的晶胞属性参数和柔性键取值,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,对每条原子链匹配指定的柔性键,根据设定步长进行旋转调整柔性键,每次调整一个参数,计算调整后的晶体晶格能,直至最低的晶体晶格能在设定的停止次数下不再增加,分配ID给演化形成新的晶体;
步骤S107,二次转换:将新对象数据结构转换为面向对象的数据结构;
步骤S109,保存:将晶胞属性、空间群属性写入新的文件,遍历非对称单元内所有分子的属性,获取对应的分子结构参数,对每个分子结构中的原子数组依次逐行写入文件。
本实施例,支持读取传统的CIF晶体文件,读取方式为标准的逐行扫描。模块将CIF文件中的晶胞参数、分子内的原子坐标和空间群信息按下述面向对象的数据结构存储。
数据结构包括2个实体类:晶体结构(Crystal)、分子结构(Molecule)。Crystal类实例化后对应一个具体的晶体结构。Molecule类实例化后对应一个具体的分子结构。Crystal和Molecule之间是1对多的关系,即每个Crystal实例有1个或多个外键指向对应的Molecule实例。
Crystal类包括属性id、unit_cell、molecule_ids、sym。其中id是对应晶体实例的唯一标识。Unit_cell为晶胞属性,是一个6位数组,记录对应晶胞的6个参数:三组棱长a、b、c及棱间交角α、β、γ。molecule_ids为一个不定长多维数组,记录非对称单元内所有分子的id。Sym是晶体实例对应的空间群。
Molecule类包括属性id、atoms。其中id是对应分子实例的唯一标识。atoms为分子内全部原子的位置信息,优选的为分子内全部原子的二维数组,即数组中的每一项是一个5维数组,这个5维数组第一项为原子的名称,第二项为原子的元素类型,第三~五项为原子在晶胞内的分数坐标。参见背景技术。
新数据结构包括2个实体类:新晶体结构(New_Crystal)、新分子结构(New_Molecule)。New_Crystal类实例化后对应一个具体的晶体结构。New_Molecule类实例化后对应一个具体的分子结构。New_Crystal和New_Molecule之间是1对多的关系,即每个New_Crystal实例有1个或多个外键指向对应的New_Molecule实例。
New_Crystal类包括属性id、unit_cell、molecule_ids、sym。其中id是对应晶体实例的唯一标识。Unit_cell为晶胞属性,一个6位数组,记录对应晶胞的6个参数:三组棱长a、b、c及棱间交角α、β、γ。molecule_ids为一个不定长多维数组,记录非对称单元内所有分子的id。Sym是晶体实例对应的空间群。
New_Molecule类包括属性id、atoms_chains。其中id是对应分子实例的唯一标识。
atoms_chains记录了分子内每个原子对应的原子链,用一个三维数组记录,结构是这样的:{[(cell_o,cell_o,0,θ01,0,θ02),(an1,at1,d1111,d1212,),(an2,at2,d2121,d2222),…,(ann,atn,dn1n1,dn2n2)],…,[(cell_o,cell_o,0,θ01,0,0),(an1,at1,d1111,d1212),(an2,at2,d2121,d2222),…,(anm,atm,dm1m1,dm2m2)]},其中,第一层数组中的每个数组记录了一条原子链,每一条原子链中的数组记录了这条原子链中的每一个原子的信息。每条原子链中第一个数组记录的是晶胞原点的坐标信息。其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角。原子信息数组第一项an为原子名称,唯一对应分子内的一个原子。第二项为原子的元素类型。第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离。第四项θi1为该原子与前一个和后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0。第五项di2为该原子与前一个原子的原子局部坐标轴中x轴之间的轴距。第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角。
原子局部坐标轴确定方法:该原子与前一个原子之间的连线为z轴的负方向。x轴方向为该原子与前一个和后一个原子所在平面垂直的方向。y轴为与z轴、x轴成右手螺旋规则的方向。第一个原子的前一个原子为晶胞原点,最后一个原子的后一个原子为分子内任意一个非骨架原子。
原子链确定方法为:
1.计算分子内每个原子与晶胞原点之间的距离。选择距离最近的一个原子为起始原子。
2.对分子内的每个原子,在分子的拓扑结构中找到一条连接该原子和起始原子的通路,通路的节点是分子内的原子,通路的边是分子内两原子之间的键。
优选地,根据下列规则将CIF晶体文件读取的数据结构,转化为新数据结构。
1.将Crystal对象中的晶胞属性和空间群属性直接复制为New_Crystal对象中对应的属性。
2.对Crystal对象中的每一个对应的Molecule对象进行如下操作。
1)读取Molecule对象中的每个atom的分数坐标。按上述原子链确定方法,找出每个原子的原子链,并将原子链存储在三维数组中,存储结构如下。{[(cell_o,cell_o),(an1,at1),(an2,at2),…,(ann,atn)],…,[(cell_o,cell_o),(an1,at1),(an2,at2),…,(anm,atm)]}。其中an1为起始原子,ani为分子内的任一原子。每个数组都记录了每个原子到起始原子的连接链路。
2)计算晶胞原点到第一个原子的向量和晶胞棱a、c的夹角,得到θ0102
3)遍历这个数组,对每个原子链计算其di1i1,di2i2。首先,获取该原子在原子链上前一个和后一个原子的分数坐标,第一个原子的前一个原子为晶胞的原点,最后一个原子的后一个原子为分子内任一一个与该原子和前一个原子不共线的原子。计算该原子距离前一个原子的距离,得到di1。计算该原子与前后原子形成的夹角的度数,得到θi1。按原子局部坐标轴确定方法,确定原子链上每个原子的局部坐标。计算前一个原子的局部x轴与该原子的局部x轴的轴距,得到di2。计算计算前一个原子的局部x轴与该原子的局部x轴的轴间夹角,得到θi2
4)将这个数组存储为New_Molecule对象中的atoms_chains属性。并将New_Molecule对象关联到步骤1中的New_Crystal对象中。
得到了新数据结构下的晶体对象。
晶体演化是通过调整晶体内的晶胞,晶胞内分子位置、朝向,分子内柔性键来改变晶体结构,得到目标性质更好的晶体结构。本实施例支持以晶体晶格能为目标函数的演化。具体演化流程如下。
1.指定晶胞参数的演化范围。
系统提供接口,支持人工输入晶胞参数三组棱长a、b、c及棱间交角α、β、γ的演化范围。输入为一个二维数组[(ad,au,as),(bd,bu,bs),(cd,cu,cs),(αdus),(βdus),(γdus)]。其中ad,bd,cd,为棱长演化范围下限,取值范围是[1%,100%],au,bu,cu,为棱长演化范围上限,取值范围是[100%,1000%]。其中αddd为棱角演化范围下限,取值范围是[-180°,0°],αuuu为棱角演化范围上限,取值范围是[0°,180°]。实际演化过程中,晶胞参数会在(a*ad,a*au),(b*bd,b*bu),(c*cd,c*cu),(α+αd,α+αu),(β+βd,β+βu),(γ+γd,γ+γu)范围内取值。as,bs,cs为棱长的调整步长,αsds为棱角的调整步长。
系统可根据需要设置默认参数,系统默认的晶胞参数是[(10%,200%,0.01%),(10%,200%,0.01%),(10%,200%,0.01%),(-10°,10°,0.01°),(-10°,10°,0.01°),(-10°,10°,0.01°)]
2.指定柔性键的演化范围。
柔性键是分子内可旋转的单键。通常当两个原子之间形成σ键的时候,键两端的基团可以沿着键轴旋转,形成不同的分子构象。
本实施例中,系统提供接口,支持人工指定分子柔性键的演化范围。具体流程如下。
1)将分子内可旋转的单键两端的原子名称以数组的形式输入系统。如:[(an1,an3),(an7,an10)],表示该分子内有两个柔性键,两端原子分别是名称为an1,an3和an7,an10的原子。
2)对每个柔性键设置旋转范围,输入为一个二维数组[(θd1-3u1-3s1-3),(θd7-10u7-10s7-10)]。其中θd1-3d7-10,为柔性键旋转范围下限,取值范围是
[-180°,0°]。其中θu1-3u7-10,为柔性键旋转范围上限,取值范围是[0°,180°]。系统默认柔性键的取值范围是[-180°,180°]。θs1-3s7-10为柔性键调整步长,默认取值为0.01°。
3.输入初始晶体
演化输入的初始晶体为经过经过晶体文件转换模块转换后的New_Crystal晶体对象。
4.计算初始晶体的晶格能。系统支持用力场方法、半经验方法、高精度量化方法计算晶体的能量。也可采用计算化学学科中的标准方法计算晶体能量的方法,常用的力场计算工具有Amber、charmm等,半经验等计算工具有DFTB、Dmacrys,高精度量化方法的计算工具有VASP,Crystal09等。
5.按预设步长调整晶体的晶胞参数和柔性键的取值。复制一个New_Crystal对象,按照晶胞预设的棱长和棱角调整步长值调整晶胞参数,将调整后的参数值直接赋给晶胞参数属性值。然后遍历New_Crystal对象的atoms_chains数组,对每条原子链匹配指定的柔性键,如上例中的[(an1,an3),(an7,an10)]。如果匹配到原子链中相邻的两个原子名称和顺序与指定的柔性键的原子键名称和顺序相同,则对后一个原子,如上例中的an3,an10,所在原子数组的θ32,θ102,按指定步长调整。
6.上个步骤中,每次调整只调整一个参数,默认做正向调整,即在原值基础上增加步长。然后计算调整后的晶体的晶格能。如果调整后的晶体的能量增加,则在下一个调整循环中做负向调整,即在原值基础上减少步长。如果调整后的晶体的能量减少,则在下一个调整循环中继续做争相调整。
7.如果调整值超出预设调整边界,则将边界做为调整后的值。
8.重复5~7步,直到最低的晶体能量在给定的停止次数下不再增加。默认的停止次数为2000,即在连续2000次迭代内没有能量更低的晶体出现,则停止演化。用户可以手动修改停止次数。
本实施例的二次转换从New_Crystal对象转换为Crystal对象,具体转换方式如下。
1.将New_Crystal对象中的晶胞属性和空间群属性直接复制为Crystal对象中对应的属性。
2.对New_Crystal对象中的每一个对应的New_Molecule对象进行如下操作。
1)读取第一条原子链中的晶胞原点数组(cell_o,cell_o,0,θ01,0,θ02)和初始原子数组(an1,at1,d1111,d1212,)。记初始原子在晶胞内的分数坐标为x,y,z。则x2+y2+z2=d11 2,cosθ01 2=x2/(x2+y2+z2),cosθ02 2=z2/(x2+y2+z2)。解方程可以得到初始原子在晶胞内的分数坐标。
2)读取下一个原子数组(an2,at2,d2121,d2222,),记该原子在晶胞内的分数坐标为x,y,z。则x2+y2+z2=d21 2,cosθ11=(d11 2+d21 2-x2-y2-z2)/2d11d21,cosθ12=(d12 2+d22 2-x2-y2-z2)/2d12d22。解方程可以得到该原子在晶胞内的分数坐标。
3)读取下一个原子数组,重复上一步,如此迭代可以得到整条原子链中每个原子的分数坐标。
4)遍历New_Molecule对象中的属性atoms_chains数组。对每条原子链重复上三步的操作,可以得到整个分子内全部原子的分数坐标。
3.将分子内的全部原子的原子名称、原子类型、分数坐标填入Molecule对象的atoms属性中,就得到了完整的Crystal对象。
保存,将演化得到的全部晶体存储成文件,供研究和其他用途。具体流程如下。
1.用户可以通过接口指定需要保存的晶体结构的id。用户可以指定初始的晶体,但通常会指定演化过程中的任何结构。也可以指定全部演化得到的晶体结构。
2.该模块会根据id检索到系统中对应的New_Crystal对象。然后调用晶体结构转换模块中New_Crystal转换成Crystal对象的功能,得到Crystal对象。
3.该模块接着会将Crystal对象的晶胞参数属性unit_cell、空间群属性sym顺序分行写入新的CIF文件。然后遍历molecule_ids属性,获取对应的Molecule对象,并将每个Molecule中的原子数组依次逐行按写入CIF文件。
4.系统支持直接将CIF文件保存在硬盘或其他存储介质中。
本发明一实施例的晶体空间结构变换系统,包括:
读取模块:读取晶体文件,将晶体文件中的晶胞参数、分子内的原子坐标和空间群信息转换为面向对象的数据结构存储,面向对象的数据结构包括:晶体结构、分子结构,晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性;分子结构包括:对应的分子实例的唯一标识、分子内全部原子的位置信息;
转换模块:将面向对象的数据结构转换为新对象数据结构,新对象数据结构包括:新晶体结构、新分子结构,新晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性,新分子结构包括:分子内每个原子对应的原子链,将面向对象的数据结构中晶体结构中的晶胞属性和空间群属性复制到新晶体结构中对应属性,读取分子结构中分子内全部原子的位置信息,根据原子的位置信息确定每个原子的原子链;
晶体演化模块:计算晶体的晶格能,根据设定步长调整晶体的晶胞属性参数和柔性键取值,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,对每条原子链匹配指定的柔性键,根据设定步长进行旋转调整柔性键,每次调整一个参数,计算调整后的晶体晶格能,直至最低的晶体晶格能在设定的停止次数下不再增加,分配ID给演化形成新的晶体;
二次转换模块:将新对象数据结构转换为面向对象的数据结构;
保存模块:将晶胞属性、空间群属性写入新的文件,遍历非对称单元内所有分子的属性,获取对应的分子结构参数,对每个分子结构中的原子数组依次逐行写入文件。
本实施例的晶体结构的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ,所述分子结构的分子内全部原子的位置信息为二维数组,该二维数组中每一项为一个5维数组,该5维数字第一项为原子的名称,第二项为原子的元素类型,第三至五项为原子在晶胞内的分数坐标。
本实施例的新晶体结构包的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ。新分子结构用三维数组记录分子内每个原子对应的原子链{[(cell_o,cell_o,0,θ01,0,θ02),(an1,at1,d1111,d1212,),(an2,at2,d2121,d2222),…,(ann,atn,dn1n1,dn2n2)],…,[(cell_o,cell_o,0,θ01,0,0),(an1,at1,d1111,d1212),(an2,at2,d2121,d2222),…,(anm,atm,dm1m1,dm2m2)]},其中第一层数组中的每个数组记录了一条原子链,每一条原子链中的数组记录了这条原子链中的每一个原子的信息,每条原子链中第一个数组记录的是晶胞原点的坐标信息,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角。
原子局部坐标轴为以该原子与前一个原子之间的连线为z轴的负方向,x轴方向为该原子与前一个和后一个原子所在平面垂直的方向,y轴为与z轴、x轴成右手螺旋规则的方向,第一个原子的前一个原子为晶胞原点,最后一个原子的后一个原子为分子内任意一个非骨架原子。
本实施例的原子链:计算分子内每个原子与晶胞原点之间的距离,选择距离最近的一个原子为起始原子,对分子内的每个原子,在分子的拓扑结构中找到一条连接该原子和起始原子的通路,分子内的原子作为通路的节点,分子内两原子之间的键作为通路的边。
进一步,本实施例的转换模块还包括:读取与晶体结构对应的分子结构中每个原子的分数坐标,确定每个原子的原子链,并将原子链存储为三维数组中{[(cell_o,cell_o),(an1,at1),(an2,at2),…,(ann,atn)],…,[(cell_o,cell_o),(an1,at1),(an2,at2),…,(anm,atm)]},其中an1为起始原子,ani为分子内的任一原子,每个数组记录每个原子到起始原子的连接链路;计算晶胞原点到第一个原子的向量和晶胞棱a、c的夹角,得到θ0102;遍历该数组,对每个原子链计算其di1i1,di2i2;获取该原子在原子链上前一个和后一个原子的分数坐标,第一个原子的前一个原子为晶胞的原点,最后一个原子的后一个原子为分子内任一一个与该原子和前一个原子不共线的原子,计算该原子距离前一个原子的距离,得到di1;计算该原子与前后原子形成的夹角的度数,得到θi1;确定原子链上每个原子的原子局部坐标轴,计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴距,得到di2;计算计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴间夹角,得到θi2;将该数组存储为新分子结构中的分子内每个原子对应的原子链的属性中,并关联到对应的新晶体结构中。
进一步,本实施例的演化模块包括:接受晶胞属性参数演化范围的输入或设置,接受柔性键演化范围的输入或设置,接受新对象数据结构,计算晶体的晶格能,复制新晶体结构对象,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,然后遍历新晶体结构中的分子内每个原子对应的原子链的对应数组,对每条原子链匹配指定的柔性键,若匹配到原子链中相邻的两个原子名称和顺序与指定的柔性键的原子键名称和顺序相同,则对后一个原子按指定步长调整,每次调整一个参数,默认做正向调整,然后计算调整后的晶体的晶格能,若调整后的晶体的晶格能增加,则下一步调整循环中做负向调整,如果调整后的晶体的晶格能减少则在下一个调整循环中继续做正向调整,若调整值超出预设调整边界,则将边界作为调整后的值,重复调整,直至最低的晶体晶格能在设定的停止次数下不再增加。优选的,演化模块的演化顺序为先调整晶胞参数,再调整柔性键参数,晶胞参数按a、b、c、α、β、γ顺序进行调整,柔性键按新分子结构中的原子链数组中的顺序进行调整。
二次转换模块包括:将新晶体结构中的晶胞属性和空间群属性复制为晶体结构中的对应属性,读取第一条原子链中的晶胞原点数组(cell_o,cell_o,0,θ01,0,θ02)和初始原子数组(an1,at1,d1111,d1212,),记初始原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d11 2,cosθ01 2=x2/(x2+y2+z2),cosθ02 2=z2/(x2+y2+z2),解方程组可获取初始原子在晶胞内的分数坐标;读取下一个原子数组(an2,at2,d2121,d2222,),记该原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d21 2,cosθ11=(d11 2+d21 2-x2-y2-z2)/2d11d21,cosθ12=(d12 2+d22 2-x2-y2-z2)/2d12d22,解方程组获取该原子在晶胞内的分数坐标;依次读取下一个原子数组(ani,ati,di1i1,di2i2),重复解方程组x2+y2+z2=di1 2,cosθ(i-1)1=(d(i-1)1 2+di1 2-x2-y2-z2)/2d(i-1)1di1,cosθ(i-1)2=(d(i-1)2 2+di2 2-x2-y2-z2)/2d(i-1)2di2,获取原子在晶胞中的分数坐标,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角;如此迭代可以得到整条原子链中每个原子的分数坐标;遍历新分子结构中的分子内每个原子对应的原子链数组,对每条原子链重复上述求解操作,得到整个分子内全部原子的分数坐标,将分子内的全部原子的原子名称、原子类型、分数坐标填入分子结构的分子内全部原子的位置信息属性中,就得到了完整的晶体结构。
本实施例的保存模块,将演化得到的全部晶体存储成文件,供研究和其他用途。具体流程如下:
用户可以通过接口指定需要保存的晶体结构的id。用户可以指定初始的晶体,但通常会指定演化过程中的任何结构。也可以指定全部演化得到的晶体结构。
该模块会根据id检索到系统中对应的New_Crystal对象。然后调用晶体结构转换模块中New_Crystal转换成Crystal对象的功能,得到Crystal对象。
该模块接着会将Crystal对象的晶胞参数属性unit_cell、空间群属性sym顺序分行写入新的CIF文件。然后遍历molecule_ids属性,获取对应的Molecule对象,并将每个Molecule中的原子数组依次逐行按写入CIF文件。
系统支持直接将CIF文件保存在硬盘或其他存储介质中。
本发明系统架构采用模型层和控制层分离的架构设计。
模型层的数据存储采用直接内存管理的架构,控制层用Python开发成便于调用和封装的代码脚本库。
本发明可以部署在公有云上、本地集群上,也可以部署在用户的个人电脑上。系统运行软件环境可采用:Linux 4以上内核版本,Python2.7运行环境。
本发明将晶体的参数空间从描述每个原子在晶胞内的分数坐标,转换为描述晶体内相邻两个原子之间的相对位置,包括相对距离,之间的夹角,和相邻两个分子键之间的轴距和轴间夹角。这样在晶体演化过程中整个参数空间是连续变化的。克服了之前由于参数空间不连续,导致演化过程不能平滑找到局部最优解的问题。这使得使用心得参数空间在找到局部和全局能量最低的晶体结构的过程中,效率有大幅提升,在研究和算法开发方面也更直观。
以上述依据本申请的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项申请技术思想的范围内,进行多样的变更以及修改。本项申请的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (10)

1.一种晶体空间结构变换方法,其特征在于,包括:
读取:读取晶体文件,将晶体文件中的晶胞参数、分子内的原子坐标和空间群信息转换为面向对象的数据结构存储,面向对象的数据结构包括:晶体结构、分子结构,晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性;分子结构包括:对应的分子实例的唯一标识、分子内全部原子的位置信息;
转换:将面向对象的数据结构转换为新对象数据结构,新对象数据结构包括:新晶体结构、新分子结构,新晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性,新分子结构包括:分子内每个原子对应的原子链,将面向对象的数据结构中晶体结构中的晶胞属性和空间群属性复制到新晶体结构中对应属性,读取分子结构中分子内全部原子的位置信息,根据原子的位置信息确定每个原子的原子链;
晶体演化:计算晶体的晶格能,根据设定步长调整晶体的晶胞属性参数和柔性键取值,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,对每条原子链匹配指定的柔性键,根据设定步长进行旋转调整柔性键,每次调整一个参数,计算调整后的晶体晶格能,直至最低的晶体晶格能在设定的停止次数下不再增加,分配ID给演化形成新的晶体;
二次转换:将新对象数据结构转换为面向对象的数据结构;
保存:将晶胞属性、空间群属性写入新的文件,遍历非对称单元内所有分子的属性,获取对应的分子结构参数,对每个分子结构中的原子数组依次逐行写入文件。
2.根据权利要求1所述的晶体空间结构变换方法,其特征在于,所述晶体结构的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ,所述分子结构的分子内全部原子的位置信息为二维数组,该二维数组中每一项为一个5维数组,该5维数字第一项为原子的名称,第二项为原子的元素类型,第三至五项为原子在晶胞内的分数坐标。
3.根据权利要求2所述的晶体空间结构变换方法,其特征在于,所述新晶体结构包的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ;所述新分子结构用三维数组记录分子内每个原子对应的原子链{[(cell_o, cell_o,0,θ01, 0, θ02), (an1,at1, d1111, d 12, θ12,), (an2, at2, d2121, d 22, θ22),…, (ann, atn, dn1n1, d n2n2)], …,[(cell_o, cell_o,0,θ01, 0, 0), (an1, at1, d1111, d 12, θ12), (an2, at2,d2121, d 22, θ22),…, (anm, atm, dm1m1, d m2, θm2)]},其中第一层数组中的每个数组记录了一条原子链,每一条原子链中的数组记录了这条原子链中的每一个原子的信息,每条原子链中第一个数组记录的是晶胞原点的坐标信息,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角。
4.根据权利要求3所述的晶体空间结构变换方法,其特征在于,所述原子局部坐标轴为以该原子与前一个原子之间的连线为z轴的负方向,x轴方向为该原子与前一个和后一个原子所在平面垂直的方向,y轴为与z轴、x轴成右手螺旋规则的方向,第一个原子的前一个原子为晶胞原点,最后一个原子的后一个原子为分子内任意一个非骨架原子;所述原子链:计算分子内每个原子与晶胞原点之间的距离,选择距离最近的一个原子为起始原子,对分子内的每个原子,在分子的拓扑结构中找到一条连接该原子和起始原子的通路,分子内的原子作为通路的节点,分子内两原子之间的键作为通路的边。
5.根据权利要求3所述的晶体空间结构变换方法,其特征在于,所述转换还包括:读取与晶体结构对应的分子结构中每个原子的分数坐标,确定每个原子的原子链,并将原子链存储为三维数组中{[(cell_o,cell_o),(an1, at1), (an2, at2),…, (ann, atn)], …,[(cell_o,cell_o),(an1, at1), (an2, at2),…, (anm, atm)]},其中an1为起始原子,ani为分子内的任一原子,每个数组记录每个原子到起始原子的连接链路;计算晶胞原点到第一个原子的向量和晶胞棱a、c的夹角,得到θ01, θ02;遍历该数组,对每个原子链计算其di1i1,d i2, θi2;获取该原子在原子链上前一个和后一个原子的分数坐标,第一个原子的前一个原子为晶胞的原点,最后一个原子的后一个原子为分子内任一一个与该原子和前一个原子不共线的原子,计算该原子距离前一个原子的距离,得到di1;计算该原子与前后原子形成的夹角的度数,得到θi1;确定原子链上每个原子的原子局部坐标轴,计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴距,得到d i2;计算计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴间夹角,得到θi2;将该数组存储为新分子结构中的分子内每个原子对应的原子链的属性中,并关联到对应的新晶体结构中。
6.根据权利要求1至5任意一项所述的晶体空间结构变换方法,其特征在于,所述演化步骤包括:接受晶胞属性参数演化范围的输入或设置,接受柔性键演化范围的输入或设置,接受新对象数据结构,计算晶体的晶格能,复制新晶体结构对象,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,然后遍历新晶体结构中的分子内每个原子对应的原子链的对应数组,对每条原子链匹配指定的柔性键,若匹配到原子链中相邻的两个原子名称和顺序与指定的柔性键的原子键名称和顺序相同,则对后一个原子按指定步长调整,每次调整一个参数,默认做正向调整,然后计算调整后的晶体的晶格能,若调整后的晶体的晶格能增加,则下一步调整循环中做负向调整,如果调整后的晶体的晶格能减少则在下一个调整循环中继续做正向调整,若调整值超出预设调整边界,则将边界作为调整后的值,重复调整,直至最低的晶体晶格能在设定的停止次数下不再增加;所述演化步骤的演化顺序为先调整晶胞参数,再调整柔性键参数,晶胞参数按a、b、c、α、β、γ顺序进行调整,柔性键按新分子结构中的原子链数组中的顺序进行调整。
7.根据权利要求2至5任意一项所述的晶体空间结构变换方法,其特征在于,所述二次转换包括:将新晶体结构中的晶胞属性和空间群属性复制为晶体结构中的对应属性,读取第一条原子链中的晶胞原点数组(cell_o, cell_o,0,θ01, 0, θ02)和初始原子数组(an1,at1, d1111, d 12, θ12,),记初始原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d11 2,cosθ01 2= x2/(x2+y2+z2),cosθ02 2= z2/(x2+y2+z2),解方程组可获取初始原子在晶胞内的分数坐标;读取下一个原子数组(an2, at2, d2121,d 2222,),记该原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d21 2,cosθ11=(d11 2+ d21 2-x2-y2-z2)/2d11d21,cosθ12=(d12 2+d22 2-x2-y2-z2)/2d12d22,解方程组获取该原子在晶胞内的分数坐标;依次读取下一个原子数组(ani, ati,di1i1, di2, θi2) ,重复解方程组x2+y2+z2=di1 2,cosθ (i-1)1=(d (i-1)1 2+di1 2-x2-y2-z2)/2d(i-1)1di1
cosθ(i-1)2=(d(i-1)2 2+di2 2-x2-y2-z2)/2d(i-1)2di2,获取原子在晶胞中的分数坐标,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角;如此迭代可以得到整条原子链中每个原子的分数坐标;遍历新分子结构中的分子内每个原子对应的原子链数组,对每条原子链重复上述求解操作,得到整个分子内全部原子的分数坐标,将分子内的全部原子的原子名称、原子类型、分数坐标填入分子结构的分子内全部原子的位置信息属性中,就得到了完整的晶体结构。
8.一种晶体空间结构变换系统,其特征在于,包括:
读取模块:读取晶体文件,将晶体文件中的晶胞参数、分子内的原子坐标和空间群信息转换为面向对象的数据结构存储,面向对象的数据结构包括:晶体结构、分子结构,晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性;分子结构包括:对应的分子实例的唯一标识、分子内全部原子的位置信息;
转换模块:将面向对象的数据结构转换为新对象数据结构,新对象数据结构包括:新晶体结构、新分子结构,新晶体结构包括:晶体实例的唯一标识、对应的晶胞属性、非对称单元内所有分子的ID、晶体实例对应的空间群属性,新分子结构包括:分子内每个原子对应的原子链,将面向对象的数据结构中晶体结构中的晶胞属性和空间群属性复制到新晶体结构中对应属性,读取分子结构中分子内全部原子的位置信息,根据原子的位置信息确定每个原子的原子链;
晶体演化模块:计算晶体的晶格能,根据设定步长调整晶体的晶胞属性参数和柔性键取值,按照晶胞预设的棱长和棱角调整步长调整晶胞属性参数,将调整后的参数值赋给晶胞属性参数值,对每条原子链匹配指定的柔性键,根据设定步长进行旋转调整柔性键,每次调整一个参数,计算调整后的晶体晶格能,直至最低的晶体晶格能在设定的停止次数下不再增加,分配ID给演化形成新的晶体;
二次转换模块:将新对象数据结构转换为面向对象的数据结构;
保存模块:将晶胞属性、空间群属性写入新的文件,遍历非对称单元内所有分子的属性,获取对应的分子结构参数,对每个分子结构中的原子数组依次逐行写入文件。
9.根据权利要求8所述的晶体空间结构变换系统,其特征在于,所述晶体结构的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ,所述分子结构的分子内全部原子的位置信息为二维数组,该二维数组中每一项为一个5维数组,该5维数字第一项为原子的名称,第二项为原子的元素类型,第三至五项为原子在晶胞内的分数坐标;
所述二次转换模块包括:将新晶体结构中的晶胞属性和空间群属性复制为晶体结构中的对应属性,读取第一条原子链中的晶胞原点数组(cell_o, cell_o,0,θ01, 0, θ02)和初始原子数组(an1, at1, d1111, d 12, θ12,),记初始原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d11 2,cosθ01 2= x2/(x2+y2+z2),cosθ02 2= z2/(x2+y2+z2),解方程组可获取初始原子在晶胞内的分数坐标;读取下一个原子数组(an2, at2, d2121,d 2222,),记该原子在晶胞内的分数坐标为x,y,z,则x2+y2+z2=d21 2,cosθ11=(d11 2+ d21 2-x2-y2-z2)/2d11d21,cosθ12=(d12 2+d22 2-x2-y2-z2)/2d12d22,解方程组获取该原子在晶胞内的分数坐标;依次读取下一个原子数组(ani, ati, di1i1, di2, θi2) ,重复解方程组x2+y2+z2=di1 2,cosθ (i-1)1=(d (i-1)1 2+di1 2-x2-y2-z2)/2d(i-1)1di1
cosθ(i-1)2=(d(i-1)2 2+di2 2-x2-y2-z2)/2d(i-1)2di2,获取原子在晶胞中的分数坐标,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角;如此迭代可以得到整条原子链中每个原子的分数坐标;遍历新分子结构中的分子内每个原子对应的原子链数组,对每条原子链重复上述求解操作,得到整个分子内全部原子的分数坐标,将分子内的全部原子的原子名称、原子类型、分数坐标填入分子结构的分子内全部原子的位置信息属性中,就得到了完整的晶体结构。
10.根据权利要求8或9所述的晶体空间结构变换系统,其特征在于,所述新晶体结构包的对应晶胞属性记录对应晶胞的6个参数,三组棱长a、b、c、及棱间夹角α、β、γ;所述新分子结构用三维数组记录分子内每个原子对应的原子链{[(cell_o, cell_o,0,θ01, 0, θ02),(an1, at1, d1111, d 12, θ12,), (an2, at2, d2121, d 22, θ22),…, (ann, atn, dn1n1, d n2, θn2)], …,[(cell_o, cell_o,0,θ01, 0, 0), (an1, at1, d1111, d 12, θ12),(an2, at2, d2121, d 22, θ22),…, (anm, atm, dm1m1, d m2, θm2)]},其中第一层数组中的每个数组记录了一条原子链,每一条原子链中的数组记录了这条原子链中的每一个原子的信息,每条原子链中第一个数组记录的是晶胞原点的坐标信息,其中cell_o表示晶胞原点,θ01为晶胞原点到第一个原子的向量和晶胞a棱轴的夹角,θ02为晶胞原点到第一个原子的向量和晶胞c棱轴的夹角,原子信息数组第一项ani为原子名称,唯一对应分子内的一个原子;第二项为原子的元素类型,第三项di1为距离前一个原子的距离,第一个原子的第三项表示距离晶胞原点的距离;第四项θi1为该原子与前一个原子、和与后一个原子形成的夹角的度数,第一个原子的前一个原子为晶胞的原点,最后一个原子的θi1为0;第五项di2为该原子与前一个原子局部坐标轴中x轴之间的轴距,第六项θi2为该原子与前一个原子局部坐标轴中x轴之间的夹角;
所述转换模块还包括:读取与晶体结构对应的分子结构中每个原子的分数坐标,确定每个原子的原子链,并将原子链存储为三维数组中{[(cell_o,cell_o),(an1, at1), (an2,at2),…, (ann, atn)], …,[(cell_o,cell_o),(an1, at1), (an2, at2),…, (anm,atm)]},其中an1为起始原子,ani为分子内的任一原子,每个数组记录每个原子到起始原子的连接链路;计算晶胞原点到第一个原子的向量和晶胞棱a、c的夹角,得到θ01, θ02;遍历该数组,对每个原子链计算其di1i1, d i2, θi2;获取该原子在原子链上前一个和后一个原子的分数坐标,第一个原子的前一个原子为晶胞的原点,最后一个原子的后一个原子为分子内任一一个与该原子和前一个原子不共线的原子,计算该原子距离前一个原子的距离,得到di1;计算该原子与前后原子形成的夹角的度数,得到θi1;确定原子链上每个原子的原子局部坐标轴,计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴距,得到d i2;计算计算前一个原子的原子局部坐标轴的x轴与该原子的原子局部坐标轴的x轴的轴间夹角,得到θi2;将该数组存储为新分子结构中的分子内每个原子对应的原子链的属性中,并关联到对应的新晶体结构中。
CN202011427695.3A 2020-12-09 2020-12-09 晶体空间结构变换方法及系统 Pending CN112466418A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011427695.3A CN112466418A (zh) 2020-12-09 2020-12-09 晶体空间结构变换方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011427695.3A CN112466418A (zh) 2020-12-09 2020-12-09 晶体空间结构变换方法及系统

Publications (1)

Publication Number Publication Date
CN112466418A true CN112466418A (zh) 2021-03-09

Family

ID=74800406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011427695.3A Pending CN112466418A (zh) 2020-12-09 2020-12-09 晶体空间结构变换方法及系统

Country Status (1)

Country Link
CN (1) CN112466418A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113192578A (zh) * 2021-06-04 2021-07-30 北京市计算中心 晶体对称性及能带路径确定方法及装置
CN114187971A (zh) * 2021-12-10 2022-03-15 上海智药科技有限公司 分子自由能计算、稳定性分析方法、装置、设备及存储介质
CN114397420A (zh) * 2021-12-17 2022-04-26 西安近代化学研究所 一种层状堆积含能化合物分子晶体压缩势能的确定方法
WO2022252181A1 (zh) * 2021-06-03 2022-12-08 深圳晶泰科技有限公司 一种高效晶体展胞方法及其系统

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120330632A1 (en) * 2011-06-27 2012-12-27 The Research Foundation Of State University Of New York Method for predicting optimized crystal structures
CN104765918A (zh) * 2015-03-31 2015-07-08 华东理工大学 搜索化学反应过渡态的方法
CN104915473A (zh) * 2015-05-15 2015-09-16 华东理工大学 一种测量晶体表面结构之间距离的方法
CN107102016A (zh) * 2017-06-13 2017-08-29 北京航空航天大学 一种基于晶体结构的原子尺度晶体取向分析方法
CN108573123A (zh) * 2018-05-09 2018-09-25 深圳晶泰科技有限公司 药物晶体结构全景分析系统及其全景分析方法
CN108896591A (zh) * 2018-05-11 2018-11-27 深圳晶泰科技有限公司 一种晶体粉末衍射的指标化方法
US20190005202A1 (en) * 2015-10-30 2019-01-03 Synopsys, Inc. Atomic Structure Optimization
CN109190299A (zh) * 2018-10-06 2019-01-11 辽宁石油化工大学 一种根据晶面指数和晶向指数变换坐标系的方法
CN109215744A (zh) * 2018-10-24 2019-01-15 辽宁石油化工大学 一种正弦波形位错攀移原子结构的建模方法
CN109346132A (zh) * 2018-10-17 2019-02-15 辽宁石油化工大学 一种构建螺型位错原子结构的方法
CN109344509A (zh) * 2018-10-04 2019-02-15 辽宁石油化工大学 一种螺型位错原子结构构建的方法
CN109523599A (zh) * 2018-11-30 2019-03-26 燕山大学 一种透射电镜高分辨原子图像中矢量的标定方法及系统
CN109830268A (zh) * 2019-02-16 2019-05-31 辽宁石油化工大学 一种倾扭混合型晶界原子结构的建模方法
US20190171793A1 (en) * 2017-12-05 2019-06-06 Toyota Research Institute, Inc. Artificial intelligence based stable materials discovery process
CN109935278A (zh) * 2019-02-28 2019-06-25 深圳晶泰科技有限公司 晶体结构碰撞快速检测方法
CN110176280A (zh) * 2019-05-10 2019-08-27 北京大学深圳研究生院 一种描述材料晶体结构的方法及其应用
CN110634537A (zh) * 2019-07-24 2019-12-31 深圳晶泰科技有限公司 用于有机分子晶体结构高精度能量计算的双层神经网算法
CN110826181A (zh) * 2019-09-30 2020-02-21 华中科技大学 一种相变材料的性能获取方法、终端设备和计算机可读介质
CN111046058A (zh) * 2019-12-04 2020-04-21 姚宏宇 基于晶体结构离散化表达的遍历搜索方法
CN111798939A (zh) * 2020-06-02 2020-10-20 中山大学 一种晶体结构数据库构建方法及结构搜索方法
US20200332172A1 (en) * 2017-02-22 2020-10-22 Halliburton Energy Services, Inc. Reactivity Mapping

Patent Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120330632A1 (en) * 2011-06-27 2012-12-27 The Research Foundation Of State University Of New York Method for predicting optimized crystal structures
CN104765918A (zh) * 2015-03-31 2015-07-08 华东理工大学 搜索化学反应过渡态的方法
CN104915473A (zh) * 2015-05-15 2015-09-16 华东理工大学 一种测量晶体表面结构之间距离的方法
US20190005202A1 (en) * 2015-10-30 2019-01-03 Synopsys, Inc. Atomic Structure Optimization
US20200332172A1 (en) * 2017-02-22 2020-10-22 Halliburton Energy Services, Inc. Reactivity Mapping
CN107102016A (zh) * 2017-06-13 2017-08-29 北京航空航天大学 一种基于晶体结构的原子尺度晶体取向分析方法
US20190171793A1 (en) * 2017-12-05 2019-06-06 Toyota Research Institute, Inc. Artificial intelligence based stable materials discovery process
CN108573123A (zh) * 2018-05-09 2018-09-25 深圳晶泰科技有限公司 药物晶体结构全景分析系统及其全景分析方法
CN108896591A (zh) * 2018-05-11 2018-11-27 深圳晶泰科技有限公司 一种晶体粉末衍射的指标化方法
CN109344509A (zh) * 2018-10-04 2019-02-15 辽宁石油化工大学 一种螺型位错原子结构构建的方法
CN109190299A (zh) * 2018-10-06 2019-01-11 辽宁石油化工大学 一种根据晶面指数和晶向指数变换坐标系的方法
CN109346132A (zh) * 2018-10-17 2019-02-15 辽宁石油化工大学 一种构建螺型位错原子结构的方法
CN109215744A (zh) * 2018-10-24 2019-01-15 辽宁石油化工大学 一种正弦波形位错攀移原子结构的建模方法
CN109523599A (zh) * 2018-11-30 2019-03-26 燕山大学 一种透射电镜高分辨原子图像中矢量的标定方法及系统
CN109830268A (zh) * 2019-02-16 2019-05-31 辽宁石油化工大学 一种倾扭混合型晶界原子结构的建模方法
CN109935278A (zh) * 2019-02-28 2019-06-25 深圳晶泰科技有限公司 晶体结构碰撞快速检测方法
CN110176280A (zh) * 2019-05-10 2019-08-27 北京大学深圳研究生院 一种描述材料晶体结构的方法及其应用
WO2020228140A1 (zh) * 2019-05-10 2020-11-19 北京大学深圳研究生院 一种描述材料晶体结构的方法及其应用
CN110634537A (zh) * 2019-07-24 2019-12-31 深圳晶泰科技有限公司 用于有机分子晶体结构高精度能量计算的双层神经网算法
CN110826181A (zh) * 2019-09-30 2020-02-21 华中科技大学 一种相变材料的性能获取方法、终端设备和计算机可读介质
CN111046058A (zh) * 2019-12-04 2020-04-21 姚宏宇 基于晶体结构离散化表达的遍历搜索方法
CN111798939A (zh) * 2020-06-02 2020-10-20 中山大学 一种晶体结构数据库构建方法及结构搜索方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022252181A1 (zh) * 2021-06-03 2022-12-08 深圳晶泰科技有限公司 一种高效晶体展胞方法及其系统
CN113192578A (zh) * 2021-06-04 2021-07-30 北京市计算中心 晶体对称性及能带路径确定方法及装置
CN114187971A (zh) * 2021-12-10 2022-03-15 上海智药科技有限公司 分子自由能计算、稳定性分析方法、装置、设备及存储介质
CN114397420A (zh) * 2021-12-17 2022-04-26 西安近代化学研究所 一种层状堆积含能化合物分子晶体压缩势能的确定方法
CN114397420B (zh) * 2021-12-17 2023-12-12 西安近代化学研究所 一种层状堆积含能化合物分子晶体压缩势能的确定方法

Similar Documents

Publication Publication Date Title
CN112466418A (zh) 晶体空间结构变换方法及系统
Fishman et al. Faster methods for contracting infinite two-dimensional tensor networks
US9747099B2 (en) Parallel computer architecture for computation of particle interactions
Turk MAIN software for density averaging, model building, structure refinement and validation
US10921780B2 (en) Nesting procedures and management of 3D printing
CN110520834A (zh) 替选循环限制
JPH077426B2 (ja) 形状設計方法又は形状予測方法
WO2022036538A1 (zh) 有机分子晶体构建方法及系统
Thomas et al. Comparing crystal structures with symmetry and geometry
WO2021044857A1 (ja) 材料特性予測システムおよび情報処理方法
Gautam Energy minimization
Konobrytskyi et al. 5-Axis tool path planning based on highly parallel discrete volumetric geometry representation: Part I contact point generation
Ásgeirsson et al. Exploring potential energy surfaces with saddle point searches
Wall Quantum crystallographic charge density of urea
Konobrytskyi Automated CNC tool path planning and machining simulation on highly parallel computing architectures
Liu et al. Parameterization for molecular Gaussian surface and a comparison study of surface mesh generation
CN104504758B (zh) 义齿冠表面曲面生成方法
WO2022120646A1 (zh) 晶体空间结构变换方法及系统
Dannelongue et al. Efficient data structures for adaptive remeshing with the FEM
CN110600076B (zh) 一种基于距离和角度信息的蛋白质atp对接方法
Sultania et al. Investigation of structural relations among the compounds in the ICSD using geometry based comparison techniques
JP2002297678A (ja) Voxelモデルの座標決定処理方法,座標決定処理プログラムおよび座標決定処理プログラム記録媒体
Ding et al. A parallel finite volume procedure for phase-field simulation of solidification
Morgan et al. The alchemical energy landscape for a pentameric cluster
Fonseca et al. KGSrna: efficient 3D kinematics-based sampling for nucleic acids

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination