分子动力学方法研究刃位错
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
atom_style atomic
#定义颗粒类型
LAMMPS中晶体建模
lattice bcc 2.8553 orient x 1 -1 1 orient y 2 1 -1 orient z 0 1 1 region box block 0 2 0 3 0 2
#定义晶格类型为体心立方,晶格常数为2.8553埃 #改变晶向,将晶格的(1 -1 1)方向指向盒子的x方向, (2 1 -1)方向指向盒子的y方向,(0 1 1)方向指向盒子的z 方向 #以上述晶格类型为基准单位,定义一个长方体区域,x方向范 围是0到2个基准,y方向上0到3个基准,z方向上0到2个基准
LAMMPS中晶体建模
region right block 55 INF INF INF INF INF #定义一个区域right,长方体,x方向范围是55到无限远, INF是无限远,单位仍是前面定义的晶格基准 delete_atoms region right #删除该区域的原子 region left block INF 5 INF INF INF INF delete_atoms region l #前面4行指令删除了盒子左右两侧的部分原子,制造出两 个自由表面
引入刃位错
柏氏矢量a/2<1 1 1>
variable dx equal 0.0074932 #定义变量dx,大小为柏氏矢量的 1/330
引入刃位错
variable s loop 12 label loops variable dxshang equal ${dx}*($s-1) displace_atoms atom$s move ${dxshang} 0 0 units box next s jump in.bccfe loops #向X正方向移动上半部分(组群1到12)的原子,比如组群 5移动距离为dx乘以(5-1),即组群12移动距离为dx的11 倍,柏氏矢量的1/30,重复30次就移动1个柏氏矢量的距离 variable x loop 12 label loopx variable dxxia equal ${dx}*($x-1) variable m equal (25-$x) displace_atoms atom$m move -${dxxia} 0 0 units box next x jump in.bccfe loopx #向X负方向移动下半部分(组群13到24)的原子,方法与 上面类似
velocity boundary set 0 0 0 fix 1 boundary setforce 0.0 0.0 0.0 #把边界原子的速度和受力设为0,即除了人为移动,边界原子将保持 静止
variable l loop 45 label loopl #定义一个45次的循环l,l取值从1到45,重复移动左侧边界原子的操作 45次
引入刃位错
初始状态,步长为0
l=15,步长为6000
l=45 ,步长为18000
l=30 ,步长为12000
通Leabharlann Baidu加载使位错移动
fix nve all nve variable c loop 30 label loopc #仍采用微正则系综 #引入循环,30次
fix shear all deform 1 xy erate -0.002 #加载在盒子的XY平面上,改变盒子的形状,切应变的大小为0.002 run 400 unfix shear dump 1 all cfg 1 bccfe.*.cfg id type xs ys zs c_3 c_4 c_5 run 0 undump 1 #与前面类似输出构型文件 next c jump in.bccfe loopc #跳到下一个循环
引入刃位错
region a block INF INF 17.5 INF INF INF region b block INF INF INF 0.3 INF INF region c block 25 37.5 INF INF INF INF units box group a region a group b region b group c region c group boundary union a b c #指定边界原子,先定义区域,然后把这个区域内的原子放在一个组 内,units box意味着长度单位不是默认的晶格基准,而是埃Angstrom
分子动力学方法研究刃位错
1.LAMMPS中晶体建模
2. 如何引入刃位错
3.通过加载使位错移动
LAMMPS中晶体建模
units metal #定义单位系统 http://lammps.sandia.gov/doc/units.html dimension 3 boundary p p p #三个方向均为周期 性边界条件
A loop
#跳到下个n进行新的循环
引入刃位错
change_box triclinic #改变盒子的类型,从长方体变为斜方,增加自由度 displace_box all y delta -5 5 remap none #将盒子的Y方向拉长上下各5个单位,原子不作相应改变
pair_style eam/alloy pair_coeff * * Fe_mm.eam.fs Fe timestep 0.0025
引入刃位错
*.cfg
A = 1 Angstrom (basic length-scale) H0(1,1) = 296.731 A H0(1,2) = 0 A H0(1,3) = 0 A H0(2,1) = 0 A H0(2,2) = 83.9283 A H0(2,3) = 0 A H0(3,1) = 0 A H0(3,2) = 0 A H0(3,3) = 8.07601 A
write_restart restart.fe
#输出restart文件, restart.fe
通过加载使位错移动
加载前,步长为18000
c=10 ,步长为22000
c=30 ,步长为30000
c=20,步长为26000
谢 谢!
83.9283 Angstrom
引入刃位错
variable y equal 3.497025 #定义一个变量y,其值为盒子Y方向总长度的1/24 variable n loop 24 #定义一个24次的循环n,n取值从1到24 label loopn #标记,循环进行之后的操作 variable up equal ($y*($n-1)-0.005) #用y和n计算要分组原子的上边界Y坐标,定义为变量up variable down equal ($y*$n-0.005) #用y和n计算要分组原子的下边界Y坐标,定义为变量down region atom$n block 25 37.5 ${up} ${down} INF INF units box #定义长方体区域,X方向范围从25到37.5,Y方向从up到down group atom$n region atom$n #将区域n内的原子定义为组群n next n jump in.bccfe loopn
#声明势函数的类型为嵌入原子势 #调用势函数文件Fe_mm.eam.fs #时间步长为0.0025 picoseconds
引入刃位错
compute compute compute
3 all pe/atom 4 all ke/atom 5 all coord/atom 3.0
#计算每个原子的势能 #计算每个原子的动能 #计算每个原子的近邻原子数
引入刃位错
fix nve all nve #指定弛豫种类为nve,体系的粒子数,体积和能量一定微正则系综 http://lammps.sandia.gov/doc/fix_nve.html run 400 #系统运行400步 unfix nve dump 1 all cfg 1 bccfe.*.cfg id type xs ys zs c_3 c_4 c_5 #输出包含全部原子相对坐标,势能,动能,近邻原子数等信息的构型文件, bccfe.*.cfg,“*”指当前的运行步数 run 0 undump 1 next l jump in.bccfe loopl #跳到下个I,重复之前的移动原子的操作 write_restart restart.indent #制造出了刃位错,输出名为restart.indent的文件(类似于存档)
LAMMPS中晶体建模
晶格取向: 1 -1 1 011
-1 0 0 -2 -1 1
x-y 平面
y-z 平面
LAMMPS中晶体建模
create_box 1box #制造一个盒子,原子种类为1
create_atoms 1region box #在前面指定的区域内按前面 指定的晶体类型和晶向创造原子 replicate 30 6 1 #对样品进行复制,x,y,z方向 上各扩大30倍,6倍和1倍