Simple synchrotron radiation emission coefficients (pwkit.dulk_models)

Model radio-wavelength radiative transfer using the Dulk (1985) equations.

Note that the gyrosynchrotron and relativistic synchrotron expressions can give very different answers! For s=20, delta=3, theta=0.7, the results differ by three orders of magnitude for η! The paper is a bit vague but mentions that the gyrosynchrotron case is when “γ <~ 2 or 3”. The synchrotron functions give results compatible with Symphony/Rimphony; the gyrosynchrotron ones do not, although I’ve only tentatively explored what happens if you given Symphony/Rimphony very low cuts on their gamma values.

The models are from Dulk (1985; 1985ARA&A..23..169D; doi:10.1146/annurev.aa.23.090185.001125). There are three versions:

Free-free emission

calc_freefree_kappa(ne, t, hz)

Dulk (1985) eq 20, assuming pure hydrogen.

calc_freefree_eta(ne, t, hz)

Dulk (1985) equations 7 and 20, assuming pure hydrogen.

calc_freefree_snu_ujy(ne, t, width, ...)

Calculate a flux density from pure free-free emission.

pwkit.dulk_models.calc_freefree_kappa(ne, t, hz)[source]

Dulk (1985) eq 20, assuming pure hydrogen.

pwkit.dulk_models.calc_freefree_eta(ne, t, hz)[source]

Dulk (1985) equations 7 and 20, assuming pure hydrogen.

pwkit.dulk_models.calc_freefree_snu_ujy(ne, t, width, elongation, dist, ghz)[source]

Calculate a flux density from pure free-free emission.

Gyrosynchrotron emission

calc_gs_kappa(b, ne, delta, sinth, nu)

Calculate the gyrosynchrotron absorption coefficient κ_ν.

calc_gs_eta(b, ne, delta, sinth, nu)

Calculate the gyrosynchrotron emission coefficient η_ν.

calc_gs_snu_ujy(b, ne, delta, sinth, width, ...)

Calculate a flux density from pure gyrosynchrotron emission.

pwkit.dulk_models.calc_gs_kappa(b, ne, delta, sinth, nu)[source]

Calculate the gyrosynchrotron absorption coefficient κ_ν.

This is Dulk (1985) equation 36, which is a fitting function assuming a power-law electron population. Arguments are:

b

Magnetic field strength in Gauss

ne

The density of electrons per cubic centimeter with energies greater than 10 keV.

delta

The power-law index defining the energy distribution of the electron population, with n(E) ~ E^(-delta). The equation is valid for 2 <~ delta <~ 7.

sinth

The sine of the angle between the line of sight and the magnetic field direction. The equation is valid for θ > 20° or sinth > 0.34 or so.

nu

The frequency at which to calculate η, in Hz. The equation is valid for 10 <~ nu/nu_b <~ 100, which sets a limit on the ratio of nu and b.

The return value is the absorption coefficient, in units of cm^-1.

No complaints are raised if you attempt to use the equation outside of its range of validity.

pwkit.dulk_models.calc_gs_eta(b, ne, delta, sinth, nu)[source]

Calculate the gyrosynchrotron emission coefficient η_ν.

This is Dulk (1985) equation 35, which is a fitting function assuming a power-law electron population. Arguments are:

b

Magnetic field strength in Gauss

ne

The density of electrons per cubic centimeter with energies greater than 10 keV.

delta

The power-law index defining the energy distribution of the electron population, with n(E) ~ E^(-delta). The equation is valid for 2 <~ delta <~ 7.

sinth

The sine of the angle between the line of sight and the magnetic field direction. The equation is valid for θ > 20° or sinth > 0.34 or so.

nu

The frequency at which to calculate η, in Hz. The equation is valid for 10 <~ nu/nu_b <~ 100, which sets a limit on the ratio of nu and b.

The return value is the emission coefficient (AKA “emissivity”), in units of erg s^-1 Hz^-1 cm^-3 sr^-1.

No complaints are raised if you attempt to use the equation outside of its range of validity.

pwkit.dulk_models.calc_gs_snu_ujy(b, ne, delta, sinth, width, elongation, dist, ghz)[source]

Calculate a flux density from pure gyrosynchrotron emission.

This combines Dulk (1985) equations 35 and 36, which are fitting functions assuming a power-law electron population, with standard radiative transfer through a uniform medium. Arguments are:

b

Magnetic field strength in Gauss

ne

The density of electrons per cubic centimeter with energies greater than 10 keV.

delta

The power-law index defining the energy distribution of the electron population, with n(E) ~ E^(-delta). The equation is valid for 2 <~ delta <~ 7.

sinth

The sine of the angle between the line of sight and the magnetic field direction. The equation is valid for θ > 20° or sinth > 0.34 or so.

width

The characteristic cross-sectional width of the emitting region, in cm.

elongation

The the elongation of the emitting region; depth = width * elongation.

dist

The distance to the emitting region, in cm.

ghz

The frequencies at which to evaluate the spectrum, in GHz.

The return value is the flux density in μJy. The arguments can be Numpy arrays.

No complaints are raised if you attempt to use the equations outside of their range of validity.

Relativistic synchrotron emission

calc_synch_kappa(b, ne, delta, sinth, nu[, E0])

Calculate the relativstic synchrotron absorption coefficient κ_ν.

calc_synch_eta(b, ne, delta, sinth, nu[, E0])

Calculate the relativistic synchrotron emission coefficient η_ν.

calc_synch_snu_ujy(b, ne, delta, sinth, ...)

Calculate a flux density from pure gyrosynchrotron emission.

pwkit.dulk_models.calc_synch_kappa(b, ne, delta, sinth, nu, E0=1.0)[source]

Calculate the relativstic synchrotron absorption coefficient κ_ν.

This is Dulk (1985) equation 41, which is a fitting function assuming a power-law electron population. Arguments are:

b

Magnetic field strength in Gauss

ne

The density of electrons per cubic centimeter with energies greater than E0.

delta

The power-law index defining the energy distribution of the electron population, with n(E) ~ E^(-delta). The equation is valid for 2 <~ delta <~ 5.

sinth

The sine of the angle between the line of sight and the magnetic field direction. It’s not specified for what range of values the expressions work well.

nu

The frequency at which to calculate η, in Hz. The equation is valid for It’s not specified for what range of values the expressions work well.

E0

The minimum energy of electrons to consider, in MeV. Defaults to 1 so that these functions can be called identically to the gyrosynchrotron functions.

The return value is the absorption coefficient, in units of cm^-1.

No complaints are raised if you attempt to use the equation outside of its range of validity.

pwkit.dulk_models.calc_synch_eta(b, ne, delta, sinth, nu, E0=1.0)[source]

Calculate the relativistic synchrotron emission coefficient η_ν.

This is Dulk (1985) equation 40, which is an approximation assuming a power-law electron population. Arguments are:

b

Magnetic field strength in Gauss

ne

The density of electrons per cubic centimeter with energies greater than E0.

delta

The power-law index defining the energy distribution of the electron population, with n(E) ~ E^(-delta). The equation is valid for 2 <~ delta <~ 5.

sinth

The sine of the angle between the line of sight and the magnetic field direction. It’s not specified for what range of values the expressions work well.

nu

The frequency at which to calculate η, in Hz. The equation is valid for It’s not specified for what range of values the expressions work well.

E0

The minimum energy of electrons to consider, in MeV. Defaults to 1 so that these functions can be called identically to the gyrosynchrotron functions.

The return value is the emission coefficient (AKA “emissivity”), in units of erg s^-1 Hz^-1 cm^-3 sr^-1.

No complaints are raised if you attempt to use the equation outside of its range of validity.

pwkit.dulk_models.calc_synch_snu_ujy(b, ne, delta, sinth, width, elongation, dist, ghz, E0=1.0)[source]

Calculate a flux density from pure gyrosynchrotron emission.

This combines Dulk (1985) equations 40 and 41, which are fitting functions assuming a power-law electron population, with standard radiative transfer through a uniform medium. Arguments are:

b

Magnetic field strength in Gauss

ne

The density of electrons per cubic centimeter with energies greater than 10 keV.

delta

The power-law index defining the energy distribution of the electron population, with n(E) ~ E^(-delta). The equation is valid for 2 <~ delta <~ 5.

sinth

The sine of the angle between the line of sight and the magnetic field direction. It’s not specified for what range of values the expressions work well.

width

The characteristic cross-sectional width of the emitting region, in cm.

elongation

The the elongation of the emitting region; depth = width * elongation.

dist

The distance to the emitting region, in cm.

ghz

The frequencies at which to evaluate the spectrum, in GHz.

E0

The minimum energy of electrons to consider, in MeV. Defaults to 1 so that these functions can be called identically to the gyrosynchrotron functions.

The return value is the flux density in μJy. The arguments can be Numpy arrays.

No complaints are raised if you attempt to use the equations outside of their range of validity.

Helpers

calc_nu_b(b)

Calculate the cyclotron frequency in Hz given a magnetic field strength in Gauss.

calc_snu(eta, kappa, width, elongation, dist)

Calculate the flux density S_ν given a simple physical configuration.

pwkit.dulk_models.calc_nu_b(b)[source]

Calculate the cyclotron frequency in Hz given a magnetic field strength in Gauss.

This is in cycles per second not radians per second; i.e. there is a 2π in the denominator: ν_B = e B / (2π m_e c)

pwkit.dulk_models.calc_snu(eta, kappa, width, elongation, dist)[source]

Calculate the flux density S_ν given a simple physical configuration.

This is basic radiative transfer as per Dulk (1985) equations 5, 6, and 11.

eta

The emissivity, in units of erg s^-1 Hz^-1 cm^-3 sr^-1.

kappa

The absorption coefficient, in units of cm^-1.

width

The characteristic cross-sectional width of the emitting region, in cm.

elongation

The the elongation of the emitting region; depth = width * elongation.

dist

The distance to the emitting region, in cm.

The return value is the flux density, in units of erg s^-1 cm^-2 Hz^-1. The angular size of the source is taken to be (width / dist)**2.