Multipole

Multipole approximations for finite-source magnifications.

microjax.multipole.mag_hexadecapole(z: Array, z_mask: Array, rho: float, u1: float = 0.0, nlenses: int = 2, **params) Tuple[Array, Array]

Evaluate the hexadecapole approximation for finite-source magnification.

Parameters:
  • z (jax.Array) – Complex image locations with shape (N_images, ...).

  • z_mask (jax.Array) – Boolean mask with the same shape as z selecting valid image branches (typically output of microjax.point_source._images_point_source()).

  • rho (float) – Source radius in Einstein units.

  • u1 (float, optional) – Linear limb-darkening coefficient. Defaults to 0 (uniform source).

  • nlenses (int, optional) – Number of lenses (1, 2, or 3). Defaults to 2.

  • **params – Additional lens parameters in the mid-point coordinate system. For binaries this expects a and e1; for triples a, r3, e1 and e2 in addition to any other configuration details.

Returns:

  • mu (jax.Array) – Finite-source magnification obtained by summing the point-source term with quadrupole and hexadecapole corrections over all valid images.

  • residual (jax.Array) – Diagnostic amplitude (absolute quadrupole + hexadecapole contribution) that can be used to gauge when the approximation may be insufficient.

Notes

The implementation follows Cassan et al. (2017), computing the multipole moments via the complex quantities W_k and applying limb-darkening corrections through the Gamma parameter.