术语
# 术语
# image flag
如果你的系统边界是周期性的,那么粒子从一侧跑出去,又会从另一侧回来。经过好几次之后,即便是坐标没有变化,但是粒子的实际位移也是几倍于系统尺寸。所以,为了在不变动坐标表示的情况下,增加粒子实际的位移信息,就要添加image flag。即,如果粒子从盒子的某侧离开,image flag加一;从相反的方向离开,image flag减一。这样就有粒子在某方向上的移动距离等于image flag乘以盒子在这个方向上的尺寸再加上坐标之差。
# neighbor list
临近表是解决模拟过程中空间搜索的一种策略。粒子在系统中是无序的,而一个粒子计算受力时只需要考虑它周围范围内的粒子。那么,如果每一次都要计算整个体系中所有粒子是否和它有作用是没有意义的。所以,在计算开始前,针对每一个粒子,将和它有关联的粒子都储存在一个表里,这个表就叫临近表。
# ghost atom
临近表分为两部分,一部分是靠近中心粒子的粒子,大多数时间上都在中心粒子附近;另一部分是在中心粒子作用势的边缘,随时失去和中心粒子作用,这一部分叫做skin。这些粒子叫做ghost atom。在粒子运动过程中,如果大多数ghost atom还在skin之内,那么系统就还可以使用当前临近表;当很多的ghost离开skin这层壳,那么说明这个区域有了较大的变动,需要重建临近表。
# dangerous build
预期的情况是每一步计算粒子移动距离较小,内部粒子只在内部,skin中的ghost atom才有离开临近表的可能。但有时候如果势函数设置不对/有过度重叠/步长太长,内部的粒子会超出skin的范围,直接跑到作用范围之外去,这就很dangerous。因为离开skin的粒子和中心粒子的作用力将不会被计算,而它也不属于其他的表,体系的能量将不连续。此时LAMMPS会立刻重建临近表,并在output中告知有些粒子无组织无纪律,需要重新检视集体对个人的管理,考虑更大的skin/减少粒子受力/或者更小的时间步长。