aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/extragalactic
diff options
context:
space:
mode:
authorAaron LI <aly@aaronly.me>2018-10-30 21:30:30 +0800
committerAaron LI <aly@aaronly.me>2018-10-30 22:04:27 +0800
commit00fccbb7e2491741f82e6603a37fe1a12af74c95 (patch)
treed40f6544629739fd31c881f7ea0f358cfab48750 /fg21sim/extragalactic
parent802985804b795d97aacb7b701fd0aba02cff31f8 (diff)
downloadfg21sim-00fccbb7e2491741f82e6603a37fe1a12af74c95.tar.bz2
clusters/halo: Update calculations of injection and halo radius
Diffstat (limited to 'fg21sim/extragalactic')
-rw-r--r--fg21sim/extragalactic/clusters/halo.py14
-rw-r--r--fg21sim/extragalactic/clusters/helper.py35
2 files changed, 13 insertions, 36 deletions
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):
@@ -363,6 +363,18 @@ class RadioHalo:
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