Advanced mass definition functions
This module represents a collection of advanced utilities related to halo mass definitions.
Changing mass definitions assuming a concentration
The changeMassDefinition()
function needs to be given the concentration of
a halo. For convenience, the following function uses a concentration model to estimate the
concentration:
from colossus.halo import mass_adv
Mvir = 1E12
z = 1.0
M200m, R200m, c200m = mass_adv.changeMassDefinitionCModel(Mvir, z, 'vir', '200m')
By default, the function uses the default concentration model (see the Concentration
module), but the user can choose a different model. This function is not included in the
mass_defs
module in order to avoid circular dependencies.
Alternative mass definitions
More et al. 2015 suggested two alternative mass definitions, namely the splashback radius and the mass within four scale radii. For the former, please see the Splashback radius module. This module implements \(M_{<4r_s}\), the mass within four scale radii:
Mvir = 1E12
cvir = 8.0
z = 1.0
M_inner = mass_adv.M4rs(Mvir, z, 'vir', c = cvir)
This mass definition quantifies the mass in the inner part of the halo. During the fast accretion regime, this mass definition tracks \(M_{vir}\), but when the halo stops accreting it approaches a constant. The function uses an NFW profile to compute the inner mass.
Module contents
|
Change the spherical overdensity mass definition. |
|
Convert a spherical overdensity mass to \(M_{<4rs}\). |
Module reference
- halo.mass_adv.changeMassDefinitionCModel(M, z, mdef_in, mdef_out, profile='nfw', c_model='diemer19')
Change the spherical overdensity mass definition.
This function is a wrapper for the
changeMassDefinition()
function. Instead of forcing the user to provide concentrations, they are computed from a model indicated by thec_model
parameter.- Parameters
- M_i: array_like
The initial halo mass in \(M_{\odot}/h\); can be a number or a numpy array.
- z_i: float
The initial redshift.
- mdef_i: str
The initial mass definition.
- mdef_f: str
The final mass definition (can be the same as
mdef_i
, or different).- profile: str
The functional form of the profile assumed in the computation; can be
nfw
ordk14
.- c_model: str
The identifier of a concentration model (see
halo.concentration
for valid inputs).
- Returns
- Mnew: array_like
The new halo mass in \(M_{\odot}/h\); has the same dimensions as
M
.- Rnew: array_like
The new halo radius in physical kpc/h; has the same dimensions as
M
.- cnew: array_like
The new concentration (now referring to the new mass definition); has the same dimensions as
M
.
See also
halo.mass_defs.pseudoEvolve
Evolve the spherical overdensity radius for a fixed profile.
halo.mass_defs.changeMassDefinition
Change the spherical overdensity mass definition.
- halo.mass_adv.M4rs(M, z, mdef, c=None)
Convert a spherical overdensity mass to \(M_{<4rs}\).
Evaluates the mass within four scale radii, assuming an NFW profile. See More et al. 2015 for the rationale behind this definition.
- Parameters
- M: array_like
Spherical overdensity halo mass in \(M_{\odot} / h\); can be a number or a numpy array.
- z: float
Redshift
- mdef: str
The spherical overdensity mass definition in which
M
(and optionallyc
) are given. See Halo Mass Definitions for details.- c: array_like
Concentration. If this parameter is not passed, concentration is automatically computed. Must have the same dimensions as
M
.
- Returns
- M4rs: array_like
The mass within 4 scale radii, \(M_{<4rs}\), in \(M_{\odot} / h\); has the same dimensions as
M
.