aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/extragalactic/clusters/helper.py
diff options
context:
space:
mode:
authorAaron LI <aly@aaronly.me>2017-12-30 20:21:48 +0800
committerAaron LI <aly@aaronly.me>2017-12-30 20:21:48 +0800
commitb831796a7482e6545c303d8a8fbb60719fd4b807 (patch)
treed5682bdab3f1c22db77d866a79e2b3dc7fc2e2d2 /fg21sim/extragalactic/clusters/helper.py
parent0478a88558f75d3afc6ecfc3e1af232520cb2bc8 (diff)
downloadfg21sim-b831796a7482e6545c303d8a8fbb60719fd4b807.tar.bz2
clusters/halo: Estimate turbulence acceleration w.r.t. injection scale
The turbulence injection scale ~ halo size
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