hmfast.halos.profiles.GNFWPressureProfile

class hmfast.halos.profiles.GNFWPressureProfile(x_grid=None, P0=8.13, c500=1.156, alpha=1.062, beta=5.4807, gamma=0.3292, B=1.4, alpha_P=0.12, P0_hexp=-1.0, x_out=inf)[source]

Bases: PressureProfile

Electron pressure profile from Nagai, Kravtsov & Vikhlinin (2007).

The profile is evaluated as a function of the comoving radius \(r\), and its normalization and shape are defined using the native \(500c\) calibration mass and radius.

\[P_e(r, M, z) = P_{500c}\, P_0 \left(c_{500} x\right)^{-\gamma} \left[1 + \left(c_{500} x\right)^{\alpha}\right]^{(\gamma-\beta)/\alpha} \tag{1}\]

Here we define the dimensionless radius \(x \equiv \frac{r}{\tilde{r}_{500c}}\), where \(\tilde{r}_{500c}\) is the radius computed from the hydrostatically-biased mass \(\tilde{M}_{500c}\). The pressure normalization is written as:

\[P_{500c} = 1.65\; h_{70}^{2}\; E(z)^{8/3}\; \left(\frac{\tilde{M}_{500c}}{0.7\times 3\times 10^{14}\,M_{\odot}}\right)^{2/3 + \alpha_P}\; h_{70}^{P0\_hexp} \tag{2}\]

with \(E(z)=H(z)/H_0\). In this notation we introduce the shorthand \(h_{70} \equiv h / 0.7\).

The projected Fourier-space pressure profile is evaluated as

\[u_\ell(\ell, M, z) = \frac{4 \pi (1+z) r_\Delta}{\ell_\Delta^2} \int dx \, x^2 \, P_e(x, M, z) \, \frac{\sin\!\left[(\ell / \ell_\Delta) x\right]} {(\ell / \ell_\Delta) x} \tag{3}\]

where \(\ell_\Delta(M, z) = d_A(z) / r_\Delta(M, z)\) and \(\chi(z) = (1+z) d_A(z)\).

Attributes:
x_gridjnp.ndarray

Dimensionless radial grid \(x = r / r_\Delta\) used to tabulate the profile and define the Hankel transform, with \(r_\Delta\) expressed in the same units as \(r\).

P0float

Dimensionless gNFW normalization \(P_0\).

c500float

Concentration parameter \(c_{500}\) of the \(500c\) pressure profile.

alphafloat

Intermediate-slope parameter \(\alpha\) of the gNFW profile.

betafloat

Outer-slope parameter \(\beta\) of the gNFW profile.

gammafloat

Inner-slope parameter \(\gamma\) of the gNFW profile.

Bfloat

Hydrostatic mass bias factor \(B\) used in the \(M_{500c}\) normalization.

alpha_Pfloat

Additional mass-scaling exponent entering the pressure normalization.

P0_hexpfloat

Exponent controlling the \(h_{70}\) scaling of the normalization. Set to -1 for SZ-calibrated profiles and -3/2 for X-ray-calibrated profiles.

Methods

fourier(halo_model, k, m, z)

Compute the Fourier-space pressure profile for halo-model calculations.

real(halo_model, r, m, z)

Compute the electron-pressure profile.

update([P0, c500, alpha, beta, gamma, B, ...])

Return a new profile instance with updated GNFW pressure profile parameters.

Attributes

x_grid

property x_grid
update(P0=None, c500=None, alpha=None, beta=None, gamma=None, B=None, alpha_P=None, P0_hexp=None, x_out=None, x_grid=None)[source]

Return a new profile instance with updated GNFW pressure profile parameters. Any argument left as None keeps its current value.

Parameters:
P0float, optional
c500float, optional
alphafloat, optional
betafloat, optional
gammafloat, optional
Bfloat, optional
alpha_Pfloat, optional
P0_hexpfloat, optional
x_outfloat, optional
x_gridjnp.ndarray, optional

New dimensionless radial grid. Will be sorted and used to rebuild the Hankel transform.

Returns:
GNFWPressureProfile

New profile instance with updated parameters.

real(halo_model, r, m, z)[source]

Compute the electron-pressure profile.

Parameters:
halo_modelHaloModel

Halo model providing the cosmology, mass-definition conversion, and halo radius.

rfloat or jnp.ndarray

Comoving radius or radii in \(\mathrm{Mpc}\).

mfloat or jnp.ndarray

Halo mass or masses in physical \(M_\odot\).

zfloat or jnp.ndarray

Redshift(s).

Returns:
jnp.ndarray

Electron pressure profile with shape \((N_r, N_m, N_z)\), where singleton dimensions get squeezed before return.

fourier(halo_model, k, m, z)

Compute the Fourier-space pressure profile for halo-model calculations.

Parameters:
halo_modelHaloModel

Halo model providing the cosmology and halo-radius relation.

kfloat or jnp.ndarray

Comoving wavenumber(s) in \(\mathrm{Mpc}^{-1}\).

mfloat or jnp.ndarray

Halo mass or masses in physical \(M_\odot\).

zfloat or jnp.ndarray

Redshift(s).

Returns:
jnp.ndarray

Transformed profile with shape \((N_k, N_m, N_z)\), where singleton dimensions get squeezed before return.