Turbulent Scattering

The formalism developed by `Macquart&Koay13`_has been ingested into the Turbulence class for calculations of temporal smearing and angular broadening.

Turbulence

This class describes the turbulence from a single object with properties listed in the following Table:

Parameter Unit Description Required?
ne density; cm**-3 Fiducial value of electron density Yes
l0 length; AU Inner length scale Yes
L0 length; pc Outer length scale Yes
zL unitless Redshift of scattering medium Yes
beta unitless Exponent of turbulence Yes
DL length; kpc Thickness of the object Required for SM
lobs length; cm Wavelength of interest Input for tau, theta

Here is a simple instantiation:

def_l0 = 1*u.AU
def_L0 = 0.001 * u.pc
def_ne = 1e-2 / u.cm**3
def_DL = 1 * u.kpc
def_zL = 1.
turb = Turbulence(def_ne, def_l0, def_L0)

The resultant object can then be used for scattering calculations. Note that in this instantiation, beta has a default value of 11/3 (Kolmogorov) and zL=0.

Temporal Smearing

With a Turbulence object defined as above, one can calculate the temporal smearing of a source at a given redshift and for a given observed wavelength (or frequency). Here is an example:

from astropy import constants as const
turb = Turbulence(def_ne, def_l0, def_L0, def_zL)
inu = 1 * u.GHz
lobs = (const.c/inu).to('cm')
# SM, rdiff
turb.set_SM_obj(def_DL)
turb.set_rdiff(lobs)
# tau
zsource = 2.
tau = turb.temporal_smearing(lobs, zsource)
print(tau)  # Given in ms

Angular Broadening

With a Turbulence object defined as above, one can calculate the angular broadening of a source at a given redshift and for a given observed wavelength (or frequency). Here is an example:

theta = turb.angular_broadening(lobs, zsource) # Returned in arcsec

Intervening Galaxies

One may generate a set of random draws for temporal smearing due to the ISM of intervening galaxies towards a source with given redshift using the monte_tau method:

from frb.dlas import monte_tau
zeval = np.array([0.,1.,2.])
taus = monte_tau(np.array(zeval))  # Returned unitless but in ms