Source code for autogalaxy.profiles.mass.sheets.mass_sheet
import numpy as np
from typing import Tuple
import autoarray as aa
from autogalaxy.profiles.mass.abstract.abstract import MassProfile
[docs]class MassSheet(MassProfile):
def __init__(self, centre: Tuple[float, float] = (0.0, 0.0), kappa: float = 0.0):
"""
Represents a mass-sheet
Parameters
----------
centre
The (y,x) arc-second coordinates of the profile centre.
kappa
The magnitude of the convergence of the mass-sheet.
"""
super().__init__(centre=centre, ell_comps=(0.0, 0.0))
self.kappa = kappa
def convergence_func(self, grid_radius: float) -> float:
return 0.0
@aa.grid_dec.grid_2d_to_structure
def convergence_2d_from(self, grid: aa.type.Grid2DLike):
return np.full(shape=grid.shape[0], fill_value=self.kappa)
@aa.grid_dec.grid_2d_to_structure
def potential_2d_from(self, grid: aa.type.Grid2DLike):
return np.zeros(shape=grid.shape[0])
@aa.grid_dec.grid_2d_to_vector_yx
@aa.grid_dec.grid_2d_to_structure
@aa.grid_dec.transform
@aa.grid_dec.relocate_to_radial_minimum
def deflections_yx_2d_from(self, grid: aa.type.Grid2DLike):
grid_radii = self.radial_grid_from(grid=grid)
return self._cartesian_grid_via_radial_from(
grid=grid, radius=self.kappa * grid_radii
)