lammps 内部 atom type 是怎么分配和使用的

2026年09月27日 06:46
有1个网友回答
网友(1):

Lammps给的介绍没有过分强调这个东东,所以一般使用时也不用刻意注意这个。按照说法,这个是lammps多cpu并行计算时用到的处理方式。本来,一个cpu会只计算分配给它的部分原子。但是,问题在于如果某些原子在边界上,边界另一边相邻着的其他原子被分到了别的cpu,这样当前cpu就感知不到这些原子的作用力了。可原子间作用力在某些材料中会有很长距离(cutoff);所以当前cpu分配到的最远的原子所相邻的被分配到别的cpu的原子会保留一份数据给当前cpu。也就是说这些边界上的原子会同时重复存在于多个cpu各自的原子列表里。于是我猜这些跨边界到别的cpu(但不属于别的cpu)一同参与作用力计算的的原子被给了个名叫“ghost atoms”。

有点啰嗦,打个比方不一定对。假设系统有10个原子,左右两个cpu并行处理,左分到了1-5个,右分到了6-10个。如果该材料的cutoff要2个原子的距离,那么为了保证左cpu的第5个原子能感受到与其相邻的6,7号原子作用力,要把右cpu的6,7号原子数据给共享给左cpu,所以给了一份数据到左cpu。于是左cpu的原子列表变成了1-7号原子。同理,右cpu的原子列表变成了4-10号原子。左cpu的6,7号原子本不属于它,但信息被放了进来用于计算,所以这两个原子成了“ghost atoms”。