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:
PressureProfileElectron 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
-1for SZ-calibrated profiles and-3/2for 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
- 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
Nonekeeps 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.