picasso.polytrop: Polytropic gas model

picasso.polytrop: Polytropic gas model#

The polytropic gas model is written as:

\[\rho(\phi) = \rho_0 \theta^{\Gamma(r) / (\Gamma(r) - 1)}(\phi), \\[10pt] P(\phi) = P_0 \theta^{1 / (\Gamma(r) - 1)}(\phi), \]

where \(\phi\) is the halo’s gravitational potential, and

\[\theta(\phi) = 1 - \theta_0 (\phi - \phi_0). \]

The gas polytropic index, \(\Gamma\), is allowed to vary with radius as:

\[\Gamma(r) = \begin{cases} \begin{aligned} & \; 1 + (\Gamma_0 - 1) \frac{1}{1 + e^{-x}} & c_\Gamma \geqslant 0; \\ & \; \Gamma_0 + (\Gamma_0 - 1) \left(1 - \frac{1}{1 + e^{x}}\right) & c_\Gamma < 0, \\ \end{aligned} \end{cases} \]

with \(x \equiv r / (c_\gamma R_{500c})\). The model has five parameters: \((\rho_0, P_0)\) are the central value of gas density and pressure, \(\Gamma_0\) is the asymptotic value of the polytropic index as \(r \rightarrow \infty\), \(c_\gamma\) is the polytropic concentration (\(c_\gamma = 0\) implies \(\Gamma(r) = \Gamma_0\)), and \(\theta_0\) is a shape parameter. In the Ostriker model,

\[\theta_0 = \frac{\Gamma - 1}{\Gamma} \times \frac{\rho_0}{P_0} \]

We further write the fraction of non-thermal pressure as a power-law of radius, plus a constant plateau:

\[f_{\rm nt}(r) = a_{\rm nt} + (b_{\rm nt} - a_{\rm nt}) \left(\frac{r}{2r_{500c}}\right)^{c_{\rm nt}} \]

This adds three parameters to our gas model: \(a_{\rm nt}\) is the central value of non-thermal pressure fraction, \(b_{\rm nt}\) is the non-thermal pressure fraction at \(r=2r_{500c}\), and \(c_{\rm nt}\) is the power law evolution with radius.

rho_P_g(phi, r_norm, rho_0, P_0, Gamma_0, ...)

Polytropic gas density and pressure (total pressure, therm.

rho_g(phi, r_norm, rho_0, Gamma_0, c_Gamma, ...)

Polytropic gas density.

P_g(phi, r_norm, P_0, Gamma_0, c_Gamma, theta_0)

Polytropic gas pressure (total pressure, therm.

theta(phi, theta_0)

Re-parametrized polytropic variable.

Gamma_r(r_norm, Gamma_0, c_Gamma)

Compute the radius-dependent polytropic index Gamma(r)

picasso.polytrop.rho_P_g(phi, r_norm, rho_0, P_0, Gamma_0, c_Gamma, theta_0)[source]#

Polytropic gas density and pressure (total pressure, therm. + kin.).

Parameters:
  • phi (Array) – Normalized isolated gravitational potential (see Notes)

  • r_norm (Array) – Normalized radii to be used for the polytropic model.

  • rho_0 (Array) – Central gas density

  • P_0 (Array) – Central gas pressure (total pressure, therm. + kin.)

  • Gamma_0 (Array) – Central value of the polytropic index

  • c_Gamma (Array) – Polytropic concentration value

  • theta_0 (Array) – Potential prefactor (see Notes)

Return type:

Tuple[Array, Array]

Returns:

  • Array – Gas density for each phi

  • Array – Gas pressure (total pressure, therm. + kin.) for each phi

Notes

  • The potential \(\phi\) is to be normalized to be zero at the bottom of the well, and positive everywhere else. This definition makes it equivalent to \((\phi - \phi_0)\) in the Ostriker model.

  • A fixed value of the polytropic index (e.g. 1.2) can be achieved with Gamma = Gamma_r(r, 1.2, 0)

picasso.polytrop.rho_g(phi, r_norm, rho_0, Gamma_0, c_Gamma, theta_0)[source]#

Polytropic gas density.

Parameters:
  • phi (Array) – Normalized isolated gravitational potential (see Notes)

  • r_norm (Array) – Normalized radii to be used for the polytropic model.

  • rho_0 (Array) – Central gas density

  • Gamma_0 (Array) – Central value of the polytropic index

  • c_Gamma (Array) – Polytropic concentration value

  • theta_0 (Array) – Potential prefactor (see Notes)

Returns:

Gas density for each phi

Return type:

Array

Notes

  • The potential \(\phi\) is to be normalized to be zero at the bottom of the well, and positive everywhere else. This definition makes it equivalent to \((\phi - \phi_0)\) in the Ostriker model.

  • A fixed value of the polytropic index (e.g. 1.2) can be achieved with Gamma = Gamma_r(r, 1.2, 0)

picasso.polytrop.P_g(phi, r_norm, P_0, Gamma_0, c_Gamma, theta_0)[source]#

Polytropic gas pressure (total pressure, therm. + kin.).

Parameters:
  • phi (Array) – Normalized isolated gravitational potential (see Notes)

  • r_norm (Array) – Normalized radii to be used for the polytropic model.

  • P_0 (Array) – Central gas pressure (total pressure, therm. + kin.)

  • Gamma_0 (Array) – Central value of the polytropic index

  • c_Gamma (Array) – Polytropic concentration value

  • theta_0 (Array) – Potential prefactor (see Notes)

Returns:

Gas pressure (total pressure, therm. + kin.) for each phi

Return type:

Array

Notes

  • The potential \(\phi\) is to be normalized to be zero at the bottom of the well, and positive everywhere else. This definition makes it equivalent to \((\phi - \phi_0)\) in the Ostriker model.

  • A fixed value of the polytropic index (e.g. 1.2) can be achieved with Gamma = Gamma_r(r, 1.2, 0)

picasso.polytrop.theta(phi, theta_0)[source]#

Re-parametrized polytropic variable.

Parameters:
  • phi (Array) – Normalized isolated gravitational potential (see Notes)

  • theta_0 (Array) – Potential prefactor (see Notes)

Returns:

Polytropic variable for each phi

Return type:

Array

Notes

  • The potential \(\phi\) is to be normalized to be zero at the bottom of the well, and positive everywhere else. This definition makes it equivalent to \((\phi - \phi_0)\) in the Ostriker model.

picasso.polytrop.Gamma_r(r_norm, Gamma_0, c_Gamma)[source]#

Compute the radius-dependent polytropic index Gamma(r)

Parameters:
  • r_norm (Array) – Normalized radii

  • Gamma_0 (Array) – Asymptotic outer value of the polytropic index

  • c_Gamma (Array) – Polytropic concentration value

Returns:

Gamma values at specified radii

Return type:

Array

Notes

  • A fixed value of the polytropic index (e.g. 1.2) can be achieved with Gamma = Gamma_r(r, 1.2, 0)