LAMMPS中的setforce命令是设置定义的group分子所受到的力。当想固定某一个group的原子坐标时,直接设置为0即可,具体格式为:
fix 1 bottomwall setforce 0 0 0
其中,1为fix命令的编号;bottomwall为group原子集合的名称;“0 0 0”表示x、y、z的三个方向受力为0。
在使用的过程中,我遇到一种情况:我按照上述格式写了命令,却发现这个bottomwall对应的原子集合仍在运动,没有实现固定的目的。
通过仔细检查才发现,setforce只是保证了受到的力为0,如果原子本身有速度,原子仍然会移动。因此,如果导入的原子信息文件中,bottomwall的原子有初速度,则需要把这个速度设成0。需要用到velocity命令,具体格式为:
velocity bottomwall set 0 0 0
其中,“0 0 0”表示x、y、z方向的速度大小。
因此,为了保险起见,建议在使用setforce命令进行固定时,同时使用velocity命令将原子集合的速度设为0,从而实现固定。完整的格式为:
fix 1 bottomwall setforce 0 0 0
velocity bottomwall set 0 0 0
END