Density profiles#

pianistpy.DoublePowerLaw

DoublePowerLaw(rho_alpha, rho_beta, rho_gamma) is the analytical double-power-law density profile \(\varrho(R) = C\,R^{-\gamma}\,(1 + R^{\alpha})^{(\gamma-\beta)/\alpha}\), with \(R\) the radius in units of the scale radius and \(C\) a normalization constant. The class takes three arguments:

  • rho_alpha, the sharpness \(\alpha\) of the transition between the inner and the outer slope, at least 1/2;

  • rho_beta, the outer slope \(\beta\), greater than 2 for the profile and at least 3 for a component;

  • rho_gamma, the inner slope \(\gamma\), with \(0 \leq \gamma < 2\), so that the central potential is finite.

In internal units (Units), the scale radius and the central potential of a DoublePowerLaw profile are 1. The NFW, Hernquist and Plummer profiles are parameter sets of DoublePowerLaw, not classes of their own:

pp.DoublePowerLaw.nfw()        # Navarro-Frenk-White
pp.DoublePowerLaw.hernquist()
pp.DoublePowerLaw.plummer()
pp.DoublePowerLaw(1.0, 3.0, 1.0)   # the NFW profile, given by (rho_alpha, rho_beta, rho_gamma)

The methods rho(r), mass(r) and p(r) of a DoublePowerLaw profile return the density, the enclosed mass and the relative potential in closed form.

A component (pianistpy.Component) of a model is a density profile together with a velocity anisotropy (Velocity anisotropy). The density profile of a component needs an outer slope \(\beta \geq 3\). In ver. 1.0.0, a component whose profile has \(2 < \beta < 3\) raises InputError, with a message that begins OUTER SLOPE.