Magnetic field models for AGN jets

The module gammaALPs.bfields.jet.Bjet models the toroidal (perpendicular to the jet axis) magnetic field as a coherent field and more details can be found in, e.g., [Meyer2014]. The B field decreases with a power-law type behavior with increasing distance from the black hole,

\[B^\mathrm{jet}(r) = B^\mathrm{jet}_0 \left(\frac{r}{r_0}\right)^{\alpha}\]

Assuming equipartition between the magnetic and particle energies, the electron density also follows a power law with an index \(2\alpha\) for \(\alpha < 0\). The electron density is modeled with the NelJet and is further described in Electron density models for AGN jets.

The magnetic field is supposed to be coherent, so \(\psi = 0\) (see Photon-ALP conversion probability) is assumed over the entire jet region in the simplest case. A new magnetic field can be calculated with gammaALPs.bfields.jet.Bjet.new_Bn(). The B-field array calculated with gammaALPs.bfields.jet.Bjet.new_Bn() can be passed to the static method gammaALPs.bfields.jet.Bjet.transversal_component_helical(), to modify it to match a helical magnetic field structure following [ClausenBrown2011].

The above equations hold in the co-moving frame of the jet. The photon energy \(E^\prime\) in this frame is related to the energy \(E\) in the laboratory frame through the Doppler factor, \(E^\prime = E / \delta_\mathrm{D}\), where

\[\delta_\mathrm{D} = [\Gamma_\mathrm{L}( 1 - \beta_\mathrm{j}\cos\theta_\mathrm{obs})]^{-1}\]

with the relativistic Lorentz and beta factors \(\Gamma_\mathrm{L},\beta_\mathrm{j}\) of the bulk plasma movement, respectively, and \(\theta_\mathrm{obs}\) is the angle between the jet axis and the line of sight. The bulk Lorentz factor and \(\theta_\mathrm{obs}\) can be set with attributes of the Source class, bLorentz and theta_obs.

A more sophisticated model for the AGN jet magnetic field model is implemented in the gammaALPs.bfields.jet.BjetHelicalTangled class in which a poloidal magnetic field transforms into a toroidal component. The class also includes the possibility that a fraction of the magnetic field energy is carried in a tangled component. More details on this model are provided in [Davies2021].

Reference / API

class gammaALPs.bfields.jet.Bjet(B0, r0, alpha)[source]

Bases: object

Class to calculate magnetic field in AGN Jet assuming a toroidal field

property B0
__init__(B0, r0, alpha)[source]

Initialize the class

Parameters:
  • B0 (float) – B field strength in G

  • r0 (float) – radius where B field is equal to B0 in pc

  • alpha (float) – power-law index of distance dependence of B field

property alpha
new_Bn(z, psi=0.7853981633974483)[source]

Calculate the magnetic field as function of distance

Parameters:
  • z (array-like) – n-dim array with distance from r0 in pc

  • psi (float) – angle between transversal magnetic field and x2 direction. Default: pi/4

Returns:

B, Psi – N-dim array with field strength along line of sight N-dim array with psi angles between photon polarization states and jet B field

Return type:

tuple with numpy.ndarray

property r0
static transversal_component_helical(B0, phi, theta_jet=3.0, theta_obs=0.0)[source]

compute Jet magnetic field along line of sight that forms observation angle theta_obs with jet axis. Model assumes the helical jet structure of Clausen-Brown, E., Lyutikov, M., and Kharb, P. (2011); arXiv:1101.5149

Parameters:
  • B0 (array-like) – N-dim array with magnetic field strength along jet axis

  • phi (float) – phi angle in degrees along which photons propagate along jet (in cylindrical jet geometry)

  • theta_jet (float) – jet opening angle in degrees

  • theta_obs (float) – angle between jet axis and line of sight in degrees

Returns:

Btrans, Psi – N-dim array with field strength along line of sight N-dim array with psi angles between photon polarization states and jet B field

Return type:

tuple with numpy.ndarray

class gammaALPs.bfields.jet.BjetHelicalTangled(ft, r_T, Bt_exp, B0, r0, gmax, gmin, rvhe, rjet, alpha, l_tcor, jwf, jwf_dist, tseed, rem)[source]

Bases: object

Class to calculate magnetic field in AGN Jet assuming a two component field:
  1. A helical component transforming from poloidal to toroidal

  2. A tangled component

property B0
property Bt_exp
__init__(ft, r_T, Bt_exp, B0, r0, gmax, gmin, rvhe, rjet, alpha, l_tcor, jwf, jwf_dist, tseed, rem)[source]

Initialize the class

Parameters:
  • ft (float) – fraction of magnetic field energy density in tangled field

  • r_T (float) – radius at which helical field becomes toroidal in pc

  • Bt_exp (float) – exponent of the transverse component of the helical field at r<=r_T. i.e. sin(pitch angle) ~ r^Bt_exp while r<r_T and pitch angle = pi/2 at r=r_T

  • B0 (float) – B-field strength in G

  • r0 (float) – radius where B field is equal to b0 in pc

  • gmax (float) – jet lorenz factor at rvhe

  • gmin (float) – jet lorenz factor at rjet

  • rvhe (float) – distance of gamma-ray emission region from BH in pc

  • rjet (float) – jet length in pc

  • rem (float) – distance of gamma-ray emission region from BH if different from large-scale jet transition region

  • alpha (float) – power-law index of electron energy distribution function

  • l_tcor (float) – tangled field coherence average length in pc

  • jwf (float) – jet width factor used when calculating l_tcor = jwf*jetwidth

  • jwf_dist (string) – type of distribution for jet width factors (jwf) when calculating l_tcor = jwf*jetwidth

  • tseed (float) – seed for random tangled domains

property alpha
property ft
get_jet_props_gen(z, tdoms_done=False)[source]

Calculate the magnetic field as function of distance in the jet frame

Parameters:

z (array-like) – n-dim array with distance from BH in pc

Returns:

B, Psi – N-dim array with field strength in G along line of sight N-dim array with psi angles between photon polarization states and jet B field

Return type:

tuple with numpy.ndarray

property gmax
property gmin
jet_bfield_scaled(rs, rvhe, r0, b0)[source]

Function to get jet B-field strength. The function is an analytic approximation, defined by the constants, to the shape of the B-field vs. r from PC Jet model, scaled to rvhe. Strength scaled to r0 and B0.

jet_bfield_scaled_old(rs, r0, b0)[source]

Function to get jet B-field strength. Shape of function (defined by the constants) from PC Jet model, scaled to r0 and B0.

jet_gammas_scaled(rs, r0, g0, rjet)[source]

Function to get jet lorentz factors. The shape of the gammas vs. r from PC Jet model, scaled to r0, g0 and rjet. Jet accelerates in the parabolic base (up to rvhe), then logarithmically decelerates in the conical jet.

jet_gammas_scaled_gg(rs, rvhe, rjet, gmin, gmax)[source]

Function to get jet lorentz factors. The shape of the gammas vs. r from PC Jet model, scaled to r0, gmin, gmax and rjet. Jet accelerates in the parabolic base (up to rvhe), then logarithmically decelerates in the conical jet.

property jwf
property jwf_dist
property l_tcor
property newbounds
property r0
property r_T
property rem
property rjet
property rvhe
property tdoms
property tphis
property trerun
property tseed
property tthes