Einasto

class dysmalpy.models.Einasto(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), Einasto_param='None', alphaEinasto=None, nEinasto=None, **kwargs)[source]

Bases: DarkMatterHalo

Dark matter halo following an Einasto profile

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

  • conc (float) – Concentration parameter

  • nEinasto (float) – Inverse of the power law logarithmic slope

  • alphaEinasto (float) – Power law logarithmic slope

  • 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.

  • Einasto_param ({'None', 'nEinasto', 'alphaEinasto'}) – Which parameter to leave as the free parameter. If ‘None’, the model determines which parameter to use based on if nEinasto or alphaEinasto is None. Default is ‘None’

Notes

Model formula following Retana-Montenegro et al (2012) [1]:

\[\rho = \rho_0 \exp\left\{-\left(\frac{r}{h}\right)^{1/n}\right\}\]

where \(h=r_s/(2n)^n\) is the scale length and \(r_s\) is the scale radius defined as \(r_\mathrm{vir}/c\).

In this model only nEinasto or alphaEinasto can be free since \(n=1/\alpha\).

References

Attributes Summary

alphaEinasto

conc

fdm

mvirial

nEinasto

param_names

Names of the parameters that describe models of this type.

Methods Summary

calc_alphaEinasto_from_fdm(baryons, r_fdm)

Calculate alpha given dark matter fraction and baryonic distribution

calc_nEinasto_from_fdm(baryons, r_fdm)

Calculate n given the dark matter fraction and baryonic distribution

calc_rho0([rvirial])

Density at the scale length

enclosed_mass(r)

Enclosed mass as a function of radius

evaluate(r, mvirial, conc, alphaEinasto, ...)

Mass density as a function of radius

tie_alphaEinasto(model_set)

Function to tie alpha to n

tie_nEinasto(model_set)

Function to tie n to alpha

Attributes Documentation

alphaEinasto = DysmalParameter('alphaEinasto', value=-99.0, fixed=True, prior=<dysmalpy.parameters.UniformPrior object>)
conc = DysmalParameter('conc', value=5.0, bounds=(2, 20), 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>)
nEinasto = DysmalParameter('nEinasto', value=1.0, prior=<dysmalpy.parameters.UniformPrior object>)
param_names = ('mvirial', 'fdm', 'conc', 'nEinasto', 'alphaEinasto')

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.

Methods Documentation

calc_alphaEinasto_from_fdm(baryons, r_fdm)[source]

Calculate alpha given dark matter fraction and baryonic distribution

Parameters:
  • baryons (MassModel or dictionary) – Model component representing the baryons (assumed to be light emitting), or dictionary containing a list of the baryon components (baryons[‘components’]) and a list of whether the baryon components are light emitting or not (baryons[‘light’])

  • r_fdm (float) – Radius at which the dark matter fraction is determined

Returns:

alphaEinasto – Power law logarithmic slope

Return type:

float

Notes

This uses the current values of fdm, and mvirial together with the input baryon distribution to calculate the necessary value of alphaEinasto.

calc_nEinasto_from_fdm(baryons, r_fdm)[source]

Calculate n given the dark matter fraction and baryonic distribution

Parameters:
  • baryons (MassModel or dictionary) – Model component representing the baryons (assumed to be light emitting), or dictionary containing a list of the baryon components (baryons[‘components’]) and a list of whether the baryon components are light emitting or not (baryons[‘light’])

  • r_fdm (float) – Radius at which the dark matter fraction is determined

Returns:

alphaEinasto – Power law logarithmic slope

Return type:

float

Notes

This uses the current values of fdm, and mvirial together with the input baryon distribution to calculate the necessary value of nEinasto.

calc_rho0(rvirial=None)[source]

Density at the scale length

Returns:

rho0 – Mass density at the scale radius in \(M_{\odot}/\rm{kpc}^3\)

Return type:

float

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, conc, alphaEinasto, nEinasto, fdm)[source]

Mass density as a function of radius

tie_alphaEinasto(model_set)[source]

Function to tie alpha to n

Parameters:

model_set (ModelSet) – ModelSet the component is a part of and will be used in the fitting

Returns:

alphaEinastoalphaEinastro given the current value of nEinasto

Return type:

float

tie_nEinasto(model_set)[source]

Function to tie n to alpha

Parameters:

model_set (ModelSet) – ModelSet the component is a part of and will be used in the fitting

Returns:

nEinastonEinastro given the current value of alphaEinasto

Return type:

float