分子动力学模拟拉伸除了velocity方式之外,还可以使用fix deform命令。
fix deform命令使系统在给定的应变速率下进行变形。
与velocity方式不同之处在于,deform方式下的拉伸并不需要固定被拉伸物体的两端。在本例中,为防止在能量最小化阶段石墨烯的飘动,同样对石墨烯两端进行了约束。
下面是石墨烯deform方式拉伸in文件代码:
第一部分是模拟系统的初始设置参数,模拟单位为metal类型,周期性边界。
#---------1 基本参数--------------------------------------units metaldimension 3boundary p p pneighbor 0.3 binneigh_modify delay 0timestep 0.001#---------------------------------------------------------
第二部分以lattice方式建立石墨烯带,当然也可以通过MS软件建模,然后通过read_data命令读取石墨烯模型。
用fix deform命令进行拉伸,并不需要固定石墨烯的两端,为了和velocity进行对比,本例同样对石墨烯两端原子进行了设置。
#---------2 建模------------------------------------------region box block 0 50 0 50 -5 5 units boxcreate_box 3 boxlattice 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.0region graphene block 0 50 0 50 -1 2 units boxcreate_atoms 1 region graphenemass * 12region left block INF 4 INF INF INF INF units boxgroup left region leftregion right block 46 INF INF INF INF INF units boxgroup right region rightgroup boundary union left rightgroup mobile subtract all boundaryset group left type 2set group right type 3#------------------------------------------------------
势函数设置和velocity方式一样,均为airebo势
#------------3 势函数设置------------------------------pair_style airebo 3.0 0 0pair_coeff * * CH.airebo C C C#------------------------------------------------------
建模完成后对体系进行能量最小化,获得最优结构
#------------4 能量最小化------------------------------min_style cgminimize 1e-10 1e-10 5000 5000#------------------------------------------------------
初始化温度
#------------5 温度初始化------------------------------velocity mobile create 300 4928459 dist gaussian units boxvelocity left set 0.0 0.0 0.0 units boxvelocity right set 0.0 0.0 0.0 units box#------------------------------------------------------
设置应变速率,拉伸应力值存储到sigmaxx中
#------------6 计算设置--------------------------------compute 1 all stress/atom NULLcompute 2 all reduce sum c_1[1] c_1[2]variable CorVol equal ly*lx*3.35variable sigmaxx equal c_2[1]/(v_CorVol*10000)variable px equal -pxx/10000#应变variable l_x equal lxvariable lx0 equal ${l_x}variable strain equal (lx-v_lx0)/v_lx0#------------------------------------------------------
在npt系综下进行弛豫
#------------7 结构弛豫--------------------------------fix 1 boundary setforce 0 0 0fix 2 all npt temp 300 300 0.01 iso 0 0 0.1thermo 1000thermo_modify lost ignoredump 1 all atom 1000 relax.lammpstrjrun 10000unfix 2undump 1reset_timestep 0#------------------------------------------------------
设置输出参量,在nvt下对石墨烯进行单轴拉伸
#------------8 拉伸设置--------------------------------thermo_style custom step press v_strain v_px v_sigmaxx temp lx ly lz volthermo 100fix 2 all nvt temp 300 300 0.01fix 3 all deform 200 x erate 0.05 remap xdump 1 all atom 500 algp.lammpstrjrun 10000
拉伸之后对数据进行处理,石墨烯在单轴拉伸下最大应力值大约103左右,应力-应变图如下图所示:
从物理意义上拉伸,使用velocity方式拉伸时,固定物体的一端,载荷加载到另一端上,更符合实际拉伸过程。
使用deform方式进行拉伸,模拟盒子在拉伸方向上伸长,原子根据盒子伸长的程度调整到相应的位置,虽然不如velocity更符合实际拉伸过程,但结果相差不大。
需要注意的是,使用velocity拉伸,在拉伸方向上不能使用周期性边界条件,否则会出现拉不动的现象。使用deform拉伸方式,在拉伸方向上可以设置周期性边界条件。
最后,有需求欢迎通过微信公众号联系我们。
微信公众号:320科技工作室。