autogalaxy.profiles.mass.dPIEMassSph#
- class dPIEMassSph[source]#
Bases:
dPIEMassThe dual Pseudo Isothermal Elliptical Mass Distribution(dPIEMass) profiles without ellipticity, which is a two component PIEMass with both a core radius and a truncation radius, see Eliasdottir (2007): https://arxiv.org/abs/0710.5636 This profile is ported from Lenstool’s C code, which has the same formulation.
This proflie describes an spherical isothermal mass distribution with a finite core, rho r^{-2} while in the transition region (ra<=R<=rs), and rho r^{-4} in the outer parts: rho propto [(ra^2 + R^2) (rs^2 + R^2)]^{-1}
The convergence is given by two PIEMass with core radius ra and rs: kappa(r_{em}) = rs / (rs - ra) * (kappa_{PIEMass,ra} - kappa_{PIEMass,rs})
= b_0 / 2 * rs / (rs - ra) * ( frac{1}{sqrt{ ra^2 + r_{em}^2}} - frac{1}{sqrt{ rs^2 + r_{em}^2}} )
where r_{em}^2 = x^2 / (1 + epsilon)^2 + y^2 / (1 - epsilon)^2. Note in Eliasdottir (2007), E0 = 6pi * sigma_{dPIEPotential}^2 / c^2 * (D_{LS} / D_{S}). Eliasdottir’s E0 is not the same as E0 in Kassiola & Kovner(1993) which is also b0. There is frac{sigma_{dPIEPotential}^2}{sigma_0^2} = frac{2}{3}
- rac{rs^2}{rs^2-ra^2},
thus E0(Kassiola & Kovner(1993)) = b0 = E0(Eliasdottir (2007)) * (rs^2 - ra^2) / rs^2. So when s->infty and a->0, they are equivalent.
In this implementation: - ra is the core radius in unit of arcseconds. - rs is the truncation radius in unit of arcseconds. - b0 is the lens strength in unit of arcseconds, when ra->0 & rs->infty & q->1, b0 is the Einstein radius.
b0 is related to the central velocity dispersion sigma_0: b_0 = 4pi * sigma_0^2 / c^2 * (D_{LS} / D_{S}) b0 is not in the Intermediate-Axis-Convention for its r_{em}^2 = x^2 / (1 + epsilon)^2 + y^2 / (1 - epsilon)^2
- Parameters:
Methods
Calculate the hessian matrix on a grid of (y,x) arc-second coordinates.
analytical_magnification_2d_fromangleThe position angle in degrees of the major-axis of the ellipse defined by profile, defined counter clockwise from the positive x-axis (0.0 > angle > 180.0).
angle_radiansThe position angle in radians of the major-axis of the ellipse defined by profile, defined counter clockwise from the positive x-axis (0.0 > angle > 2pi).
angle_to_profile_grid_fromThe angle between each angle theta on the grid and the profile, in radians.
axis_ratioThe ratio of the minor-axis to major-axis (b/a) of the ellipse defined by profile (0.0 > q > 1.0).
Returns the two dimensional projected convergence on a grid of (y,x) arc-second coordinates.
convergence_funcReturns the convergence of the mass profile as a function of the radial coordinate.
deflections_2d_via_potential_2d_fromReturns the 2D deflection angles of the mass profile by numerically differentiating the lensing potential on the input grid.
Calculate the deflection angles on a grid of (y,x) arc-second coordinates.
density_between_circular_annuliCalculate the mass between two circular annuli and compute the density by dividing by the annuli surface area.
eccentric_radii_grid_fromConvert a grid of (y,x) coordinates to an eccentric radius: :math: axis_ratio^0.5 (x^2 + (y^2/q))^0.5
elliptical_radii_grid_fromConvert a grid of (y,x) coordinates to their elliptical radii values: :math: (x^2 + (y^2/q))^0.5
extract_attributeReturns an attribute of a class and its children profiles in the galaxy as a ValueIrregular or Grid2DIrregular object.
hasReturns True if any attribute of this profile is an instance of the input class cls, else False.
mass_angular_within_circle_fromIntegrate the mass profiles's convergence profile to compute the total mass within a circle of specified radius.
mass_integralIntegrand used by mass_angular_within_circle_from to compute the total projected mass within a circle.
potential_2d_fromReturns the 2D lensing potential of the mass profile from a 2D grid of Cartesian (y,x) coordinates.
potential_funcReturns the integrand of the lensing potential at a single point, used in numerical integration schemes for computing the potential from the mass profile's convergence.
radial_deflection_fromradial_grid_fromConvert a grid of (y, x) coordinates, to their radial distances from the profile centre (e.g. :math: r = sqrt(x**2 + y**2)).
rotated_grid_from_reference_frame_fromRotate a grid of (y,x) coordinates which have been transformed to the elliptical reference frame of a profile back to the original unrotated coordinate grid reference frame.
transformed_from_reference_frame_grid_fromTransform a grid of (y,x) coordinates from the reference frame of the profile to the original observer reference frame.
transformed_to_reference_frame_grid_fromTransform a grid of (y,x) coordinates to the reference frame of the profile.
vmapped_deflections_fromAttributes
average_convergence_of_1_radiusThe radius a critical curve forms for this mass profile, e.g. where the mean convergence is equal to 1.0.
ellipticity_rescaleA rescaling factor applied to account for the ellipticity of the mass profile when computing the Einstein radius from the average convergence equals unity criterion.
- deflections_yx_2d_from(grid, xp=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/pyautolens/envs/latest/lib/python3.12/site-packages/numpy/__init__.py'>, **kwargs)[source]#
Calculate the deflection angles on a grid of (y,x) arc-second coordinates. Faster and equivalent to Eliasdottir (2007), see Eq. A19 and Eq. A20.
- f(R,a,s) = {R/a} / {1 + sqrt{1 + (R/a)^2}} - {R/s} / {1 + sqrt{1 + (R/s)^2}}
= R / {sqrt{a^2 + R^2} + a} - R / {sqrt{s^2 + R^2} + s} = R * (sqrt{a^2 + R^2} - a) / {a^2 + R^2 - a^2} - R * (sqrt{s^2 + R^2} - s) / {s^2 + R^2 - s^2} = (sqrt{R^2 + a^2} - a - sqrt{R^2 + s^2} + s) / R
alpha = b0 * s / (s - a) * f(R,a,s) deflection_x = alpha * grid[:, 1] / R
= grid[:, 1] * b0 * s / (s - a) * (sqrt{R^2 + a^2} - a - sqrt{R^2 + s^2} + s) / R^2
- deflection_y = alpha * grid[:, 0] / R
= grid[:, 0] * b0 * s / (s - a) * (sqrt{R^2 + a^2} - a - sqrt{R^2 + s^2} + s) / R^2
- Parameters:
grid (
Union[ndarray,Grid2D,Grid2DIrregular]) – The grid of (y,x) arc-second coordinates the deflection angles are computed on.
- convergence_2d_from(grid, xp=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/pyautolens/envs/latest/lib/python3.12/site-packages/numpy/__init__.py'>, **kwargs)[source]#
Returns the two dimensional projected convergence on a grid of (y,x) arc-second coordinates.
The grid_2d_to_structure decorator reshapes the ndarrays the convergence is outputted on. See aa.grid_2d_to_structure for a description of the output.
- Parameters:
grid (
Union[ndarray,Grid2D,Grid2DIrregular]) – The grid of (y,x) arc-second coordinates the convergence is computed on.
- analytical_hessian_2d_from(grid, xp=<module 'numpy' from '/home/docs/checkouts/readthedocs.org/user_builds/pyautolens/envs/latest/lib/python3.12/site-packages/numpy/__init__.py'>, **kwargs)[source]#
Calculate the hessian matrix on a grid of (y,x) arc-second coordinates. Chain rule of second derivatives: ∂²ψ/∂x² = ∂²ψ/∂R² * (∂R/∂x)² + ∂²R/∂x² * ∂ψ/∂R ∂²ψ/∂y² = ∂²ψ/∂R² * (∂R/∂y)² + ∂²R/∂y² * ∂ψ/∂R ∂²ψ/∂x∂y = ∂²ψ/∂R² * ∂R/∂x * ∂R/∂y + ∂²R/∂x∂y * ∂ψ/∂R
- Parameters:
grid (
Union[ndarray,Grid2D,Grid2DIrregular]) – The grid of (y,x) arc-second coordinates the deflection angles are computed on.