学习lammps编写的第一个简单的例子。参考文献《单晶硅纳米级磨削过程的理论研究》。

一、in文件部分

  1. # 金刚石半径4.5nm,晶格常数3.57
  2. # 单晶硅 x:15nm,y:15nm ,z:15nm
  3. #echo screen #输出调试、仿真到屏幕
  4. ###设定基本参数
  5. units metal #金属类型
  6. dimension 3 #三维
  7. atom_style atomic #无键
  8. boundary f f f #非边界条件
  9. ###生成原子/区域
  10. region box block -200 200 -200 200 -200 200 units box #box区域,长宽高1000的盒子。
  11. create_box 2 box #创建包含两种原子的盒子
  12. lattice diamond 3.57 #金刚石模型,晶格常数3.57
  13. region s1 sphere 60 -35 63 30 units box #区域名称s1 球形区域 球心坐标xyz 球半径4.5 单位与box相同
  14. region s2 block 0 100 -100 0 0 63 units box #区域名s2 长方体区域 xyz的最高最低坐标 单位同box
  15. region se intersect 2 s1 s2 #区域名 联合区域 联合数 联合s1 联合s2
  16. #create_box 2 se #原子类型数目 区域
  17. create_atoms 1 region se units box #原子类型 区域 单位
  18. ###创建多层Si
  19. lattice diamond 5.4
  20. region b1 block 0 120 0 88.23 39.2 58.82 units box
  21. region b2 block 0 120 0 88.23 19.60 39.2 units box
  22. region b3 block 0 120 0 88.23 0 19.60 units box
  23. region b4 union 3 b1 b2 b3
  24. create_atoms 2 region b4 units box
  25. ###设置质量
  26. mass 1 12.0 #C质量12.0g/mol
  27. mass 2 28.0 #Si质量28g/mol
  28. ###分组
  29. group JGS type 1 #将第一类原子归为JGS类
  30. neighbor 2.0 bin #skin距离
  31. neigh_modify every 2 delay 10 check yes exclude group JGS JGS
  32. #在上一次构建list1后20个步长内不进行构建,延时后两个步长才开始构建,并且要满足当某个原子超过skin距离的一般。排除JGS group的相互作用。
  33. group Si type 2 #将2类原子归为JGS类
  34. group layer1 region b1 #将b1归为layer1类(牛顿层)
  35. group layer2 region b2 #恒温层
  36. group layer3 region b3 #固定边界层
  37. ###设置作用势
  38. pair_style tersoff #按tersoff计算相互作用势
  39. pair_coeff * * SiC.tersoff C Si #两种原子类型,1C,2Si
  40. ###设置计算方法
  41. compute mytemp layer2 temp/com #按temp/com计算恒温层温度
  42. #nve下驰豫
  43. velocity JGS set NULL 0.1667 NULL #JGS组vx设置为1,其余不设置
  44. velocity layer2 create 293 12345 dist gaussian #在293K温度下以12345随机种子赋予layer2,且原子速度按高斯分布
  45. fix 10 JGS nve/noforce #nve:保证系统中原子数量n、体系总体积v和体系总能量e保持不变。noforce:忽略原子力,不更新速度,更新位置。
  46. fix 20 layer1 nve
  47. fix 30 layer2 nve
  48. fix 31 layer2 temp/rescale 1 293 293 1.0 1.0 #基本原理是当温度超出设定温度时,通过缩放的方式调节温度使其达到设定值。
  49. fix_modify 31 temp mytemp
  50. fix 40 layer3 nve/noforce
  51. ###输出体系参数
  52. thermo 200 #每200步输出结果
  53. thermo_style custom step temp c_mytemp ke pe etotal enthalpy #自定义输出格式
  54. thermo_modify lost ignore
  55. ###输出原子参数
  56. dump 3 JGS custom 500 velocity.txt vx vy vz
  57. dump 2 Si custom 1000 Force.txt id x y z fx fy fz
  58. dump 1 all custom 500 C.lammpsstrj id type x y z #dumpID 所有组 自定义输出形式 每一步输出一次 输出坐标xyz
  59. timestep 0.001
  60. run 60000 #run一个步长
  61. write_data C-Si.data #输出data文件
  62. write_restart C-Si.restart

二、ovito轨迹

lammps学习(一)单晶硅纳米磨削 - 图1

三、数据处理

脚本自动化处理还没怎么学,自己手动拉excel将所有Si中所有原子的力求的和输出的受力—时间曲线。
image.png
image.png