yt_astro_analysis.halo_analysis.halo_finding.halo_objects.FOFHaloFinder

class yt_astro_analysis.halo_analysis.halo_finding.halo_objects.FOFHaloFinder(ds, subvolume=None, link=0.2, dm_only=False, ptype='all', padding=0.02, save_particles=True)

Friends-of-friends halo finder.

Halos are found by linking together all pairs of particles closer than some distance from each other. Particles may have multiple links, and halos are found by recursively linking together all such pairs.

Larger linking lengths produce more halos, and the largest halos become larger. Also, halos become more filamentary and over-connected.

Davis et al. “The evolution of large-scale structure in a universe dominated by cold dark matter.” ApJ (1985) vol. 292 pp. 371-394

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.

  • link (float) – If positive, the interparticle distance (compared to the overall average) used to build the halos. If negative, this is taken to be the actual linking length, and no other calculations will be applied. Default = 0.2.

  • ptype (string) – The type of particle 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.

  • 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='fof',
...                  finder_kwargs={"link": 0.2})
>>> hc.create()

__init__(ds[, subvolume, link, dm_only, ...])

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