PyAutoLens icon indicating copy to clipboard operation
PyAutoLens copied to clipboard

Dekel-Zhao Profile

Open Jammy2211 opened this issue 4 years ago • 0 comments

The following paper details a mass profile that is well suited to strong lensing, called the Dekel-Zhao profile:

https://arxiv.org/abs/2004.08395

The deflection angle calculation for a spherical model is given by equation (38):

image

The expression looks pretty complicated, but actually boils down to a fairly straight forward calculation using various scipy / expansions.

It would be good to implement this mass profile in the module autogalaxy.profiles.mass_profiles.dark_mass_profiles:

https://github.com/Jammy2211/PyAutoGalaxy/blob/master/autogalaxy/profiles/mass_profiles/dark_mass_profiles.py

A template for the profile is as follows:

class SphDekel(mp.MassProfile, DarkProfile):
    def __init__(
        self,
        centre: Tuple[float, float] = (0.0, 0.0),
        kappa_0: float = 0.05,
        another_parameter: float = 1.0,
    ):
        """
        The spherical Dekel profile, used to fit the dark matter halo of the lens.

        Parameters
        ----------
        centre
            The (y,x) arc-second coordinates of the profile centre.
        kappa_0
            The overall normalization of the dark matter halo for the Dekel profile.
        """

        super().__init__(
            centre=centre,
            elliptical_comps=(0.0, 0.0),
        )
     
        self.kappa_0 = kappa_0

   # For new users: These decorators perform geometric transformation of the input grid using its `centre`.

    @grid_decorators.grid_2d_to_structure 
    @grid_decorators.transform
    @grid_decorators.relocate_to_radial_minimum
    def deflections_2d_from_grid(self, grid, **kwargs):
        """
        Calculate the deflection angles at a given set of arc-second gridded coordinates.

        Parameters
        ----------
        grid : aa.Grid2D
            The grid of (y,x) arc-second coordinates the deflection angles are computed on.
        """
        deflections = compute via equation (38)

       return deflections

Jammy2211 avatar Jun 05 '21 11:06 Jammy2211