一种螺型位错原子结构构建的方法技术

技术编号:20363716 阅读:30 留言:0更新日期:2019-02-16 16:54
本发明专利技术公开了一种螺型位错原子结构构建的方法。该方法的主要内容包括,在给定包含晶体原子结构信息的文件的前提下,利用C/C++语言提取该文件中的晶体原子结构信息,自动计算出在该晶体特定位置特定方位包含拟构建螺型位错的原子坐标,然后按分子动力学软件能识别的文件格式输出数据到文件。本发明专利技术可方便快捷地在晶体内部任意位置构建任意位向、任意组态的一个或多个螺型位错,为分子动力学对位错行为的精准研究创造了有利条件。

【技术实现步骤摘要】
一种螺型位错原子结构构建的方法
本专利技术涉及分子动力学仿真
,尤其涉及一种螺型位错原子结构构建的方法。
技术介绍
晶体宏观上的塑性变形实质是位错在外力作用下运动的结果。晶体的生长、形变强化、滞弹性、断裂、相变、晶体的电磁性能、晶体的光学性质、超导性以及其他许多物理、化学性质都与位错有重要的关联。因此,位错的研究无论对于科学研究还是实际应用都有着重要意义。实验上研究位错的方法有浸蚀法、缀饰法、透射电子显微分析法、X射线衍射分析法、场离子显微分析法等。这些实验技术被广泛地应用于分析研究位错的密度、分布和组态以及它们的运动和交互作用等。但是在原子尺度上的研究(比如位错芯的研究),分子动力学模拟具有重要的地位。各种位错原子结构的直接构建有利于分子动力学对位错行为更为精准的研究。本专利技术公开了一种螺型位错的构建方法,该方法可方便快捷地在晶体内部任何位置构建任意方位、任意组态的螺型位错,而且可在一个晶体内创建多个不同位向和组态的螺型位错。
技术实现思路
本专利技术所要解决的技术问题,就是提供一种方便快捷地构建螺型位错原子结构的方法,本方法在给定包含晶体的原子结构信息的文件的前提下,使用C/C++语言提取晶体的原子结构信息,自动计算出在晶体内部包含拟构建的螺型位错的原子坐标,然后按分子动力学软件能识别的文件格式输出文件。本专利技术采用的技术解决方案如下:步骤一:建立包含完好晶体模型原子坐标信息的文件。如利用可视化建模软件MaterialsStudio建立超胞结构,以car文件形式输出该超胞的原子结构信息。步骤二:使用C/C++语言提取上述文件中的原子结构信息,将坐标系原点移动到拟构建的螺型位错线上。步骤三:旋转坐标系,使z轴沿着拟创建的螺型位错线的方向,设先绕z轴旋转坐标系xxx度,然后绕x轴旋转坐标系yyy度,最后绕y轴旋转坐标系zzz度,计算晶体所有原子在新坐标系内的坐标值,程序代码如下:x1=x0*cos(xxx)-y0*sin(xxx);y1=x0*sin(xxx)+y0*cos(xxx);z1=z0;x2=x1;y2=y1*cos(yyy)-z1*sin(yyy);z2=y1*sin(yyy)+z1*cos(yyy);atoms[k].x[0]=z2*sin(zzz)+x2*cos(zzz);atoms[k].x[1]=y2;atoms[k].x[2]=z2*cos(zzz)-x2*sin(zzz);程序中atoms[k].x[0]、atoms[k].x[1]和atoms[k].x[2]分别为编号为k的原子在新坐标系内的x、y和z的坐标值。步骤四:计算所有原子在新坐标系的方位角(将新坐标系看作柱坐标系),代码如下:xita=atan(atoms[k].x[1]/atoms[k].x[0])。步骤五:以z轴为中心轴,将所有原子按均分角2π/n切分为n个楔形块,然后依次沿着z轴方向平移距离0,d/n,2d/n,……,d(d为拟创建位错的Burgers矢量的长度),代码如下:for(ki=1;ki<n;ki++){if(xita>=3.1415926/n*(ki-1)&&(xita&lt;3.1415926/n*ki))atoms[k].x[2]+=d/n*(ki-1);}。步骤六:按上述步骤二和步骤三的逆向移动坐标系,使坐标系恢复成原来的位向。步骤七:按分子动力学软件能识别的格式输出数据到文件。按照以上步骤可在一个晶体内任意位置创建任意位向的螺型位错,也可在一个晶体内创建多个不同位向的螺型位错。附图说明图1是本专利技术实施实例中的B2型NiAl金属间化合物20×20×20超胞图。图2是本专利技术实施实例中在超胞内构建的三个螺型位错[1-11]、[110]和[100]。具体实施方式下面结合实施例及附图对本专利技术作进一步详细说明,但本专利技术的实施方式不限于此,在不脱离本专利技术上述思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本专利技术的范围内。实施例:本实例公开了一种螺型位错原子结构构建的方法。本实例在一个B2型NiAl金属间化合物超胞的中心创建三个螺型位错[1-11]、[110]和[100]。本实例依次在一个20×20×20的B2型NiAl金属间化合物超胞的中心创建[1-11]、[110]和[100]螺型位错。(1)在晶体超胞中心创建螺型位错[1-11]。步骤一:采用MaterialsStudio创建20×20×20超胞,如图1所示,然后以car的格式输出数据文件。步骤二:采用C/C++语言提取上述文件中的原子结构信息,将坐标原点移到超胞中心(原坐标系的原点在超胞的一角,x轴在晶向[100],y轴在晶向[010],z轴在晶向[001]),程序代码如下:for(k=0;k&lt;total_no_atoms;k++){atoms[k].x[0]-=center[0];atoms[k].x[1]-=center[1];atoms[k].x[2]-=center[2];}其中,center[0]、center[1]和center[2]为晶体超胞中心在原坐标系中的三个坐标值。步骤三:绕z轴旋转坐标系xxx弧度(xxx=3.1415926/4.0),绕y轴不旋转,绕x轴旋转zzz弧度(zzz=atan(1/1.41421356)),从而使z轴沿着[1-11]方向,计算所有原子在新坐标系内的坐标值,代码如下:x0=atoms[k].x[0];y0=atoms[k].x[1];z0=atoms[k].x[2];x1=x0*cos(xxx)-y0*sin(xxx);y1=x0*sin(xxx)+y0*cos(xxx);z1=z0;x2=x1;y2=y1;z2=z1;atoms[k].x[0]=z2*sin(zzz)+x2*cos(zzz);atoms[k].x[1]=y2;atoms[k].x[2]=z2*cos(zzz)-x2*sin(zzz)。步骤四:计算超胞内所有原子在新坐标系内的方位角(看作柱坐标系),代码如下:if((atoms[k].x[0]==0.0)&&(atoms[k].x[1]>=0.0))xita=3.1415926/2.0;if((atoms[k].x[0]==0.0)&&(atoms[k].x[1]<0.0))xita=3.1415926/2.0*3.0;if((atoms[k].x[0]>0.0)&&(atoms[k].x[1]>=0.0))xita=atan(atoms[k].x[1]/atoms[k].x[0]);if((atoms[k].x[0]<0.0)&&(atoms[k].x[1]>=0.0))xita=atan(atoms[k].x[1]/atoms[k].x[0])+3.1415926;if((atoms[k].x[0]<0.0)&&(atoms[k].x[1]<0.0))xita=atan(atoms[k].x[1]/atoms[k].x[0])+3.1415926;if((atoms[k].x本文档来自技高网...

【技术保护点】
1.一种螺型位错原子结构构建的方法,其特征在于该方法在给定包含晶体原子结构信息的文件的前提下,使用C/C++语言提取该文件中的晶体原子结构信息,自动计算出在晶体内部包含拟构建的螺型位错的原子坐标,然后按分子动力学软件能识别的文件格式输出数据到文件,包括以下主要步骤:步骤一:创立包含晶体模型原子结构信息的文件;步骤二:使用C/C++语言提取上述文件中的原子结构信息,将坐标系原点移动到拟构建的螺型位错线上;步骤三:旋转坐标系,使z轴沿着拟创建的螺型位错线的方向,设先绕z轴旋转坐标系xxx度,然后绕x轴旋转坐标系yyy度,最后绕y轴旋转坐标系zzz度,计算晶体所有原子在新坐标系内的坐标值,程序代码如下:x1 = x0 * cos(xxx) ‑ y0 * sin(xxx); y1 = x0 * sin(xxx) + y0 * cos(xxx); z1 = z0;x2 = x1; y2= y1 * cos(yyy) ‑ z1 * sin(yyy); z2 = y1 * sin(yyy) + z1 * cos(yyy);atoms[k].x[0] = z2 * sin(zzz) + x2 * cos(zzz); atoms[k].x[1] = y2; atoms[k].x[2] = z2 * cos(zzz) ‑ x2 * sin(zzz);程序中atoms[k].x[0]、atoms[k].x[1]和atoms[k].x[2]分别为编号为k的原子在新坐标系内的x、y和z的坐标值;步骤四:计算所有原子在新坐标系的方位角(将新坐标系看作柱坐标系),代码如下:xita = atan(atoms[k].x[1] / atoms[k].x[0]);步骤五:以z轴为中心轴,将所有原子按均分角2π / n切分为n个楔形块,然后依次沿着z轴方向平移距离0,d / n,2 d / n,……,d(d为拟创建位错的Burgers矢量的长度),代码如下:for (ki = 1; ki...

【技术特征摘要】
1.一种螺型位错原子结构构建的方法,其特征在于该方法在给定包含晶体原子结构信息的文件的前提下,使用C/C++语言提取该文件中的晶体原子结构信息,自动计算出在晶体内部包含拟构建的螺型位错的原子坐标,然后按分子动力学软件能识别的文件格式输出数据到文件,包括以下主要步骤:步骤一:创立包含晶体模型原子结构信息的文件;步骤二:使用C/C++语言提取上述文件中的原子结构信息,将坐标系原点移动到拟构建的螺型位错线上;步骤三:旋转坐标系,使z轴沿着拟创建的螺型位错线的方向,设先绕z轴旋转坐标系xxx度,然后绕x轴旋转坐标系yyy度,最后绕y轴旋转坐标系zzz度,计算晶体所有原子在新坐标系内的坐标值,程序代码如下:x1=x0*cos(xxx)-y0*sin(xxx);y1=x0*sin(xxx)+y0*cos(xxx);z1=z0;x2=x1;y2=y1*cos(yyy)-z1*sin(yyy);z2=y1*sin(yyy)+z1*cos(yyy);atoms[k].x[0]=z2*sin(zzz)+x2*cos(zzz);atoms[k].x[1]=y2;atoms[k].x[2]=z2*cos(zzz)-x2...

【专利技术属性】
技术研发人员:吕柏林张艺程苏辉吴敏高学朋
申请(专利权)人:辽宁石油化工大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1