linux计算命令——MS导data、node计算命令、周期性设置、定义变量、设置电荷、group分组、shake控制水分子、固定原子为刚性、控制原子结构不变
1.在lammps中通过car文件导出data文件
(进入工作目录xxx,文件名xxx很严格,文件名和car和mdf的xxx必须要一样。
cd xxx/
msi2lmp.exe xxx -class I -frc clayff -i > out.log ## clayff力场
msi2lmp.exe xxx -class I -frc cvff -i > out.log ## cvff力场
生成后xxx文件夹会有data生成,可检查一下data力场对不对,不对的话检查一下frc_files里面的clayff.frc参数准不准。)
msi2lmp xxx -class II -frc pcff -i > data.asphalt ## pcff力场 ,写法和上边有所不同
#node01可以转成功,node03不一定
2.计算命令说明:
source /opt/software/impi/mpivars.sh (注意:只有source后边是有空格,其他的没有空格)
nohup mpirun -np 4 lmp_mpi < xxx.in > xxx.out &(计算文件名,如:mmt422.in)
(4代表4核,也可以选择8,10等,nohup是放在后台计算后,电脑关机了也不停止)
其中,<:输入 >:输出 &:放到后台计算
top: 进入后台,q :退出来
ctrl +C 停止计算 ——前台跑
kill +空格+流程号 ——后台跑
kill -9+空格+流程号 ——后台跑(如果计算错误,可以通过这个强势停止)

ssh node02 回车(进入新服务器)
3.输入计算命令:
lmp_mkl < xxx.in > xxx.out & (后部分的out文金价可以不生成出来)
nohup mpirun -np 4 lmp_mpi < elastic.in > elastic.out &
nohup mpirun -np 4 lmp_mkl < elastic.in > elastic.out &(计算文件名,如:mmt422.in)
lmp_mpi 和 lmp_mkl 是代表不同版本的的lammps,低版本的lammps可能不包含一些特殊的命令,最好使用高版本,这样避免in文件中一些命令无法运行。
如果是windows版本的lammps,提交计算命令略有不同,如下:
mpiexec -np 4 lmp -in xxx.in #其中xxx.in表示in文件的名称,详情见https://mp.weixin.qq.com/s/i6fa7xTKjlgSirPm0cj_4w
4.非周期性边界的设置:
boundary p p f #f:非周期性和固定
kspace_style ewald 1.0e-6
kspace_modify slab 3.0 (一定要有这一行,这行命令将z方向的静电作用力关掉,没有这一行命令无法计算)
5.定义变量——多种方式
variable filename1 index npt #定义文件名
variable pz equal 1
6.设置原子电荷
set type 1 charge 1.50133929 #ao 由1.575改为1.49507186
set type 2 charge 2.03265323 #st 由2.1改为 .... ,为了实现电荷平衡
set type 3 charge -1.05 #ob
7.分组group
#分别设置高岭石和水分子组,根据原子类型来分组
group mmt type 1 2 3 4 5 6 7 8 9 10 11
group wat type 12 13
#根据坐标来分组
region up3 block INF INF INF INF 45.3 INF #滑块最上层部分(4+顶部Na)
region up2 block INF INF INF INF 37 45.3 #滑块上层部分(8+4+Na)
region up1 block INF INF INF INF 29 37 #滑块下层mmt(4+8+4+Na)
region down3 block INF INF INF INF 7 18 #基体上层部分(4+8+4+Na)
region down2 block INF INF INF INF 1 7 #基体下层部分mmt(4+8+Na)
region down1 block INF INF INF INF INF 1 #基体最下层部分(4面体)
group up1 region up1
group down1 region down1
group up2 region up2
group down2 region down2
group up3 region up3
group down3 region down3
#需要用到的组。 subtract减法、减去、删除;intersect 相交;union 加法、联合
group thermonvt union down2 up2
group up union up1 up2 up3
group down union down1 down2 down3
group thermo subtract all up2 up3 #创建一个组thermo,等于all减去(up2 + up3)
group topAtom id 3957 #该id号是基体顶部的ob,根据原子id号来分组
8.shake控制水分子的键和角
#模拟过程中,水分子的键长和健角使用shake方法保持不变
fix WT wat shake 0.0001 20 0 m 1.00797
9.nvt系综的设定
fix 1 all nve
fix 2 thermonvt langevin 300 300 100.0 699483
10.对某区域固定不动
根据lammps算法,一个原子只与周围处于近邻列表中的原子发生相互作用,因此,排除原子对之间受力最简单的方式是把原子从其近邻列表中删除。对于刚体和固定层,可以采用这种方法来处理,用到的命令为:neigh_modify exclude。
a、固定
velocity down1 set 0 0 0 #固定层设置方法,固定原子不动,但是还是对其他原子有相互作用的关系
fix down1 down1 setforce 0 0 0
neigh_modify exclude group down1 down1 # neigh_modify exclude group group_1 group_2 排除两组之间的受力(仅仅是pairwise interactions).这个需要lj/cut算法,不考虑长程作用力才行,若考虑,就不要用这一行命令
b、刚体
#注意:fix rigid系列命令在进行刚体约束时,本身也负责动力学方程的积分,因此不能与动力学积分相关的命令联用。当体系中同时包含刚体部分和非刚体部分时,需要分别为它们进行系综设置。
fix 4 rigidmmt rigid group 2 down1 fixmmt #定义为刚性层,将一组或多组原子视为独立的刚体。
neigh_modify exclude group down1 down1
neigh_modify exclude group fixmmt fixmmt
#fix 5 down1 spring/self 500.0 xyz #在三个方向约束down1,保持不动,根据情况考虑是否加这一行命令,如果仅仅想要设置为刚体,可以不用该行fix 5
fix rigid rigidmmt rigid single force * off off on torque * off off off #设置刚体 ,设置力和力矩,off为消除改方向的影响
11.在模拟过程中使用下面的命令使结构保持不变,同时调节水的密度
fix 4 up3 setforce 0 0 NULL
fix 5 up3 aveforce 0 0 0

浙公网安备 33010602011771号