DekelZhao

class dysmalpy.models.DekelZhao(z=0, cosmo=FlatLambdaCDM(H0=70.0 km / (Mpc s), Om0=0.3, Tcmb0=0.0 K, Neff=3.04, m_nu=None, Ob0=None), **kwargs)[source]

Bases: DarkMatterHalo

Dekel-Zhao halo profile (Dekel et al. 2017, Freundlich et al. 2020)

Parameters:
  • mvirial (float) – Virial mass in logarithmic solar units

  • s1 (float) – Inner logarithmic slope (at resolution r1=0.01*Rvir)

  • c2 (float) – Concentration parameter (defined relative to c, a)

  • fdm (float) – Dark matter fraction

  • z (float) – Redshift

  • cosmo (cosmology object) – The cosmology to use for modelling. If this model component will be attached to a Galaxy make sure the respective cosmologies are the same. Default is FlatLambdaCDM with H0=70., and Om0=0.3.

Notes

The formula for this implementation are given in Freundlich et al. 2020. [1] Specifically, we use the forms where b=2, gbar=3 (see Eqns 4, 5, 14, 15)

References

Attributes Summary

c2

fdm

mvirial

param_names

Names of the parameters that describe models of this type.

s1

Methods Summary

calc_a_c()

Calculate a, c from s1, c2 for the Dekel-Zhao halo.

calc_mu([a, c])

Subfunction for describing DZ profile

calc_rho0([rvirial, a, c])

Normalization of the density distribution, rho_c

calc_rhovirbar([rvirial])

Average density in the virial radius, in \(M_{\odot}/\rm{kpc}^3\)

enclosed_mass(r)

Enclosed mass as a function of radius

evaluate(r, mvirial, s1, c2, fdm)

Mass density for the DekelZhao halo profile

Attributes Documentation

c2 = DysmalParameter('c2', value=25.0, bounds=(0.0, 40.0), prior=<dysmalpy.parameters.UniformPrior object>)
fdm = DysmalParameter('fdm', value=-99.9, fixed=True, bounds=(0, 1), prior=<dysmalpy.parameters.UniformPrior object>)
mvirial = DysmalParameter('mvirial', value=1.0, bounds=(5, 20), prior=<dysmalpy.parameters.UniformPrior object>)
param_names = ('mvirial', 'fdm', 's1', 'c2')

Names of the parameters that describe models of this type.

The parameters in this tuple are in the same order they should be passed in when initializing a model of a specific type. Some types of models, such as polynomial models, have a different number of parameters depending on some other property of the model, such as the degree.

When defining a custom model class the value of this attribute is automatically set by the Parameter attributes defined in the class body.

s1 = DysmalParameter('s1', value=1.5, bounds=(0.0, 2.0), prior=<dysmalpy.parameters.UniformPrior object>)

Methods Documentation

calc_a_c()[source]

Calculate a, c from s1, c2 for the Dekel-Zhao halo.

Returns:

a, c

Return type:

inner asymptotic slope, concentration parameter for DZ halo

calc_mu(a=None, c=None)[source]

Subfunction for describing DZ profile

calc_rho0(rvirial=None, a=None, c=None)[source]

Normalization of the density distribution, rho_c

Returns:

rhoc – Mass density normalization in \(M_{\odot}/\rm{kpc}^3\)

Return type:

float

calc_rhovirbar(rvirial=None)[source]

Average density in the virial radius, in \(M_{\odot}/\rm{kpc}^3\)

enclosed_mass(r)[source]

Enclosed mass as a function of radius

Parameters:

r (float or array) – Radius or radii in kpc

Returns:

menc – Enclosed mass in solar units

Return type:

float or array

evaluate(r, mvirial, s1, c2, fdm)[source]

Mass density for the DekelZhao halo profile