yt_astro_analysis.halo_analysis.halo_finding.halo_objects.HOPHaloFinder

class yt_astro_analysis.halo_analysis.halo_finding.halo_objects.HOPHaloFinder(ds, subvolume=None, threshold=160, dm_only=False, ptype='all', padding=0.02, total_mass=None, save_particles=True)

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.

  • ptype (string) – The particle type to be used for halo finding. Default: ‘all’.

  • 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.

  • save_particles (bool) – If True, output member particles for each halo. Default: True.

Examples

>>> import yt
>>> from yt.extensions.astro_analysis.halo_analysis import HaloCatalog
>>> data_ds = yt.load('Enzo_64/RD0006/RedshiftOutput0006')
>>> hc = HaloCatalog(data_ds=data_ds, finder_method='hop',
...                  finder_kwargs={"threshold": 160})
>>> hc.create()

__init__(ds[, subvolume, threshold, ...])

Run hop on data_source with a given density threshold.

get_dependencies(fields)

partition_index_2d(axis)

partition_index_3d(ds[, padding, rank_ratio])

partition_index_3d_bisection_list()

Returns an array that is used to drive _partition_index_3d_bisection, below.

partition_region_3d(left_edge, right_edge[, ...])

Given a region, it subdivides it into smaller regions for parallel analysis.

comm