From 00fccbb7e2491741f82e6603a37fe1a12af74c95 Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Tue, 30 Oct 2018 21:30:30 +0800 Subject: clusters/halo: Update calculations of injection and halo radius --- fg21sim/extragalactic/clusters/halo.py | 14 ++++++++++++- fg21sim/extragalactic/clusters/helper.py | 35 -------------------------------- 2 files changed, 13 insertions(+), 36 deletions(-) (limited to 'fg21sim/extragalactic/clusters') diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index eac9501..baa1a36 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -234,7 +234,7 @@ class RadioHalo: The estimated radius for the simulated radio halo. Unit: [kpc] """ - return helper.radius_halo(self.M_obs, self.z_obs, configs=self.configs) + return self.injection_radius @property def angular_radius(self): @@ -362,6 +362,18 @@ class RadioHalo: tau = tau_max return tau + @property + @lru_cache + def injection_radius(self): + """ + The radius of the turbulence injection regions, and then the + injection scale: L_turb ~= 2*R_turb. + Unit: [kpc] + """ + rs = helper.radius_stripping(self.M_main, self.M_sub, self.z_merger, + configs=self.configs) # [kpc] + return self.f_lturb * rs + @property @lru_cache() def injection_rate(self): diff --git a/fg21sim/extragalactic/clusters/helper.py b/fg21sim/extragalactic/clusters/helper.py index ecbb866..96800e4 100644 --- a/fg21sim/extragalactic/clusters/helper.py +++ b/fg21sim/extragalactic/clusters/helper.py @@ -129,41 +129,6 @@ def radius_virial(mass, z=0.0): return R_vir * AUC.cm2kpc # [kpc] -def radius_halo(mass, z=0.0, configs=CONFIGS): - """ - Estimate the radius of (giant) radio halo. - - NOTE - ---- - The halo radius is estimated to be the same as the turbulence - injection scale, i.e.: - R_halo ≅ L_turb ≅ R_vir / 3 - where R_vir the virial radius of the merged (observed) cluster. - - Reference: [vazza2011],Sec.(3.6) - - Parameters - ---------- - mass : float, `~numpy.ndarray` - Cluster virial mass. - Unit: [Msun] - z : float, `~numpy.ndarray`, optional - Redshift - Default: 0.0 (i.e., present day) - - Returns - ------- - R_halo : float, `~numpy.ndarray` - Radius of the (simulated/predicted) giant radio halo - Unit: [kpc] - """ - # Turbulence injection scale factor - key = "extragalactic/halos/f_lturb" - f_lturb = configs.getn(key) - R_halo = f_lturb * radius_virial(mass=mass, z=z) # [kpc] - return R_halo - - def radius_stripping(M_main, M_sub, z, configs=CONFIGS): """ Calculate the stripping radius of the in-falling sub-cluster, which -- cgit v1.2.2