分享一个团簇融化的lammps模拟案例,由Carsten Svaneborg博士编写。
模拟单位为LJ,2D模拟体系,周期性边界条件,力场为最常见的LJ力场。
模拟思路:
(1)设置一个4040的模拟盒子,在盒子中央设置一个2020的区域,在中间区域内随机填充原子。
(2)能量最小化消除随机原子的重叠。
(3)设置LJ力场
(4)设置nve系综,使用langevin控温方式进行控温。这一步也可以直接用nvt系综代替。
(5)运行并输出轨迹文件。
案例比较简单,需要注意的是:采用随机方法生成原子,原子之间容易重叠,一定要在正式模拟之前消除原子重叠,否则原子距离过近导致排斥力过大,容易产生“lost atoms”错误。
消除重叠可使用“delete_atoms verlap”和“minimize”命令。
案例代码已注释,仅供参考。
#原子数量
variable npart equal 500
#LJ单位温度
variable tempstart equal 0.5
variable tempstop equal 0.5
#模型基本设置
units lj
dimension 2
atom_style atomic
boundary p p p
neighbor 0.5 bin
neigh_modify every 1 delay 0 check yes
#模拟盒子设置
region box block -20 20 -20 20 -0.1 0.1
create_box 1 box
#2维计算设置
fix 2d all enforce2d
#在box中央设置box2
region box2 block -10 10 -10 10 -0.1 0.1
#在box2中随机生成原子
create_atoms 1 random ${npart} 324523 box2
#摩尔质量
mass * 1
#LJ力场设置
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
#能量最小化
minimize 1e-4 1e-4 1000 1000
reset_timestep 0
#保存原子轨迹
dump img all atom 1000 dump.xyz
#nve系综,langevin控温
fix integrator all nve
fix dynamics all langevin ${tempstart} ${tempstop} 1.0 2352325
#设置屏幕输出热力学信息
thermo_style custom step temp ke pe
thermo 100
#模拟步长设置
timestep 0.01
#运行20000步
run 20000
更多lammps案例,关注微信公众号:lammps加油站