Source code for halotools.empirical_models.phase_space_models.analytic_models.centrals.trivial_phase_space

"""
This module contains the `~halotools.empirical_models.TrivialPhaseSpace` class
used to place central galaxies at the center of, and at rest with respect to, their host halo.
"""
from __future__ import division, print_function, absolute_import

import numpy as np

from .... import model_defaults

from .....sim_manager import sim_defaults


__author__ = ["Andrew Hearin"]
__all__ = ["TrivialPhaseSpace"]


[docs] class TrivialPhaseSpace(object): r""" Profile of central galaxies residing at the exact center of their host halo with the exact same velocity as the halo velocity. :math:`P(\vec{x}_{\rm cen}, \vec{v}_{\rm cen}) = \delta^{(6)}(\vec{x}_{\rm halo}, \vec{v}_{\rm halo})`. """ def __init__( self, cosmology=sim_defaults.default_cosmology, redshift=sim_defaults.default_redshift, mdef=model_defaults.halo_mass_definition, halo_boundary_key=None, **kwargs ): """ Parameters ---------- cosmology : object, optional Astropy cosmology object. Default is set in `~halotools.sim_manager.sim_defaults`. redshift : float, optional Default is set in `~halotools.sim_manager.sim_defaults`. mdef: str String specifying the halo mass definition, e.g., 'vir' or '200m'. Default is set in `~halotools.empirical_models.model_defaults`. """ self._mock_generation_calling_sequence = ["assign_phase_space"] self._galprop_dtypes_to_allocate = np.dtype( [ ("x", "f8"), ("y", "f8"), ("z", "f8"), ("vx", "f8"), ("vy", "f8"), ("vz", "f8"), ] ) self.param_dict = {} self.cosmology = cosmology self.redshift = redshift self.mdef = mdef if halo_boundary_key is None: self.halo_boundary_key = model_defaults.get_halo_boundary_key(self.mdef) else: self.halo_boundary_key = halo_boundary_key
[docs] def assign_phase_space(self, table, **kwargs): r""" """ phase_space_keys = ["x", "y", "z", "vx", "vy", "vz"] for key in phase_space_keys: table[key][:] = table["halo_" + key][:]