|
CNT拉伸#变量设置,poro为删除原子的比例 variable poro equal 0.03 #随机数种子,不同随机数获得不同的状态 variable seed equal 15462 #初始温度 variable T equal 300 #模拟步长 variable dt equal 0.0005 #模型基本设置 units metal # required by airebo atom_style full boundary p p p #势函数类型airebo pair_style airebo 2.5 1 1 #读取模型文件 read_data data.mysystem #改变box大小,便于z方向拉伸 change_box all z final -30 70 y final -20 20 x final -20 20 #势函数设置,映射原子类型为CCC pair_coeff * * ./CH.airebo C C C #原子分组 group CNT type 1 #bound函数返回CNT在z两个方向的尺寸 #下面的尺寸用于确定两端固定部分的边界范围 variable zmax equal bound(CNT,zmax)-10 variable zmin equal bound(CNT,zmin)+10 variable zmax0 equal bound(CNT,zmax)-20 variable zmin0 equal bound(CNT,zmin)+20 #划分为3个区域 region top block INF INF INF INF ${zmax} INF region bot block INF INF INF INF INF ${zmin} region mob block INF INF INF INF ${zmin0} ${zmax0} #对区域内原子进行分组 group topgroup region top group botgroup region bot group mobile region mob #设置两端固定部分为不同的原子类型,便于显示不同的颜色 set group topgroup type 2 # control group 1 set group botgroup type 3 # control group 2 #随机删除mob区域内3%的原子,便于cnt从缺陷处断裂 delete_atoms porosity mob ${poro} ${seed} #nve系综,berendsen方式控温 fix myber all temp/berendsen ${T} ${T} 0.1 fix mynve all nve #输出轨迹文件 dump mydmp all atom 500 dump.eq.xyz #模拟步长 timestep ${dt} #热力学输出 thermo 500 #弛豫5000步 run 5000 # #去掉全局控温 unfix myber undump mydmp #重新设置轨迹文件输出 dump mydmp all atom 1000 dump.run.xyz #固定端z方向受力为0,xy方向受力保持原值 fix sf1 topgroup setforce NULL NULL 0.0 fix sf2 botgroup setforce NULL NULL 0.0 #上下部分沿z方向速度设为0,cnt在z方向被固定 velocity topgroup set NULL NULL 0 velocity botgroup set NULL NULL 0 #计算三部分温度,只计算xy两个方向维度 compute Ttop topgroup temp/partial 1 1 0 compute Tbot botgroup temp/partial 1 1 0 compute Tmob mobile temp #对thermo命令进行温度修正 thermo_modify temp Tmob #上下部分单独控温 fix myber1 topgroup temp/berendsen ${T} ${T} 0.1 fix_modify myber1 temp Ttop fix myber2 botgroup temp/berendsen ${T} ${T} 0.1 fix_modify myber2 temp Tbot #计算长度 variable L equal v_zmax-v_zmin #没100步输出长度平均值 fix myat1 all ave/time 10 10 100 v_L file tubeLength.dat #计算拉力,拉力为两固定端受力之差 variable longforce equal f_sf1[3]-f_sf2[3] #对拉力进行平均后输出到文件 fix myat2 all ave/time 10 10 100 v_longforce file forcetube.dat # 循环设置两固定的位移,实现拉伸 variable a loop 100 label loop displace_atoms topgroup move 0 0 0.1 displace_atoms botgroup move 0 0 -0.1 run 1000 next a #input.lammps为本文件的文件名,文件名不同会出错 jump input.lammps loop 上一篇分子自由落体运动模拟下一篇流体绕过障碍物模拟 |