Source code for lenstronomy.Cosmo.micro_lensing

import numpy as np
from lenstronomy.Util import constants

# routines to conveniently compute micro-lensing events


[docs] def einstein_radius(mass, d_l, d_s): """Einstein radius for a given point mass and distances to lens and source. :param mass: point source mass [M_sun] :param d_l: distance to lens [pc] :param d_s: distance to source [pc] :return: Einstein radius [arc seconds] """ mass_kg = mass * constants.M_sun dl_m = d_l * constants.pc ds_m = d_s * constants.pc # Einstein radius in radian theta_e = np.sqrt( 4 * constants.G * mass_kg / constants.c**2 * (ds_m - dl_m) / (ds_m * dl_m) ) theta_e /= constants.arcsec # arc seconds return theta_e
[docs] def source_size(diameter, d_s): """ :param diameter: diameter of the source in units of the solar diameter :param d_s: distance to the source in [pc] :return: diameter in [arc seconds] """ diameter_m = diameter * constants.r_sun * 2 # diameter in [m] diameter_arcsec = diameter_m / (d_s * constants.pc) # diameter in [radian] diameter_arcsec /= constants.arcsec # diameter in [arc seconds] return diameter_arcsec