halomod.profiles

Module defining halo density profile.

The halo density profile is used to describe the density distribution of dark matter or a specific type of tracer within a dark matter halo. It is usually descirbed as a function

rho(r|rho_s,r_s) = rho_s f(x=r/r_s)

Here rho_s is the amplitude of the density, r_s = r_vir/c is related to the concentration and the virial radius of the halo.

The profile used in power spectrum calculation is usually the Fourier Transformed one, which is usually a function of u(K=kr_s).

Profile models are defined as Component instances – that is, they are flexible models that the user can subclass and use in the halo model framework. See Profile for instructions on how to use Profile models. The following notes will mostly describe how to use various models provided in the literature.

All models are specified in terms of the f(x), and analytically transformed to Fourier space, if an analytical formulae can be obtained.

As with all Component subclasses, arbitrary user-specified variables can be received by defining them in the _defaults class-level dictionary.

The module also defines a ProfileInf, which does not truncate the dark matter halo at x=c. Mathematically, it does not require a concentration-mass relation as an input. Here, an arbitary CMRelation should be plugged in, and results will remain the same.

Examples

Use NFW profile in a halo model:

>>> from halomod import HaloModel
>>> hm = HaloModel(halo_profile_model="NFW")

You can also specify a different profile for tracer if you’re working with TracerHaloModel:

>>> from halomod import HaloModel
>>> hm = HaloModel(halo_profile_model="NFW",tracer_profile_model="CoredNFW")

Notice that tracer density profile density should be used only in inverse volume or dimensionless unit.

Functions

ginc(a, x)

gamma(a)*gammainc(a,x)

Classes

Constant(cm_relation[, mdef, z, cosmo, Om0, …])

A constant density profile rho=rho_s.

CoredNFW(cm_relation[, mdef, z, cosmo, Om0, …])

Cored NFW profile.

Einasto(*args, **kwargs)

An Einasto halo profile.

GeneralizedNFW(cm_relation[, mdef, z, …])

Generalized NFW profile.

GeneralizedNFWInf(cm_relation[, mdef, z, …])

The same with generalized NFW, but not truncated at x=c.

Hernquist(cm_relation[, mdef, z, cosmo, …])

Halo Density Profile of Hernquist(1990).

HernquistInf(cm_relation[, mdef, z, cosmo, …])

The same as Hernquist profile, but not truncated at x=c.

Moore(cm_relation[, mdef, z, cosmo, Om0, …])

Halo Density Profile of Moore(1998).

MooreInf(cm_relation[, mdef, z, cosmo, Om0, …])

The same with Moore, but not truncated at x=c.

NFW(cm_relation[, mdef, z, cosmo, Om0, …])

Canonical Density Profile of Navarro, Frenk & White(1997).

NFWInf(cm_relation[, mdef, z, cosmo, Om0, …])

The same as NFW profile, but not truncated at x=c.

PowerLawWithExpCut(cm_relation[, mdef, z, …])

A simple power law with exponential cut-off.

Profile(cm_relation[, mdef, z, cosmo, Om0, …])

Halo radial density profiles.

ProfileInf(cm_relation[, mdef, z, cosmo, …])

An extended halo_profile (not truncated at x=c)