本文摘要(由AI生成):
本文介绍了使用velocity方式在LAMMPS中模拟石墨烯拉伸的详细过程,包括模型初始化、边界条件设置、原子定义、模拟步长设置、石墨烯晶格参数自定义、原子类型生成、质量设置、区域划分、势函数选择、温度初始化、原子固定、模型弛豫、拉伸设置和热力学输出等步骤。最终展示了模拟结果,并提到如需输出应力和应变,可进一步设置。
lammps模拟石墨烯拉伸过程有两个命令可选:deform和velocity,两个命令的原理不同。
deform是按照一定的速率拉伸box,在这个过程中,石墨烯的原子随着box的伸长而变化坐标,从而实现整体的拉伸。
velocity方式通常固定石墨烯的一端,给另一端一个固定的速度v,由这一端的原子带动其余原子运动。
本文采用velocity方式进行石墨烯的拉伸,下一篇文章将采用deform方式对石墨烯进行拉伸。
下面对石墨烯拉伸in文件进行详细分析。
#模型初始化,模拟单位为metal,原子方式为atomic,3维模型 units metal atom_style atomic dimension 3
#定义边界条件,x和y方向为周期性边界,y为拉伸方向,z方向为固定边界
boundary p p f
#定义邻域原子定义,1个原子的邻域原子列表是以该原子为中心,以力截断半径 缓冲值(也就是下面设置的0.3)为半径的圆内原子列表
neior 0.3 bin
#设置模拟步长为1fs
timestep 0.001
#生成模拟box,box内含有3种原子,这三种原子都是C原子,为了后期线上着色方便,原子类型分为上中下三种
region box block 0 175 0 175 -5 5 units box create_box 3 box
#自定义石墨烯晶格参数
lattice custom 2.4768 a1 1.0 0.0 0.0 & a2 0.0 1.732 0.0 a3 0.0 0.0 1.3727 & basis 0.0 0.33333 0.0 & basis 0.0 0.66667 0.0 & basis 0.5 0.16667 0.0 & basis 0.5 0.83333 0.0
#生成石墨烯原子,类型为1
region gp block 10 120 10 120 -0.5 0.5 units box create_atoms 1 region gp
#设置原子质量
mass * 12
#定义区域,上下两部分固定区域和中间活动区域mobile
region upper block INF INF 117 INF INF INF units box region lower block INF INF INF 13 INF INF units box group upper region upper group lower region lower group boundary union upper lower group mobile subtract all boundary
#设定最上端原子类型为2,最下端原子类型为3,为后期着色方便
set group upper type 2 set group lower type 3
#设置势函数,airebo常用于石墨烯的模拟
pair_style airebo 2.0 pair_coeff * * CH.airebo C C C
#初始化温度
velocity mobile create 300.0 8877528
#固定上下两端原子
fix 1 boundary setforce 0.0 0.0 0.0
#以下四句代码,对模型在npt下进行弛豫,并将结果保存到文件中
thermo 100 fix 2 all npt temp 300.0 300.0 1 x 0 0 0.1 y 0 0 0.1 dump 1 all atom 100 gp_relax.lammpstrj run 1000
#取消fix,dump设定,步数清零
unfix 2 undump 1 reset_timestep 0
#最上端设置y方向速度为1,沿y方向拉伸
velocity upper set 0.0 1.0 0.0
#按比例设置mobile部分的速度
velocity mobile ramp vy 0.0 1.0 y 8 52 sum yes
#在nvt下进行拉伸
fix 2 all nvt temp 300.0 300.0 0.01
#进行热力学输出,保存拉伸后原子坐标
thermo 1000 thermo_modify lost ignore dump 1 all atom 1000 gp_tension.lammpstrj run 10000
模拟最终结果如下图所示,本例比较简单,没有加入应力应变的统计,如要输出应力和应变,可用fix或者thermo语句输出pxx、pyy、pzz三个方向上的应力。