aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fg21sim/configs/config.spec4
-rw-r--r--fg21sim/extragalactic/clusters/halo.py18
2 files changed, 22 insertions, 0 deletions
diff --git a/fg21sim/configs/config.spec b/fg21sim/configs/config.spec
index adc4134..f68b2e1 100644
--- a/fg21sim/configs/config.spec
+++ b/fg21sim/configs/config.spec
@@ -398,6 +398,10 @@ stream = option("stderr", "stdout", "", default="stderr")
# Electron injection, which is assumed to have a constant injection
# rate and a power-law spectrum.
injection_index = float(default=2.3, min=2.1, max=3.0)
+ # The scaling index of the diffusion coefficient (D_γγ) w.r.t. the
+ # mass of the main cluster.
+ mass_index = float(default=0, min=0, max=2)
+
# Minimum and maximum Lorentz factor (i.e., energy) of the relativistic
# electron spectrum.
diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py
index 4e87f3f..56c8622 100644
--- a/fg21sim/extragalactic/clusters/halo.py
+++ b/fg21sim/extragalactic/clusters/halo.py
@@ -154,6 +154,7 @@ class RadioHalo1M:
self.eta_turb = configs.getn(comp+"/eta_turb")
self.eta_e = configs.getn(comp+"/eta_e")
self.x_cr = configs.getn(comp+"/x_cr")
+ self.mass_index = configs.getn(comp+"/mass_index")
self.gamma_min = configs.getn(comp+"/gamma_min")
self.gamma_max = configs.getn(comp+"/gamma_max")
self.gamma_np = configs.getn(comp+"/gamma_np")
@@ -293,6 +294,18 @@ class RadioHalo1M:
τ'_acc = γ^2 / (4 * D'_γγ)
= X_cr * c_s^3 / (8 * ζ * k_L * v_t^4)
+ Previous studies show that more massive clusters are more efficient
+ to accelerate electrons to be radio bright. To further account for
+ this scaling relation:
+ D_γγ = D'_γγ * f_m * (M_main / 1e15)^m
+ where:
+ m: scaling index
+ f_m: normalization
+ Therefore, the final acceleration timescale is:
+ τ_acc = τ'_acc * (M_main / 1e15)^(-m) / f_m
+ = X_cr * c_s^3 * (M_main/1e15)^(-m) / (8*f_acc * k_L * v_t^4)
+ with: f_acc = f_m * ζ
+
WARNING
-------
Tests show that a very large acceleration timescale (e.g.,
@@ -335,6 +348,11 @@ class RadioHalo1M:
v_t = self._velocity_turb(t_merger) # [km/s]
tau = self.x_cr * cs**3 / (8*k_L * v_t**4)
tau *= AUC.s2Gyr * AUC.kpc2km # [s kpc/km] -> [Gyr]
+
+ # Mass scaling
+ M_main = self.mass_main(t)
+ f_mass = (M_main / 1e15) ** (-self.mass_index)
+ tau *= f_mass
tau /= self.f_acc # tune factor (folded with "zeta_ins")
# Impose the maximum acceleration timescale