Data exchange between owned atoms and ghost atoms
LAMMPS is able to run on a distributed-memory machine, requiring the communication among processors to be carried out by MPI. This is implemented by the Comm
class and its two child classes that implement specific functionalities:
- One of the child classes is
CommBrick
, described bycomm_brick.h
andcomm_brick.cpp
. In thisComm
style, the simulation box is considered as a 3D grid where each block in the grid is assigned to a processor, which is responsible for communicating with its six neighboring blocks in the (x, y, z) directions to exchange information about neighboring atoms. This decomposition is especially suitable for uniform particle density, where every block can be expected to contain the same number of particles. - The other child class is
CommTiled
, described incomm_tiled.h
andcomm_tiled.cpp
, which can adjust the processor domains dynamically and is more effective when the system particle density is non-uniform...