aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/extragalactic/clusters/helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'fg21sim/extragalactic/clusters/helper.py')
-rw-r--r--fg21sim/extragalactic/clusters/helper.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/fg21sim/extragalactic/clusters/helper.py b/fg21sim/extragalactic/clusters/helper.py
index cac6401..10c4f12 100644
--- a/fg21sim/extragalactic/clusters/helper.py
+++ b/fg21sim/extragalactic/clusters/helper.py
@@ -360,6 +360,29 @@ def time_crossing(M_main, M_sub, z=0.0):
return time
+def time_turbulence(M_main, M_sub, z=0.0, configs=CONFIGS):
+ """
+ The timescale that the compressive turbulence persists, which is
+ estimated as:
+ τ_turb ≅ 2*d / v_impact,
+ where d ≅ L ≅ R_vir / 3,
+ and L is also the turbulence injection scale.
+ During this timescale, the merger-induced turbulence is regarded
+ to accelerate the relativistic electrons effectively.
+
+ Unit: [Gyr]
+ """
+ # Turbulence injection scale factor
+ key = "extragalactic/halos/f_lturb"
+ f_lturb = configs.getn(key)
+ R_vir = radius_virial(M_main, z) # [kpc]
+ distance = 2*R_vir * f_lturb
+ vi = velocity_impact(M_main, M_sub, z) # [km/s]
+ uconv = AUC.kpc2km * AUC.s2Gyr # [s kpc/km] => [Gyr]
+ time = uconv * distance / vi # [Gyr]
+ return time
+
+
def draw_halo(radius, nr=2.0, felong=None, rotation=None):
"""
Draw the template image of one halo, which is used to simulate