Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hernquist Light Profile #168

Open
Jammy2211 opened this issue Jun 5, 2021 · 0 comments
Open

Hernquist Light Profile #168

Jammy2211 opened this issue Jun 5, 2021 · 0 comments

Comments

@Jammy2211
Copy link
Owner

The following seminar work of Hernquist details a light profile called the Hernquist profile:

https://ui.adsabs.harvard.edu/abs/1990ApJ...356..359H/abstract

The intensity calculation for a spherical model is given by equations (32-35):

image

It would be good to implement this light profile in the module autogalaxy.profiles.light_profiles:

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

A template for the profile is as follows:

class SpHernquist(LightProfile):
    def __init__(
        self,
        centre: Tuple[float, float] = (0.0, 0.0),
        another_parameter: float = 1.0,
    ):
        """
        The spherical Hernquist profile, used to fit the light of galaxies.

        Parameters
        ----------
        centre
            The (y,x) arc-second coordinates of the profile centre.
        """

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

    def image_2d_from_grid_radii(self, grid_radii):
        """
        Calculate the intensity of the Hernquist light profile on a grid of radial coordinates.

        Parameters
        ----------
        grid_radii : float
            The radial distance from the centre of the profile. for each coordinate on the grid.
        """
        return expression_for_projected_intensity

   # 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 image_2d_from_grid(self, grid, grid_radial_minimum=None):
        """Calculate the intensity of the light profile on a grid of Cartesian (y,x) coordinates.

        If the coordinates have not been transformed to the profile's geometry, this is performed automatically.

        Parameters
        ----------
        grid
            The (y, x) coordinates in the original reference frame of the grid.
        """
        return self.image_2d_from_grid_radii(self.grid_to_eccentric_radii(grid))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant