yt.analysis_modules.halo_finding.halo_objects.HOPHaloFinder

class yt.analysis_modules.halo_finding.halo_objects.HOPHaloFinder(ds, subvolume=None, threshold=160, dm_only=True, padding=0.02, total_mass=None)[source]

HOP halo finder.

Halos are built by: 1. Calculating a density for each particle based on a smoothing kernel. 2. Recursively linking particles to other particles from lower density particles to higher. 3. Geometrically proximate chains are identified and 4. merged into final halos following merging rules.

Lower thresholds generally produce more halos, and the largest halos become larger. Also, halos become more filamentary and over-connected.

Eisenstein and Hut. “HOP: A New Group-Finding Algorithm for N-Body Simulations.” ApJ (1998) vol. 498 pp. 137-142

Parameters:

ds : Dataset

The dataset on which halo finding will be conducted.

subvolume : yt.data_objects.data_containers.YTSelectionContainer, optional

A region over which HOP will be run, which can be used to run HOP on a subvolume of the full volume. Default = None, which defaults to the full volume automatically.

threshold : float

The density threshold used when building halos. Default = 160.0.

dm_only : bool

If True, only dark matter particles are used when building halos. Default = True.

padding : float

When run in parallel, the finder needs to surround each subvolume with duplicated particles for halo finidng to work. This number must be no smaller than the radius of the largest halo in the box in code units. Default = 0.02.

total_mass : float

If HOP is run on the same dataset mulitple times, the total mass of particles in Msun units in the full volume can be supplied here to save time. This must correspond to the particles being operated on, meaning if stars are included in the halo finding, they must be included in this mass as well, and visa-versa. If halo finding on a subvolume, this still corresponds with the mass in the entire volume. Default = None, which means the total mass is automatically calculated.

Examples

>>> ds = load("RedshiftOutput0000")
>>> halos = HaloFinder(ds)

Attributes

Methods