BaryonForge.utils.concentration module

class BaryonForge.utils.concentration.BaseGenericConcentration(self, *, mass_def)[source]

Bases: Concentration

Generic concentration re-mapper between halo mass definitions.

This base class converts a concentration–mass relation defined for an input mass definition (mdef_in) to a target mass definition (mass_def), preserving the scale radius \(r_s\). Subclasses should set the class attributes cmodel (a concentration model factory) and mdef_in (the input pyccl.halos.massdef.HaloMassDef), then initialize this class with the desired target mass_def.

Parameters:

mass_def (pyccl.halos.massdef.HaloMassDef) – Target halo mass definition for which concentrations will be returned (e.g., MassDef200m(), MassDef200c(), MassDefVir(), etc.).

cmodel

A factory for a concentration model that accepts mass_def= and returns a callable c(M, a). It will be invoked as cmodel(mass_def=self.mdef_in)(cosmo, M, a).

Type:

callable

mdef_in

Input mass definition on which the underlying concentration–mass model is calibrated.

Type:

pyccl.halos.massdef.HaloMassDef

M_in_lo

Lower bound of the internal sampling range for mass translation (default: 1e10).

Type:

float, optional

M_in_hi

Upper bound of the internal sampling range for mass translation (default: 1e16).

Type:

float, optional

M_in_N

Number of logarithmically spaced samples between M_in_lo and M_in_hi used to construct the translation grid (default: 100).

Type:

int, optional

Call Signature
--------------
__call__(cosmo, M, a)

Remap the concentration–mass relation to the target mass_def and evaluate it at the requested masses M.

Parameters:
  • cosmo (pyccl.Cosmology) – Cosmology object used by pyCCL.

  • M (array_like) – Halo masses in the target mass definition mass_def. Must be broadcastable to a 1D array. Units must be consistent with your pyCCL configuration (typically \(M_\odot/h\)).

  • a (float) – Scale factor \(a = 1/(1+z)\).

Returns:

c_use – Concentrations evaluated at M for the target mass definition mass_def; same shape as M.

Return type:

numpy.ndarray

Notes

The algorithm computes the cdelta-Mdelta relation for the input mass definition. Then we convert Mdelta to the target mass Mout with the right mass definition. We can then take the scale radius rs computed from the input mass definition and use it with the radius Rout of the output mass definition, to get concentration cout.

Examples

Define a subclass that remaps a calibrated model from 200c to 200m:

>>> from pyccl.halos import massdef
>>> class MyDuffyRemapper(BaseGenericConcentration):
...     cmodel  = Duffy08Concentration   # factory taking mass_def=...
...     mdef_in = massdef.MassDef200c()
...
>>> cm = MyDuffyRemapper(mass_def=massdef.MassDef200m())
>>> c = cm(cosmo, M=[1e12, 1e13], a=1.0)
cmodel = None
mdef_in = None
M_in_lo = 10000000000.0
M_in_hi = 1e+16
M_in_N = 100
name = 'BaseGeneric'
class BaryonForge.utils.concentration.GenericConcentrationDuffy08(self, *, mass_def)[source]

Bases: BaseGenericConcentration

cmodel

alias of ConcentrationDuffy08

mdef_in()

\(\Delta = 200c\) mass definition.

Parameters:

c_m (str) – concentration-mass relation (deprecated).

class BaryonForge.utils.concentration.GenericConcentrationKlypin11(self, *, mass_def)[source]

Bases: BaseGenericConcentration

cmodel

alias of ConcentrationKlypin11

mdef_in()

\(\Delta = \rm vir\) mass definition.

Parameters:

c_m (str) – concentration-mass relation (deprecated).

class BaryonForge.utils.concentration.GenericConcentrationPrada12(self, *, mass_def)[source]

Bases: BaseGenericConcentration

cmodel

alias of ConcentrationPrada12

mdef_in()

\(\Delta = 200c\) mass definition.

Parameters:

c_m (str) – concentration-mass relation (deprecated).

class BaryonForge.utils.concentration.GenericConcentrationDiemer15(self, *, mass_def)[source]

Bases: BaseGenericConcentration

cmodel

alias of ConcentrationDiemer15

mdef_in()

\(\Delta = 200c\) mass definition.

Parameters:

c_m (str) – concentration-mass relation (deprecated).

class BaryonForge.utils.concentration.GenericConcentrationIshiyama21(self, *, mass_def)[source]

Bases: BaseGenericConcentration

cmodel

alias of ConcentrationIshiyama21

mdef_in()

\(\Delta = 200c\) mass definition.

Parameters:

c_m (str) – concentration-mass relation (deprecated).

class BaryonForge.utils.concentration.GenericConcentrationBhattacharya13(self, *, mass_def)[source]

Bases: BaseGenericConcentration

cmodel

alias of ConcentrationBhattacharya13

mdef_in()

\(\Delta = \rm vir\) mass definition.

Parameters:

c_m (str) – concentration-mass relation (deprecated).