Jets and Medium¶
Forward Shock Synchrotron¶
The forward shock drives a relativistic blast wave into the circumburst medium, accelerating electrons that emit synchrotron radiation. This is the dominant emission component for most GRB afterglows.
The sync_ssa_smooth model produces smooth broken power-law spectra with self-absorption, suitable for broadband modeling. For best accuracy, enable the radiative correction by passing eps_e, eps_b, and p_fwd to the Jet constructor — this accounts for the energy radiated away by electrons when computing the blast wave dynamics.
import numpy as np
from blastwave import Jet, TopHat, ForwardJetRes
P = dict(
Eiso=1e52, lf=300, theta_c=0.1,
n0=1.0, A=0.0, eps_e=0.1, eps_b=0.01, p=2.2,
theta_v=0.0, d=474.33, z=0.1,
)
t = np.geomspace(10, 1e8, 200) # seconds
jet = Jet(
TopHat(0.1, 1e52, lf0=300),
0.0, 1.0, # nwind, nism
tmin=10.0, tmax=1e10,
grid=ForwardJetRes(0.1, 129),
spread=True,
eps_e=0.1, eps_b=0.01, p_fwd=2.2, # radiative correction
)
flux_radio = jet.FluxDensity(t, 1e9, P, model="sync_ssa_smooth") # 1 GHz
flux_optical = jet.FluxDensity(t, 4.56e14, P, model="sync_ssa_smooth")
flux_xray = jet.FluxDensity(t, 2.4e17, P, model="sync_ssa_smooth") # 1 keV
Characteristic features of the afterglow light curve:
- X-ray: Decays as a power law from early times, since \(\nu_X > \nu_c > \nu_m\)
- Optical: Peaks at \(\sim 10^{-3}\) days as \(\nu_m\) passes through the band
- Radio: Rises over days to weeks as the self-absorption frequency \(\nu_a\) drops below the observing band
- Jet break: Visible as a steepening at \(\sim 10\) days when the jet edge becomes visible
Script: examples/showcase_jets.py
Jet Structure¶
blastwave supports three angular energy profiles, set through the first argument to Jet():
| Profile | Constructor | Energy profile \(E(\theta)\) |
|---|---|---|
| TopHat | TopHat(theta_c, E_iso, lf0) |
Uniform inside \(\theta_c\), zero outside |
| Gaussian | Gaussian(theta_c, E_iso, lf0) |
\(\propto \exp(-\theta^2 / 2\theta_c^2)\) |
| PowerLaw | PowerLaw(theta_c, E_iso, lf0, s) |
\(\propto (1 + (\theta/\theta_c)^2)^{-s/2}\) |
The jet structure primarily matters for off-axis observers (\(\theta_v > \theta_c\)), where the wing emission from structured jets produces smoother, brighter light curves than the sharp-edged tophat. On-axis, all three profiles produce nearly identical light curves since the core dominates the emission.
from blastwave import FluxDensity_tophat, FluxDensity_gaussian, FluxDensity_powerlaw
P_off = {**P, 'theta_v': np.radians(15)}
flux_th = FluxDensity_tophat(t, 2.4e17, P_off, spread=True, model="sync_ssa_smooth")
flux_ga = FluxDensity_gaussian(t, 2.4e17, P_off, spread=True, model="sync_ssa_smooth")
P_pl = {**P_off, 's': 4}
flux_pl = FluxDensity_powerlaw(t, 2.4e17, P_pl, spread=True, model="sync_ssa_smooth")
Off-axis, the structured jets (Gaussian, PowerLaw) show earlier and brighter peaks than the TopHat, because their gradual energy wings provide partial illumination at all viewing angles. The TopHat shows a sharp rise only when the jet decelerates enough for the beaming cone to reach the observer.
Script: examples/showcase_jets.py
Circumburst Medium¶
The ambient density profile is controlled by nism (constant ISM), nwind (wind-like \(\propto r^{-k}\)), and the power-law index k:
| Medium | Parameters | Density profile |
|---|---|---|
| ISM | nism=1.0, nwind=0.0, k=0 |
\(n = n_0\) = const |
| Wind | nism=0.0, nwind=A, k=2 |
\(n = A \cdot (r / 10^{17}\,\mathrm{cm})^{-2}\) |
| Hybrid | nism=n_0, nwind=A, k=2 |
\(n = A \cdot (r/10^{17})^{-2} + n_0\) |
The wind parameter A relates to the standard mass-loss parameter \(A_*\) through the density normalization at \(r = 10^{17}\) cm. For \(A_* = 0.1\), use A=2.99.
# ISM environment
jet_ism = Jet(TopHat(0.1, 1e52, lf0=300), 0.0, 1.0,
grid=ForwardJetRes(0.1, 129), spread=False, k=0.0,
eps_e=0.1, eps_b=0.01, p_fwd=2.2)
# Wind environment (A*=0.1)
jet_wind = Jet(TopHat(0.1, 1e52, lf0=300), 2.99, 0.0,
grid=ForwardJetRes(0.1, 129), spread=False, k=2.0,
eps_e=0.1, eps_b=0.01, p_fwd=2.2)
Wind environments produce earlier and brighter radio emission — the higher circumburst density at small radii boosts early-time synchrotron. X-ray light curves decay faster in wind media due to the falling density profile, which reduces the energy injection from swept-up mass.
Script: examples/showcase_jets.py