clumping (from either sedimentation or from radial concentrations). This would in some cases slow down the code by a factor of 8-10. We therefore developed an improved particle parallelisation, which we denote [*Particle Block Domain Decomposition*]{} (PBDD). This new algorithm is described in detail in the following subsection.

### Particle Block Domain Decomposition

The steps in Particle Block Domain Decomposition scheme are as follows:

1.  The fixed mesh points are domain-decomposed in the usual way (with [ ncpus]{}=[nprocx]{}$\times$[nprocy]{}$\times$[nprocz]{}).

2.  Particles on each processor are counted in [*bricks*]{} of size [ nbx]{}$\times$[nby]{}$\times$[nbz]{} (typically [nbx]{}$=$[ nby]{}$=$[nbz]{}$=$[4]{}).

3.  Bricks are distributed among the processors so that each processor has approximately the same number of particles

4.  Adopted bricks are referred to as [*blocks*]{}.

5.  The Pencil Code uses a third order Runge-Kutta time-stepping scheme. In the beginning of each sub-time-step particles are counted in blocks and the block counts communicated to the bricks on the parent processors. The particle density assigned to ghost cells is folded across the grid, and the final particle density (defined on the bricks) is communicated back to the adopted blocks. This step is necessary because the drag force time-step depends on the particle density, and each particle assigns 