This package written by Daniel Eisenstein and Piet Hut performs the identification of groups in N-Body simulations. This package includes two codes: HOP which performs the group identification and REGROUP which merges or separates groups.
Using HOP is a two-steps procedure:
First, HOP performs the group identification by assigning a density and a ’densest neighbour’ to each particle. This densest neighbour is found by finding the densest particle among Nhop neighbours. This process is repeated iteratively until a particle is its own densest neighbour (’hopping’). A set of particles which share the same densest neighbour defines a group.
Second, REGROUP merges groups and produces haloes’ catalogs. This merging process is controlled by 3 density thresholds, douter, dsaddle, dpeak. The first one sets the minimum density required for a particle to be counted as part of a halo. Then two groups are merged if the density of their ’boundary pair’ of particles (HOP equivalent to a saddle point) is above dsaddle: this second threshold prevents from the detection as a single object of two haloes linked by a ’bridge’ of particles. Then a last density threshold, dpeak, sets the minimum peak density which should be achieved within the group in order to be counted as a ’halo’. One usually sets, douter=80 (in units of the average density), dsaddle=2.5 douter and dpeak=3 douter.
Articles & Documentation
Versions and Where to find it ?
The original version can be found on the HOP website
A hacked version for GADGET file format
A hacked version for RAMSES file format
Straightforward via a Makefile. Does not require any specific librairy.
Written in C.
Again, running HOP is a two steps procedure. Hop takes most of the time while Regroup is very fast. Overall the user should essentially provide 4 parameters : the number of particles top be parsed for the neighbour finding procedure and the three density thresholds. These parameters are transmitted via execution flags.
WARNING: parameters should be given in ’simulation’ units.
Using Hop requires to modify the hop_input.c routine which reads the snapshot to be analyzed. Such modifications has already been performed for GADGET and RAMSES file format (see the Versions section). Basically, it involves reading the particles’ positions and masses. Multi-mass analysis is possible but requires a specific compilation flag. The two most important parameters are Nhop, which defines the number of neighbours to be parsed for the ’hopping’ procedure and the box periodicity.
Hop outputs the three files required by the regroupping procedure.
Regroup takes as inputs the files produced by HOP. The three density thresholds should also be given. Regroup produces three files:
a list of haloe’s mass (ascii file)
a list giving the final halo index for each group detected by hop (ascii file)
a list which specify the halo index of each particle (Binary file).
The latter file is especially relevant to compute merger trees.