diff options
author | Aaron LI <aly@aaronly.me> | 2019-02-16 11:24:04 +0800 |
---|---|---|
committer | Aaron LI <aly@aaronly.me> | 2019-02-16 11:24:04 +0800 |
commit | 0de191f82ffbb981501da4de96b83ad01971a4c2 (patch) | |
tree | 16681e3b104934bdd5674a386d24ac3f17318c38 | |
parent | 0da3d12a40ead2c2553e425043cfc903f19de0fb (diff) | |
download | fg21sim-0de191f82ffbb981501da4de96b83ad01971a4c2.tar.bz2 |
clusters/halo: Improve the halo radius calculation
-rw-r--r-- | fg21sim/extragalactic/clusters/halo.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index 6ecdffa..a21caca 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -26,6 +26,10 @@ References Cassano, Brunetti & Setti, 2006, MNRAS, 369, 1577 http://adsabs.harvard.edu/abs/2006MNRAS.369.1577C +.. [cassano2007] + Cassano et al. 2007, MNRAS, 378, 1565 + http://adsabs.harvard.edu/abs/2007MNRAS.378.1565C + .. [cassano2012] Cassano et al. 2012, A&A, 548, A100 http://adsabs.harvard.edu/abs/2012A%26A...548A.100C @@ -205,9 +209,22 @@ class RadioHalo1M: def radius(self): """ The estimated radius of the simulated radio halo. + + It is known that the halo radius scales non-linearly as the hosting + cluster, breaking the self-similiarity, which may be caused by the + magnetic field and the releativistic electron distributions. So + make the halo radius scales with the magnetic field. + + Reference: Ref.[cassano2007],Sec.4 + Unit: [kpc] """ - return self.f_radius * self.radius_turb(self.t_merger) + r = self.radius_turb(self.t_merger) + B = helper.magnetic_field(mass=self.M_obs, z=self.z_obs, + eta_b=self.eta_b, kT_out=self.kT_out) + B0 = helper.magnetic_field(mass=1e15, z=0, + eta_b=self.eta_b, kT_out=self.kT_out) + return r * self.f_radius * (B/B0) @lru_cache() def radius_strip(self, t_merger): @@ -771,7 +788,11 @@ class RadioHaloAM(RadioHalo1M): The halo radius estimated by using the maximum turbulence radius. Unit: [kpc] """ - return self.f_radius * self.radius_turb_max + B = helper.magnetic_field(mass=self.M_obs, z=self.z_obs, + eta_b=self.eta_b, kT_out=self.kT_out) + B0 = helper.magnetic_field(mass=1e15, z=0, + eta_b=self.eta_b, kT_out=self.kT_out) + return self.f_radius * self.radius_turb_max * (B/B0) @property @lru_cache() |