frb.turb_scattering - Turbulent Scattering

Scattering by the ISM, based on formalism from Macquart & Koay 2013, modified by Prochaska & Neeleman 2017.

Codes for Scattering by ISM Based on formalism derived by Macquart & Koay 2013, ApJ, 776, 125 Modified by Prochaska & Neeleman 2017

frb.turb_scattering.theta_mist(n_e, nu_obs, L=<Quantity 50. kpc>, R=<Quantity 1. pc>, fV=1.0)[source]

Estimate the scattering angle for a mist, following the calculations by M. McQuinn presented in Prochaska+2019

Args:
  • n_e (Quantity) – Electron density

  • nu_obs (Quantity) – Frequency of the radiation, observed

  • L (Quantity, optional) – Size of the region of the mist

  • R (Quantity, optional) – Size of the clouds

  • fV (float, optional) – Filling factor of the bubbles

Returns:

Angle in radians

Return type:

Quantity

frb.turb_scattering.tau_mist(n_e, nu_obs, z_FRB, zL, L=<Quantity 50. kpc>, R=<Quantity 1. pc>, fV=1.0, cosmo=FlatLambdaCDM(name='Planck18', H0=<Quantity 67.66 km / (Mpc s)>, Om0=0.30966, Tcmb0=<Quantity 2.7255 K>, Neff=3.046, m_nu=<Quantity [0., 0., 0.06] eV>, Ob0=0.04897))[source]

Temporal broadening for a mist of spherical clouds following the calculations by M. McQuinn presented in Prochaska+2019

Args:
  • n_e (Quantity) – Electron density

  • nu_obs (Quantity) – Frequency of the radiation, observed

  • z_FRB (float) – Redshift of the FRB

  • zL (float) – Redshift of the intervening lens

  • L (Quantity, optional) – Size of the region of the mist

  • R (Quantity, optional) – Size of the clouds

  • fV (float, optional) – Filling factor of the bubbles

  • cosmo (Cosmology, optional)

Returns:

temporal broadening in seconds

Return type:

Quantity

frb.turb_scattering.ne_from_tau_mist(tau_scatt, z_FRB, zL, nu_obs, L=<Quantity 50. kpc>, R=<Quantity 1. pc>, fV=1.0, cosmo=FlatLambdaCDM(name='Planck18', H0=<Quantity 67.66 km / (Mpc s)>, Om0=0.30966, Tcmb0=<Quantity 2.7255 K>, Neff=3.046, m_nu=<Quantity [0., 0., 0.06] eV>, Ob0=0.04897), verbose=False)[source]

n_e from temporal broadening for a mist of spherical clouds following the calculations by M. McQuinn presented in Prochaska+2019

Args:
  • tau_scatt (Quantity) – Observed width of the pulse

  • z_FRB (float) – Redshift of the FRB

  • zL (float) – Redshift of the intervening lens

  • nu_obs (Quantity) – Observed freqency

  • L (Quantity, optional) – Size of the region of the mist

  • R (Quantity, optional) – Size of the clouds

  • fV (float, optional) – Filling factor of the bubbles

  • cosmo (Cosmology, optional)

  • verbose (bool, optional)

Returns:

density in cm**-3

Return type:

Quantity

frb.turb_scattering.ne_from_tau_kolmogorov(tau_scatt, z_FRB, zL, nu_obs, L=<Quantity 50. kpc>, L0=<Quantity 1. kpc>, alpha=1.0, cosmo=FlatLambdaCDM(name='Planck18', H0=<Quantity 67.66 km / (Mpc s)>, Om0=0.30966, Tcmb0=<Quantity 2.7255 K>, Neff=3.046, m_nu=<Quantity [0., 0., 0.06] eV>, Ob0=0.04897), debug=False)[source]

Estimate n_e based on observed temporal broadening

Scaled from Equation 1 of Prochaska et al. 2019

Args:
  • tau_scatt (Quantity) – Observed width of the pulse

  • z_FRB (float) – Redshift of the FRB

  • zL (float) – Redshift of the intervening lens

  • nu_obs (Quantity) – Observed freqency

  • L (Quantity, optional) – Size of the intervening gas

  • L0 (Quantity, optional) – Turbulence length scale

  • alpha (float, optional) – Filling factor and fudge factor term

  • cosmo (Cosmology, optional)

Returns:

<n_e>

Return type:

Quantity

class frb.turb_scattering.Turbulence(ne, l0, L0, zL, beta=3.6666666666666665, SM=None, verbose=True, **kwargs)[source]

Bases: object

Class for turbulence calculations in a plasma Primarily used for scattering calculations

__init__(ne, l0, L0, zL, beta=3.6666666666666665, SM=None, verbose=True, **kwargs)[source]
Parameters:
  • ne (Quantity) – Electron density

  • l0 (Quantity) – Inner scale

  • L0 (Quantity) – Outer scale

  • SM (Quantity, optional) – Generally calculated but can be input

  • zL (float) – Redshift of scattering medium

  • beta (float, optional) – Exponent of turbulence. Default is for Kolmogorov

  • **kwargs – Passed to init methods e.g. sets SM if DL is provided

property CN2_gal

Amplitude of the turbulence per unit length Equation 29 from Macquarty & Koay 2013 Assumes Kolmogorov

Returns:

CN2

Return type:

Quantity

property SMeff

Effective SM :returns: SMeff :rtype: Quantity

set_SM_obj(DL)[source]

Specify SM for a discrete object (e.g. galaxy) Equation 31 from Macquart & Koay 2013 Assumes Kolmogorov

Parameters:

DL (Quantity) – Thickness of the object

set_cloudlet_rdiff(lobs, fa)[source]

Taken from JP notes

Args:
  • lobs

  • fa (int) – Number of clouds intersected

Returns:

set_rdiff(lobs)[source]

Calculate rdiff in the two regimes and adopt the right one Requires that SM was set first

Parameters:

lobs (Quantity) – Observed wavelength

Return type:

Nothing; sets self.rdiff and self.regime

angular_broadening(lobs, zsource, cosmo=FlatLambdaCDM(name='Planck18', H0=<Quantity 67.66 km / (Mpc s)>, Om0=0.30966, Tcmb0=<Quantity 2.7255 K>, Neff=3.046, m_nu=<Quantity [0., 0., 0.06] eV>, Ob0=0.04897))[source]

Broadening of a point source due to turbulent scattering

Parameters:
  • lobs (Quantity) – Observed wavelength

  • zsource (float) – Redshift of radio source

Returns:

theta – Angular broadening. Radius (half-width at half-max)

Return type:

Quantity

temporal_smearing(lobs, zsource, cosmo=FlatLambdaCDM(name='Planck18', H0=<Quantity 67.66 km / (Mpc s)>, Om0=0.30966, Tcmb0=<Quantity 2.7255 K>, Neff=3.046, m_nu=<Quantity [0., 0., 0.06] eV>, Ob0=0.04897))[source]

Temporal smearing due to turbulent scattering

Parameters:
  • lobs (Quantity) – Observed wavelength

  • zsource (float)

  • cosmo (astropy.cosmology, optional)

Returns:

tau – temporal broadening

Return type:

Quantity