From 0478a88558f75d3afc6ecfc3e1af232520cb2bc8 Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Sat, 30 Dec 2017 20:18:50 +0800 Subject: cluster/halo: Estimate halo radius ~ 0.33*R_vir (main cluster) --- fg21sim/configs/20-extragalactic.conf.spec | 5 +++-- fg21sim/extragalactic/clusters/halo.py | 2 +- fg21sim/extragalactic/clusters/helper.py | 23 ++++++++++++++++------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/fg21sim/configs/20-extragalactic.conf.spec b/fg21sim/configs/20-extragalactic.conf.spec index 69db5c8..7d52de4 100644 --- a/fg21sim/configs/20-extragalactic.conf.spec +++ b/fg21sim/configs/20-extragalactic.conf.spec @@ -149,8 +149,9 @@ [[halos]] # The turbulence is generally injected at the cluster center during # a merger. This option parameterize the turbulence injection scale - # to be a fraction of the virial radius of the (main) cluster. - f_lturb = float(default=0.5, min=0.1, max=1.0) + # to be a fraction of the virial radius of the (main) cluster, which + # is also used to determine the radio halo radius. + f_lturb = float(default=0.33, min=0.1, max=1.0) # The custom option to tune the turbulent acceleration timescale, which # controls the relativistic particle acceleration efficiencies. diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index 0b8446a..1d9c9aa 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -238,7 +238,7 @@ class RadioHalo: Unit: [kpc] """ r_halo = helper.radius_halo(self.M_main, self.M_sub, - self.z_merger) + self.z_merger, configs=self.configs) return r_halo @property diff --git a/fg21sim/extragalactic/clusters/helper.py b/fg21sim/extragalactic/clusters/helper.py index 2ce3e4a..cac6401 100644 --- a/fg21sim/extragalactic/clusters/helper.py +++ b/fg21sim/extragalactic/clusters/helper.py @@ -30,6 +30,10 @@ References Murgia et al. 2009, A&A, 499, 679 http://adsabs.harvard.edu/abs/2009A%26A...499..679M +.. [vazza2011] + Vazza et al. 2011, A&A, 529, A17 + http://adsabs.harvard.edu/abs/2011A%26A...529A..17V + .. [zandanel2014] Zandanel, Pfrommer & Prada 2014, MNRAS, 438, 124 http://adsabs.harvard.edu/abs/2014MNRAS.438..124Z @@ -81,16 +85,18 @@ def radius_virial(mass, z=0.0): return R_vir -def radius_halo(M_main, M_sub, z=0.0): +def radius_halo(M_main, M_sub, z=0.0, configs=CONFIGS): """ - Calculate the (predicted) radius of (giant) radio halo for a cluster. + Calculate the (predicted) radius of (giant) radio halo. NOTE ---- - It can be intuitively assumed that a merger will generate turbulences - within a region of size of the falling sub-cluster. And this - estimation can agree with the currently observed radio halos, which - generally have a angular diameter size ~2-7 [arcmin]. + The halo radius is estimated to be the same as the turbulence + injection scale, i.e.: + R_halo ≅ L ≅ R_vir / 3 + where R_vir the virial radius of the main cluster. + + Reference: [vazza2011],Sec.(3.6) Parameters ---------- @@ -107,7 +113,10 @@ def radius_halo(M_main, M_sub, z=0.0): Radius of the (simulated/predicted) giant radio halo Unit: [kpc] """ - R_halo = radius_virial(mass=M_sub, z=z) # [kpc] + # Turbulence injection scale factor + key = "extragalactic/halos/f_lturb" + f_lturb = configs.getn(key) + R_halo = f_lturb * radius_virial(mass=M_main, z=z) # [kpc] return R_halo -- cgit v1.2.2