Source code for autogalaxy.profiles.mass.point.smbh
import numpy as np
from typing import Tuple
from autogalaxy.profiles.mass.point.point import PointMass
[docs]
class SMBH(PointMass):
r"""
Supermassive black hole (SMBH) modelled as a point mass lens.
The SMBH is represented by a :class:`PointMass` profile whose Einstein radius
:math:`\theta_E` is derived from the physical mass :math:`M` and the critical
surface density :math:`\Sigma_{\rm crit}` between the SMBH and the source:
.. math::
\theta_E = \sqrt{\frac{M}{\pi \, \Sigma_{\rm crit}}}
The lensing potential and deflections then follow the point-mass expressions:
.. math::
\psi(\boldsymbol{\theta}) = \theta_E^2 \ln r, \qquad
\boldsymbol{\alpha}(\boldsymbol{\theta}) = \frac{\theta_E^2}{r}\,\hat{r}
This profile is used to model the gravitational influence of a central SMBH on
lensed images passing near the nucleus.
"""
def __init__(
self,
centre: Tuple[float, float] = (0.0, 0.0),
mass: float = 1e10,
redshift_object: float = 0.5,
redshift_source: float = 1.0,
):
r"""
Parameters
----------
centre
The (y,x) arc-second coordinates of the profile centre.
mass
The mass of the SMBH in solar masses :math:`M_\odot`.
redshift_object
The redshift of the SMBH (lens plane), used to convert mass to an Einstein radius.
redshift_source
The redshift of the lensed source galaxy, used to compute
:math:`\Sigma_{\rm crit}` and hence the Einstein radius.
"""
from autogalaxy.cosmology.model import Planck15
cosmology = Planck15()
self.mass = mass
critical_surface_density = (
cosmology.critical_surface_density_between_redshifts_from(
redshift_0=redshift_object,
redshift_1=redshift_source,
)
)
mass_angular = mass / critical_surface_density
einstein_radius = np.sqrt(mass_angular / np.pi)
super().__init__(centre=centre, einstein_radius=einstein_radius)
self.redshift_object = redshift_object
self.redshift_source = redshift_source