lammps_in文件

#input文件

# 一、初始化(边界条件);前两行不要写东西,第一行默认,不用改
echo screen #如果脚本有错误可以记录下来,可有可无
units real
atom_style full #要与read_data中atom的格式严格对应,否则出现错误
dimension 3
boundary p p p

# LJ potentials:lj对、键、角、库伦等(相互作用类型)
pair_style lj/cut/coul/long 12.5 #非键相互作用:LJ与12.5A截止和长距离库仑
bond_style harmonic
angle_style harmonic
kspace_style ewald 1.0e-4 #长程力算法:长距离库仑的ewald求和法

#读入data文件
read_data mmt.data

pair_modify mix arithmetic
bond_coeff 1 80.0 1.2
angle_coeff 1 1.0 104.52

#二、能量最小化:实现较好的初始结构(主要目的),排除非常不理想的构象,避免分子丢失
min_style cg #能量最小化的模式(方法),cg/spin/fire/sd,选用默认即可,如cg
minimize 1.0e-4 1.0e-6 100 1000 #能量最小化参数,指数越大,最小化程度越深;依次为:能量、力、最大迭代步数、
dump 1 all atom 1000 dump1.lammpstrj #收集数据(输出),每隔1000步收集一次数据

#实现较好的初始结构的方式除了能量最小化外,还有以下两种方式:
#1.把相互作用势改为软势:
# pair_style soft 1.0
# pair_coeff * * 10.0
#2.限制的算法:
# fix nve/limit 0.1 #0.1代表原子在一个时间时长能移动的最大距离

#写fix语句,实现分子动力学-郎之万动力学
#neighbor选取的大小对实际的计算结果影响很小,但对计算速度应该会有一定影响。
neighbor 0.5 bin #意思是每个原子在所取对势(即pair style)的截断半径以外,计算机还会在0.5bin的额外范围每一时间步检测其原子间的相互作用力。
neigh_modify every 1 delay 0 check yes

#NVT系综:nve+T~~nvt
velocity all create 298.0 105112 dist gaussian #由初温度来获得初速度,使用高斯分布生成原子的初始速度
fix 1 all nve #更新位置和速度,e和V保持不变。只有这个命令,就只nve系综,如果和控温命令一起,就是nvt系综。
fix 2 all langevin 298.0 298.0 1000 699411 #控温,fix ID group-ID langevin Tstart Tstop damp seed keyword values 这里温度不变,恒温298k。1000表示摩擦系数。

#热力学数据的收集
thermo 1000 #输出热力学每隔1000(N)个时间步长
thermo_style custom step dt spcpu temp press #选择输出内容(看官网),根据自己的需要

#三、弛豫过程
dump 2 all atom 100 dump2.lammpstrj
run 10000

#四、结果数据输出 data collection
undump 2 #把前边弛豫2终止掉
dump 3 all custom 1000 dump3.lammpstrj id mol type x y z vx vy vz
#dump myDump all custom 100 dump.myforce.* id mol type x y z vx vy vz fx fy fz 根据自己需要收集什么数据来设置(这里是坐标和速度的收集,没有热力学数据的收集,需要用thermo命令)

猜你喜欢

转载自www.cnblogs.com/sysu/p/10810277.html