Technical notes

lensingGW has a modular structure which allows to import each routine individually. Detailed package description is available at the lensingGW package section of the documentation. Here, we provide a few technical notes on the packages that require special attention.

The amplification factor package

This package computes the geometrical optics amplification from a set of images and lensing potentials.

Unlike in the light lensing, gravitational waves from compact binaries are transient signals. Thus, only the images that superimpose into the detectors should be fed to the amplification routine. This amounts to considering groups of images whose pairwise time delays are shorter than the unlensed signal duration. The time delay of each image can be checked through the TimeDelay module in the utils package.

The solver package

The solver package finds the image positions of lensed compact sources by specifying a number of settings. It implements the two-step procedure presented in Pagano et al. 2020: the minimal solver setup requires to specify the extension of the search windows for the macromodel and for the complete model. However, each part of the iterative procedure is customizable by enabling the \(\texttt{optimization}\) mode.
Tuning of the solver settings is also recommended when no images are found. As the number of pixels and grid size of each iteration determine how well the lens potential is resolved, users may have to adapt them to the specific model under consideration.

This section contains the complete list of solver settings that can be tuned by the users along with their descriptions and default values. For the sake of clarity, here they are grouped in:

  • standard settings – specifications that are always considered for the two-step procedure. If users don’t specify input for these settings, default values are assumed

  • optimization-related settings – settings that are considered only when the \(\texttt{optimization}\) mode is active. Users who wish to use these settings should enable the \(\texttt{optimization}\) mode.

  • further specifications – additional features.

The settings are specified through a dictionary of keywords arguments, as shown in the solver usage examples.

Standard settings

For most cases, the \(\texttt{optimization}\) mode is not required. The following settings apply the solving algorithm in its standard form.

Option

Type

Default

Description

Scaled

bool

False

Specifies if the input is given in arbitrary units. If
\(False\), radians are assumed

ScaleFactor

float

1

Constant factor \(\alpha\) to convert from radians to
arbitrary units, as per \(x_{a.u.} = x_{radians}/\alpha\)

MacroIndex

list

[0]

Indices matching the profiles in
lens_model_list that form the macromodel

SearchWindowMacro

float

needs user input

Size of the first macromodel grid

PixelsMacro

int

\(10^3\)

Number of pixels of the first macromodel
grid

OverlapDistMacro

float

\(10^{-15}\rm{rad}\)

Distance below which macroimages are
considered overlaps

ImgIndex

list
or
None

None

Indices of the macroimages to be considered for
the two-step procedure. If None,
all macroimages are considered

SearchWindow

float

needs user input

Same as SearchWindowMacro, but for
the complete model

Pixels

int

\(10^3\)

Same as PixelsMacro, but for
the complete model

OverlapDist

float

\(10^{-15}\rm{rad}\)

Same as OverlapDistMacro, but for
the complete model

PrecisionLimit

float

\(10^{-20}\rm{rad}\)

Precision of the solutions in the
source plane

Optimization

bool

False

Enables the \(\texttt{optimization}\) mode

Verbose

bool

False

Prints detailed diagnostic

Entries for SearchWindow and SearchWindowMacro must necessarily be specified by the user.
Additional tuning is possible through the \(\texttt{optimization}\) mode, which is particularly useful in non-converging cases.

Optimization-related settings

When the \(\texttt{optimization}\) mode is active, users can tune the following additional parameters

Option

Type

Default

Description

OptimizationWindowMacro

float

2

Multiplying factor \(\gamma\) for the size
of the macromodel iteration grids.
The next window size \(w_s\) is
\(w_s = \gamma p_s\), where \(p_s\) is the pixel size
of the current iteration

OptimizationPixelsMacro

int

\(30\)

Number of pixels of the macromodel
iteration grids

MinDistMacro

float
or
None

None

Minimum ray-shooted distance
from the source \(d^s_0\) that pixels of the
first macromodel grid must satisfy
to be iterated over.
If None, all candidate pixels
are iterated over

ImprovementMacro

float
or
None

None

Improvement \(\delta\) on the ray-shooted
distance \(d^s_0\) that pixels of the
macromodel grids must satisfy to be
iterated over.
Pixels are considered for the \(n^{th}\)
iteration if their ray-shooted
distance at the \({n-1}^{th}\) iteration
is \(d^s_{n-1} < d^s_0 \cdot \delta^{n-1}\),
where \(0 < \delta \leq1\).
If None, \(d^s_{n-1}\equiv d^s_0\)
for all the iterations

OptimizationPrecisionLimitMacro

float

\(10^{-20}\rm{rad}\)

Precision of the macromodel
solutions in the source plane

OptimizationWindow

float

2

Same as OptimizationWindowMacro,
but for the complete model

OptimizationPixels

int

\(30\)

Same as OptimizationPixelsMacro,
but for the complete model

MinDist

float
or
None

None

Same as MinDistMacro, but for the
complete model

Improvement

float
or
None

None

Same as ImprovementMacro,
but for the complete model

OptimizationPrecisionLimit

float

\(10^{-20}\rm{rad}\)

Same as
OptimizationPrecisionLimitMacro,
but for the complete model

further specifications

In addition to the above-mentioned options, users can specify

Option

Type

Default

Description

OnlyMacro

bool

False

Solves for the macromodel only

NearSource

bool

False

Enables a further screening for
macroimages close to the unlensed
image position, with a customized
window size and number of pixels

SearchWindowNearSource

float
or
None

needs user input

Same as SearchWindowMacro, but for
the inspection near the unlensed
image position.
It requires \(\texttt{NearSource}= True\)

PixelsNearSource

int

\(10^3\)

Same as PixelsMacro, but for
the inspection near the unlensed
image position.
It requires \(\texttt{NearSource}= True\)

The \(\texttt{NearSource}\) option is compatible with the \(\texttt{optimization}\) mode. When both are active, the \(\texttt{optimization}\) settings applied to the screening near the unlensed image position are the same as the ones specified for the macromodel. The SearchWindowNearSource must necessarily be specified when this option is active.