profiles.density.CoredIsothermalDensityProfile.compute_lensing_convergence#

CoredIsothermalDensityProfile.compute_lensing_convergence(R, z_lens, z_source, cosmology=None, units=None, **kwargs)#

Compute the lensing convergence \(\kappa(R)\) at projected radius \(R\).

The convergence is defined as:

\[\kappa(R) = \frac{\Sigma(R)}{\Sigma_{\mathrm{crit}}}\]

where:

  • \(\Sigma(R)\) is the projected surface mass density,

  • \(\Sigma_{\mathrm{crit}}\) is the critical surface density:

    \[\begin{split}\Sigma_{\mathrm{crit}} = \frac{c^2}{4 \pi G} \\frac{D_s}{D_l D_{ls}}\end{split}\]
Parameters:
  • R (unyt_quantity or unyt_array) – Projected radius with length units.

  • z_lens (float) – Redshift of the lens.

  • z_source (float) – Redshift of the source (must satisfy \(z_{\mathrm{source}} > z_{\mathrm{lens}}\)).

  • cosmology (astropy.cosmology.Cosmology, optional) – Cosmology to compute distances. Defaults to pisces_config['physics.default_cosmology'].

  • units (str or Unit, optional) – Output units for \(\\kappa\). Default is dimensionless.

  • **kwargs – Additional arguments passed to compute_surface_density().

Returns:

kappa – Lensing convergence at each radius.

Return type:

unyt_quantity or unyt_array

Examples

import unyt
from astropy.cosmology import Planck18
from pisces.profiles.density import (
    NFWDensityProfile,
)

profile = NFWDensityProfile(rho_0=0.04, r_s=20)
R = unyt.array.unyt_array([0.5, 1, 2, 5], "kpc")

kappa = profile.compute_lensing_convergence(
    R,
    z_lens=0.3,
    z_source=2.0,
    cosmology=Planck18,
)

print(kappa)