aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/extragalactic/clusters
diff options
context:
space:
mode:
authorAaron LI <aly@aaronly.me>2019-01-25 15:43:22 +0800
committerAaron LI <aly@aaronly.me>2019-01-25 15:43:22 +0800
commit427b12bb9b4f5b9923494efaf33c83cb213ab3d6 (patch)
treefd7216e35d172c331ba4a91710275b2e69e05a37 /fg21sim/extragalactic/clusters
parent929076afedf121aee0778ccd7efe013b8fb68db1 (diff)
downloadfg21sim-427b12bb9b4f5b9923494efaf33c83cb213ab3d6.tar.bz2
clusters/halo: Clean up tau_acceleration() method
Diffstat (limited to 'fg21sim/extragalactic/clusters')
-rw-r--r--fg21sim/extragalactic/clusters/halo.py27
1 files changed, 13 insertions, 14 deletions
diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py
index 68abfad..81b9c0d 100644
--- a/fg21sim/extragalactic/clusters/halo.py
+++ b/fg21sim/extragalactic/clusters/halo.py
@@ -277,27 +277,26 @@ class RadioHalo1M:
"""
Calculate the electron acceleration timescale due to turbulent
waves, which describes the turbulent acceleration efficiency.
- The turbulent acceleration timescale has order of ~0.1 Gyr.
Here we consider the turbulence cascade mode through scattering
in the high-β ICM mediated by plasma instabilities (firehose,
mirror) rather than Coulomb scattering. Therefore, the fast modes
damp by TTD (transit time damping) on relativistic rather than
thermal particles, and the diffusion coefficient is given by:
- D_pp = (4π * p^2 * ζ / X_cr / L_turb) * <v_turb^2>^2 / c_s^3
+ D'_γγ = 2 * γ^2 * ζ * k_L * v_t^4 / (c_s^3 * X_cr)
where:
- ζ: efficiency factor for the effectiveness of plasma instabilities
+ ζ: factor describing the effectiveness of plasma instabilities
X_cr: relative energy density of cosmic rays
- L_turb: turbulence injection scale
- v_turb: turbulence velocity dispersion
+ k_L (= 2π/L): turbulence injection scale
+ v_t: turbulence velocity dispersion
c_s: sound speed
- Thus the acceleration timescale is:
- τ_acc = p^2 / (4*D_pp)
- = (X_cr * c_s^3 * L_turb) / (16π * ζ * <v_turb^2>^2)
+ Hence, the acceleration timescale is:
+ τ'_acc = γ^2 / (4 * D'_γγ)
+ = X_cr * c_s^3 / (8 * ζ * k_L * v_t^4)
WARNING
-------
- Current test shows that a very large acceleration timescale (e.g.,
+ Tests show that a very large acceleration timescale (e.g.,
1000 or even larger) will cause problems (maybe due to some
limitations within the current calculation scheme), for example,
the energy losses don't seem to have effect in such cases, so the
@@ -331,12 +330,12 @@ class RadioHalo1M:
return tau_max
t_merger = self._merger_time(t)
- L_turb = 2 * self.radius_turbulence(t_merger) # [kpc]
+ L = 2 * self.radius_turbulence(t_merger) # [kpc]
+ k_L = 2 * np.pi / L_turb
cs = helper.speed_sound(self.kT(t_merger)) # [km/s]
- v_turb = self._velocity_turb(t_merger) # [km/s]
- tau = (self.x_cr * cs**3 * L_turb /
- (16*np.pi * self.zeta_ins * v_turb**4)) # [s kpc/km]
- tau *= AUC.s2Gyr * AUC.kpc2km # [Gyr]
+ v_t = self._velocity_turb(t_merger) # [km/s]
+ tau = self.x_cr * cs**3 / (8*k_L * self.zeta_ins * v_t**4)
+ tau *= AUC.s2Gyr * AUC.kpc2km # [s kpc/km] -> [Gyr]
tau *= self.f_acc # custom tune parameter
# Impose the maximum acceleration timescale