Temporal Evolution¶
We provide two special cases of temporal evolution for electrons. These are built around cool_onestep()
.
Although the function itself fast, temporal evolution requires many iterations using it.
But, python is very slow and iterations requiring python operations can introduce huge performance hit.
Source code for these avialable in flaremodel/temporal.py for guidance.
Note
If dt
is not small enough, these will produce garbage results. Need to add a warning mechanism when it is the case (TBD).
- class vdLEdist(g_min=1.0, g_max=100000.0, g_steps=50, sync_cool=True)¶
Numerical simulation of adiabatic cooling for a spherical source. Gamma array can be obtained with vdLEdist._gamma.
- Parameters
g_min (float, default=1) – Minimum gamma of the grid
g_max (float, default=1e5) – Maximum gamma of the grid
g_steps (float, default=50) – Gamma steps per decade in logspace
sync_cool (boolean, default=True) – Whether to enable/disable synchrotron cooling
- get_ngamma(ts, N_e, B, R, exp_b, dt)¶
Return electron distribution for array of ts
- Parameters
ts (np.ndarray) – 1-D time stamps to request electron distribution [s]
N_e (float) – Initial number of electrons
B (float) – Initial magnetic field [G]
R (float) – Initial size of the “blob” [cm]
exp_b (float) – Fixed expansion speed in units of c
dt (float) – Time resolution [s]
- Returns
Rs (np.ndarray) – 1-D array of R(ts) [cm]
Bs (np.ndarray) – 1-D array of B(ts) with B(R)~R^-2 [G]
Ne_t (np.ndarray) – 2-D array Ne_t(ts, gamma)
- class GaussianInjectionEdist(sig_inj, t_peak_inj, t_esc=1e+99, g_min=1, g_max=100000.0, g_steps=50)¶
Numerical simulation of particle injection with Gaussian profile including synchrotron cooling and particle escape. Gamma array can be obtained with GaussianInjectionEdist._gamma.
- Parameters
sig_inj (float) – Sigma of the particle injection profile [s]
t_peak_inj (float) – Peak time of the injection profile [s]
g_min (float, default=1) – Minimum gamma of the grid
g_max (float, default=1e5) – Maximum gamma of the grid
g_steps (float, default=50) – Gamma steps per decade in logspace
- get_ngamma(ts, N_e, B, dt)¶
Return electron distribution for array of ts
- Parameters
ts (np.ndarray) – 1-D time stamps to request electron distribution [s]
N_e (float) – Total number of injected electrons
B (float) – Initial magnetic field [G]
dt (float) – Time resolution [s]
- Returns
Ne_t – 2-D array Ne_t(ts, gamma)
- Return type
np.ndarray