Game Development Reference
Figure 7.2. Division of a simulation using two processors.
and the ghost region of p 1 is the area in C 0 adjacent to C 1 :
G 0 → 1 =
where g is the size of the ghost region, as illustrated in Figure 7.2.
When n processors are used, the simulation domain is divided into n domains,
and each processor (except for the ones at either end) have two ghost regions, one
on each side. Let the effective radius (particle diameter in the case of DEM) be
r e = g ; then the particles that can be the neighbors of the particles in C 0 can
be found in the area C 0 ∪ G 1 → 0 . Thus, a processor does not have to query for
particle values kept by adjacent processors during the computation if the particle
data in the ghost region is transferred before the time step (to be precise, this
is true for explicit computation but not for implicit computation, like the moving
particle semi-implicit (MPS) method, which solves Poisson's equation of pressure
on particles [Koshizuka and Oka 96]). We refer to these particles in a ghost region
as ghost particles. Processor p 0 updates the particles in C 0 but only reads the
values of ghost particles. All the particles are updated because all particles exist
in C 0 ∪
C 0 ). If particles
were static, this would be sufficient—but particles move. In the next section, data
management for moving particles is discussed.
C 1 without any duplications ( G 1 → 0 ⊂
C 1 and G 0 → 1 ⊂