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

posted @ 2019-12-28 23:51  一棵开花的树sysu  阅读(345)  评论(0)    收藏  举报