本发明涉及分子动力学仿真技术领域,尤其涉及一种位错攀移原子结构的建模方法。
背景技术:
晶体宏观上的塑性变形实质是位错在外力作用下运动的结果。晶体的生长、形变强化、滞弹性、断裂、相变、晶体的电磁性能、晶体的光学性质、超导性以及其他许多物理、化学性质都与位错有重要的关联。因此,位错的研究无论对于科学研究还是实际应用都有着重要意义。实验上研究位错的方法有浸蚀法、缀饰法、透射电子显微分析法、x射线衍射分析法、场离子显微分析法等。这些实验技术被广泛地应用于分析研究位错的密度、分布和组态以及它们的运动和交互作用等。但是在原子尺度上的研究(比如位错芯的研究),分子动力学模拟具有重要的地位。各种位错原子结构的直接构建有利于分子动力学对位错行为更为精准的研究。本发明公开了一种位错攀移原子结构的建模方法,解决了分子动力学及其它计算机仿真研究中位错攀移原子结构建模的问题,本发明公开的方法可方便快捷地在晶体模型内部任何位置构建任意方位、任意组态的位错攀移原子结构,而且可在一个晶体模型内构建多个不同位向和组态的位错攀移原子结构。
技术实现要素:
本发明所要解决的技术问题,就是提供一种方便快捷地构建位错攀移原子结构的方法,本方法在给定包含晶体模型的原子结构信息的文件的前提下,使用编程语言提取晶体模型的原子结构信息,自动计算出在晶体模型内部包含拟构建的位错攀移原子结构的原子坐标,然后按分子动力学软件能识别的文件格式输出文件。
本发明采用的技术解决方案如下:
步骤一:准备包含晶体模型原子结构信息的文件。
步骤二:使用编程语言提取上述文件中的原子结构信息,将坐标系原点移动到拟构建的位错攀移原子结构的位错线上。旋转坐标系,使x轴在位错的滑移方向上,y轴垂直于位错滑移面,然后计算晶体模型内所有原子在新坐标系中的坐标值,包括位错攀移段的两个端点。
步骤三:设定位错周围晶格扭曲明显的区域在x和y方向的范围为2a×2b。
为构成位错,晶体模型内的原子要进行相应的位移,本发明根据位错攀移原子结构周围原子分布的特点,提出以下计算原子位移量的计算公式,设在x方向的位移为q,y方向和z方向不发生位移,设位错攀移段的两个端点在新坐标系中的坐标为(xp,yp,zp)和(xq,yq,zq),zp<zq,位错攀移的位移为dp,计算公式如下:
当z<zp时,y’=y,
当zp≤z≤zq时,y’=y-dp,
当z>zq时,y’=y,
当-a≤x≤a且0≤y’≤b时,q=-d/4×x/a×(1-y’/b),
当x>a且0≤y’≤b时,q=-d/4×(1-y’/b),
当x<-a且0≤y’≤b时,q=d/4×(1-y’/b),
当y’>b时,q=0,
当-a≤x≤a且-b≤y’<0时,q=d/2+d/4×x/a×(1+y’/b),
当x>a且-b≤y’<0时,q=d/2+d/4×(1+y’/b),
当x<-a且-b≤y’<0时,q=d/2-d/4×(1+y’/b),
当y’<-b时,q=d/2,
其中,d为拟构建位错攀移原子结构的位错的burgers矢量的长度。
步骤四:根据上面计算得到的每个原子的位移值,计算晶体模型内所有原子位移后的坐标值,由此在指定的位置构建出相应位向的位错攀移原子结构。
步骤五:按照步骤二的逆向移动坐标系,使坐标系恢复成原来的位向,为新的操作做准备。
步骤六:按分子动力学软件能识别的格式输出数据到文件。
以上内容即为本发明公开的构建位错攀移原子结构方法的主要内容。
本发明所公开的构建位错攀移原子结构的方法,可方便快捷地在晶体模型内部任何位置直接构建任意方位、任意组态的位错攀移原子结构,而且可在一个晶体内直接创建多个不同位向和组态的位错攀移原子结构,有利于分子动力学及其它计算机仿真技术对位错攀移行为更为精准的研究。
附图说明
图1是本发明实施实例中创建的不含位错攀移原子结构的b2型nial金属间化合物20×20×20超胞的原子结构图。
图2是本发明实施实例中内含位错攀移原子结构的超胞原子结构图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细说明,但本发明的实施方式不限于此,在不脱离本发明上述思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的范围内。
实施例:
本实例公开了一种位错攀移原子结构的建模方法。本实例在一个b2型nial金属间化合物20×20×20超胞内构建一个经过超胞中心点、位错攀移段在点(0,0,-8)和点(0,0,10)之间的位错(011)1/2[1-11]攀移原子结构。
步骤一:采用materialsstudio创建20×20×20超胞,如图1所示,然后以car的格式输出数据文件。
步骤二:采用c/c++语言提取上述文件中的原子结构信息,将坐标原点移到超胞的中心点(29.82,29.82,29.82)(原坐标系的原点在超胞的一角,x轴在晶向[100],y轴在晶向[010],z轴在晶向[001]),旋转坐标系,使x轴沿着晶向[1-11],y轴沿着晶向[011]。
步骤三:设定位错周围晶格扭曲明显的区域在x和y方向的范围为2a×2b,本实例取a和b为burgers矢量的长度的4倍,位错攀移的位移dp=7.059,计算晶体超胞内所有原子在x方向的位移q,y方向和z方向不发生位移,主要程序代码如下:
for(k=0;k<total_no_atoms;k++){
d=4.99177/2;a=8*d;b=8*d;
dp=7.059;zp=-8;zq=10;
x1=atoms[k].x[0];
y1=atoms[k].x[1];
z1=atoms[k].x[2];
y2=y1;
if(zp<=z1<=zq){y2=y1-dp;}
if((x1>=-a)&&(x1<=a)&&(y2>=0)&&(y2<=b)){q=-d/4*x1/a*(1-y2/b);}
if((x1>a)&&(y2<=b)&&(y2>=0)){q=-d/4*(1-y2/b);}
if((x1<-a)&&(y2<=b)&&(y2>=0)){q=d/4*(1-y2/b);}
if((y2>b)){q=0;}
if((x1>=-a)&&(x1<=a)&&(y2<0)&&(y2>=-b)){q=d/2+d/4*x1/a*(1+y2/b);}
if((x1>a)&&(y2>=-b)&&(y2<0)){q=d/2+d/4*(1+y2/b);}
if((x1<-a)&&(y2>=-b)&&(y2<0)){q=d/2-d/4*(1+y2/b);}
if((y2<-b)){q=d/2;}}。
步骤四:根据上面计算得到的每个原子的位移值q,计算晶体超胞内所有原子位移后的坐标值,由此构建出相应位向的位错攀移原子结构,程序代码如下:
atoms[k].x[0]+=q。
步骤五:按照步骤二的逆向移动坐标系,使坐标系恢复成原来的位向。
步骤六:按分子动力学软件能识别的格式输出数据到文件。
由此,在一个b2型nial金属间化合物20×20×20超胞内构建了一个经过超胞中心点、位错攀移段在点(0,0,-8)和点(0,0,10)之间的位错(011)1/2[1-11]攀移原子结构。图2为使用ovito软件显示的位错识别图。