• Clusterization: In ddX, we use a non-standard adaptive tree instead of the octree approaches used by standard libraries. The spheres building the cavity are usually arranged according to non-uniform distributions; hence, a standard uniform boxification scheme would produce an unbalanced octree, leading to the suboptimal efficiency of the FMM algorithm. This problem is solved using a different clusterization scheme, the recursive inertial bisection, at the cost of having non-standard (and thus non-precomputable) M2M and L2L operators from one tree level to another one. In the inertial bisection step, the distribution of points is split in two by finding the hyperplane that cuts along the moment of inertia. By applying this step recursively, we obtain the recursive inertial bisection algorithm . This guarantees a balanced tree and thus optimal number operations. The construction of the tree scales like N log(N ) as the standard octree generation.