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}$).
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}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.
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}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.
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}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.
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}$).