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:
- Create a pseudoparticle at the center of each grid.
- Weight the particle by the number of dark matter particles.
- Run HOP on the pseudoparticles, to identify clustered grids.
- For each grid cluster:
- Run HOP only on the particles within the clustered grids.
- Check for possible overlapping clusters.
Game Plan
- Modify vanilla HOP to use arbitrary precision floating point numbers.
- Test grid clustering.
- Write enzoHOP as an class that can be called during runtime, or wrapped in a main function.
