NSISP Lens

The singularity of the SIS lens at the center can be removed by introducing a finite core. There are two ways to do this: softening the lens potential itself or softening the mass distribution (see NSISMD lens for the latter). In the non-singular isothermal sphere potential (NSISP) lens, the core radius ($θ_s$) is introduced directly in the SIS lens potential,

\[\begin{equation*} ψ(\pmb{θ}) = 4π \left( \frac{σ_v}{\rm c} \right)^2 \sqrt{θ_s^2 + |\pmb{θ} - \pmb{θ}_c|^2}, \end{equation*}\]

where $σ_v$ is the velocity dispersion and $\pmb{θ}_c$ represents the lens center, leading to the deflection angle

\[\begin{equation*} \pmb{α}(\pmb{θ}) = 4π \left( \frac{σ_v}{\rm c} \right)^2 \frac{\pmb{θ} - \pmb{θ}_c}{\sqrt{θ_s^2 + |\pmb{θ} - \pmb{θ}_c|^2}}. \end{equation*}\]

The corresponding convergence profile is

\[\begin{equation*} κ(θ) = \frac{θ_{E,0}}{2} \frac{2θ_s^2 + θ^2}{\left( θ_s^2 + θ^2 \right)^{3/2}}, \qquad θ_{E,0} = 4π \left( \frac{σ_v}{\rm c} \right)^2 \frac{D_{ds}}{D_s}, \end{equation*}\]

which is finite at the center, and the Einstein angle is given by

\[\begin{equation*} θ_E = \sqrt{θ_{E,0}^2 - θ_s^2}. \end{equation*}\]

In the limit $θ_s → 0$, the NSISP lens reduces to the SIS lens. Due to the finite core, a sufficiently well-aligned source can produce three images instead of two.

In LensFactory, to define an NSISP lens, the user needs to specify four parameters: its position in the image plane ($x_c,~y_c$), its velocity dispersion ($v_d \equiv σ_v$, in km/s), and the core radius ($x_s \equiv θ_s$). By default, the lens is placed at the origin, i.e., ($x_c,~y_c$) = (0, 0).

LensFactory.Lenses.init_NSISPLens — Type
init_NSISPLens(x_c::Real = 0.0, 
               y_c::Real = 0.0, 
               v_d::Real = NaN, 
               x_s::Real = NaN)

Initialize a Non-Singular Isothermal Sphere Potential (NSISP) lens with the given parameters.

Keyword Arguments

  • x_c::Real = 0.0: x-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • y_c::Real = 0.0: y-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • v_d::Real = NaN: Velocity dispersion (in $\rm \mathbf{km/s}$).
  • x_s::Real = NaN: Core radius (in $\rm \mathbf{arcseconds}$).
source
LensFactory.Lenses.NSISPLens.potential! — Function
potential!(ψ::U, θx::S, θy::S, θxc::T, θyc::T, v_d::T, θs::T) where {U<:Real, S<:Real, T<:Real}
source
potential!(ψ::U, θx::S, θy::S, θxc::T, θyc::T, v_d::T, θs::T) where {U<:ROA, S<:ROA, T<:Real}

Calculate potential at given coordinates for NSISP lens and update the potential (ψ) in place. The lensing potential is given as,

\[\begin{align*} ψ(θ_x, θ_y) = 4 π \left(\frac{v_d}{{\rm c}} \right)^2 \sqrt{θ_s^2 + |\pmb{θ} - \pmb{θ}_c|^2}. \end{align*}\]

Arguments

  • ψ : Potential at given coordinates
  • θx : x-coordinate(s) (in $\rm \mathbf{arcseconds}$).
  • θy : y-coordinate(s) (in $\rm \mathbf{arcseconds}$).
  • θxc: x-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • θyc: y-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • v_d: Velocity dispersion (in $\rm \mathbf{km/s}$).
  • θs : Core radius of the lens (in $\rm \mathbf{arcseconds}$).

Returns

  • nothing: Updates the potential (ψ) in place.
source
LensFactory.Lenses.NSISPLens.deflection! — Function
deflection!(ψx::U, ψy::U, θx::S, θy::S, θxc::T, θyc::T, v_d::T, θs::T) where {U<:Real, S<:Real, T<:Real}
source
deflection!(ψx::U, ψy::U, θx::S, θy::S, θxc::T, θyc::T, v_d::T, θs::T) where {U<:ROA, S<:ROA, T<:Real}

Calculate deflection at given coordinates for NSISP lens and update the deflection components (ψx, ψy) in place.

Arguments

  • ψx : x-component of the deflection at given coordinates
  • ψy : y-component of the deflection at given coordinates
  • θx : x-coordinate(s) (in $\rm \mathbf{arcseconds}$).
  • θy : y-coordinate(s) (in $\rm \mathbf{arcseconds}$).
  • θxc: x-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • θyc: y-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • v_d: Velocity dispersion (in $\rm \mathbf{km/s}$).
  • θs : Core radius of the lens (in $\rm \mathbf{arcseconds}$).

Returns

  • nothing: Updates the deflection (ψx, ψy) in place.
source
LensFactory.Lenses.NSISPLens.jacobian! — Function
jacobian!(ψxx::U, ψyy::U, ψxy::U, θx::S, θy::S, θxc::T, θyc::T, v_d::T, θs::T) where {U<:Real, S<:Real, T<:Real}
source
jacobian!(ψxx::U, ψyy::U, ψxy::U, θx::S, θy::S, θxc::T, θyc::T, v_d::T, θs::T) where {U<:ROA, S<:ROA, T<:Real}

Calculate jacobian at given coordinates for NSISP lens and and update the jacobian components (ψxx, ψyy, ψxy) in place.

Arguments

  • ψxx: xx-component of the jacobian at given coordinates
  • ψyy: yy-component of the jacobian at given coordinates
  • ψxy: xy-component of the jacobian at given coordinates
  • θx : x-coordinate(s) (in $\rm \mathbf{arcseconds}$).
  • θy : y-coordinate(s) (in $\rm \mathbf{arcseconds}$).
  • θxc: x-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • θyc: y-coordinate of the lens (in $\rm \mathbf{arcseconds}$).
  • v_d: Velocity dispersion (in $\rm \mathbf{km/s}$).
  • θs : Core radius of the lens (in $\rm \mathbf{arcseconds}$).

Returns

  • nothing: Updates the jacobian (ψxx, ψyy, ψxy) in place.
source
LensFactory.Lenses.NSISPLens.einstein_angle — Function
einstein_angle(; D_ds::Real = NaN, 
                 D_s::Real  = NaN, 
                 v_d::Real  = NaN, 
                 x_s::Real  = NaN)

Calculate the Einstein angle for NSIS lens,

\[\theta_E = \sqrt{\left[4 \pi \frac{D_{ds}}{D_s} \left( \frac{v_d}{{\rm c}} \right)^2 \right]^2 - x_s^2}.\]

Keyword Arguments

  • D_ds: ADD from the observer to the lens (in $\rm \mathbf{meters}$).
  • D_s: ADD from the observer to the source (in $\rm \mathbf{meters}$).
  • v_d: Velocity dispersion (in $\rm \mathbf{km/s}$).
  • x_s: Core radius of the lens (in $\rm \mathbf{arcseconds}$).

Returns

  • θE: Einstein angle (in $\rm \mathbf{arcseconds}$).
source