Rebuilding HOP

Why

  • Need to to handle big grids, lots of particles.
  • Need to fixed precision issues in HOP.

How

Divide up the workload so that a serial HOP process can work on a subregion.

Dividing the Workload

Here's a first cut at an algorithm to divide up HOP's workload:

  1. Create a pseudoparticle at the center of each grid.
  2. Weight the particle by the number of dark matter particles.
  3. Run HOP on the pseudoparticles, to identify clustered grids.
  4. For each grid cluster:
    1. Run HOP only on the particles within the clustered grids.
  5. Check for possible overlapping clusters.

Game Plan

  1. Modify vanilla HOP to use arbitrary precision floating point numbers.
  2. Test grid clustering.
  3. Write enzoHOP as an class that can be called during runtime, or wrapped in a main function.