Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Implementation of Critical Curves

The critical curve is the set of points θ\theta where the determinant of the magnification matrix A(θ)\mathcal{A}(\boldsymbol{\theta}) vanishes. We have

A(θ)=[1ψθ1θ1ψθ1θ2ψθ1θ21ψθ2θ2]\mathcal{A}(\boldsymbol{\theta}) = \begin{bmatrix} 1 - \psi_{\theta_1\theta_1} & -\psi_{\theta_1\theta_2} \\ -\psi_{\theta_1\theta_2} & 1 - \psi_{\theta_2\theta_2} \end{bmatrix}

and

detA(θ)=1ψθ1θ1ψθ2θ2+ψθ1θ1ψθ2θ2+2ψθ1θ2\det\mathcal{A}(\boldsymbol{\theta}) = 1 - \psi_{\theta_1\theta_1} - \psi_{\theta_2\theta_2} + \psi_{\theta_1\theta_1}\psi_{\theta_2\theta_2} + 2\psi_{\theta_1\theta_2}

It is straight forward to compute this given the second derivatives.

The API

We see the critical curve as a set of points (r,ϕ)(r,\phi) in polar coordinates. The Lens::criticalXi( double phi ) method returns rr for a given ϕ\phi (phi).

As of v3.2.3 the implementation is incomplete. We should have a generic, but probably slow implementation in Lens, and faster implementations in subclasses where this is possible.

Critical Curves for Analytics Lenses

For circular lenses (SIS and Point Mass) the critical curve is a circle with radius θE\theta_E. For these two lenses criticalXi() returns the Einstein radius.

For SIE, centred at the origin, the critical curve is given in polar coordinates (r,ϕ)(r,\phi) where

r=fθEcos2ϕ+f2sin2ϕr = \frac{\sqrt{f}\theta_E}{\sqrt{ \cos^2\phi + f^2\sin^2\phi}}

where ff is the elliptic ratio. This is impemented in SIE::criticalXi().