Spherical overdensity masses¶

This module implements basic aspects of spherical overdensity mass definitions for dark matter halos (please see Halo Mass Definitions for an introduction).

Basics¶

For example, we can compute the spherical overdensity radius of a halo with particular mass or vice versa:

from colossus.halo import mass_so

R200m = mass_so.M_to_R(1E12, 0.0, '200m')
Mvir = mass_so.R_to_M(400.0, 1.5, 'vir')


The other functions in this module allow us to parse the mass definition strings and compute the density thresholds, but typically the user will not need to evaluate those functions manually since most SO-related functions in Colossus accept mdef as an argument. Please see the Tutorials for more extensive code examples.

Module contents¶

 parseMassDefinition(mdef) The type and overdensity of a given spherical overdensity mass definition. parseRadiusMassDefinition(rmdef) Parse a radius or mass identifier as well as the mass definition. densityThreshold(z, mdef) The threshold density for a given spherical overdensity mass definition. deltaVir(z) The virial overdensity in units of the critical density. M_to_R(M, z, mdef) Convert spherical overdensity mass to radius. R_to_M(R, z, mdef) Convert spherical overdensity radius to mass. dynamicalTime(z, mdef[, definition]) The dynamical time of a halo.

Module reference¶

halo.mass_so.parseMassDefinition(mdef)

The type and overdensity of a given spherical overdensity mass definition.

Parameters: mdef: str The mass definition. See Halo Mass Definitions for details. mdef_type: str Can either be based on the mean density (mdef_type='m'), the critical density (mdef_type='c') or the virial overdensity (mdef_type='vir'). mdef_delta: int The overdensity; if mdef_type=='vir', the overdensity depends on redshift, and this parameter is None.
halo.mass_so.parseRadiusMassDefinition(rmdef)

Parse a radius or mass identifier as well as the mass definition.

Parameters: rmdef: str The radius or mass identifier radius_mass: str Can be R for radius or M for mass. mdef: str The mdef the mass or radius are based on. See Halo Mass Definitions for details. mdef_type: str Can either be based on the mean density (mdef_type='m'), the critical density (mdef_type='c') or the virial overdensity (mdef_type=='vir'). mdef_delta: int The overdensity; if mdef_type=='vir', the overdensity depends on redshift, and this parameter is None.
halo.mass_so.densityThreshold(z, mdef)

The threshold density for a given spherical overdensity mass definition.

Parameters: z: array_like Redshift; can be a number or a numpy array. mdef: str The mass definition. See Halo Mass Definitions for details. rho: array_like The threshold density in physical $$M_{\odot}h^2/{\rm kpc}^3$$; has the same dimensions as z.

deltaVir
The virial overdensity in units of the critical density.
halo.mass_so.deltaVir(z)

The virial overdensity in units of the critical density.

This function uses the fitting formula of Bryan & Norman 1998 to determine the virial overdensity. While the universe is dominated by matter, this overdensity is about 178. Once dark energy starts to matter, it decreases.

Parameters: z: array_like Redshift; can be a number or a numpy array. Delta: array_like The virial overdensity; has the same dimensions as z.

densityThreshold
The threshold density for a given mass definition.
halo.mass_so.M_to_R(M, z, mdef)

Convert spherical overdensity mass to radius.

This function returns a spherical overdensity halo radius for a halo mass M. Note that this function is independent of the form of the density profile.

Parameters: M: array_like Mass in $$M_{\odot}/h$$; can be a number or a numpy array. z: float Redshift mdef: str The mass definition. See Halo Mass Definitions for details. R: array_like Halo radius in physical kpc/h; has the same dimensions as M.

R_to_M
Convert spherical overdensity radius to mass.
halo.mass_so.R_to_M(R, z, mdef)

Convert spherical overdensity radius to mass.

This function returns a spherical overdensity halo mass for a halo radius R. Note that this function is independent of the form of the density profile.

Parameters: R: array_like Halo radius in physical kpc/h; can be a number or a numpy array. z: float Redshift mdef: str The mass definition. See Halo Mass Definitions for details. M: array_like Mass in $$M_{\odot}/h$$; has the same dimensions as R.

M_to_R
Convert spherical overdensity mass to radius.
halo.mass_so.dynamicalTime(z, mdef, definition='crossing')

The dynamical time of a halo.

The dynamical time can be estimated in multiple ways, but is almost always based on the ratio of a distance to circular velocity. The relevant distance can be defined in different ways as indicated with the definition parameter. The dynamical time is more succinctly expressed as a multiple of the Hubble time which depends on the overdensity threshold and redshift.

Parameters: z: array_like Redshift; can be a number or a numpy array. mdef: str The mass definition. See Halo Mass Definitions for details. definition: str An identifier for a definition of the dynamical time. Valid definitions are crossing (the crossing time), peri (the time to reach the halo center, half the crossing time) and orbit (the time to orbit around the halo, crossing time times $$\pi$$). t_dyn: array_like Dynamical time in Gyr; has the same dimensions as z.