diff options
author | Aaron LI <aly@aaronly.me> | 2019-01-27 17:19:09 +0800 |
---|---|---|
committer | Aaron LI <aly@aaronly.me> | 2019-01-27 17:19:09 +0800 |
commit | 51d9937db622315727486d0bb8164b6890e9beba (patch) | |
tree | 8738676e0461334d94036b113f470315f55cbcbf | |
parent | 8f3c8d56cb31cf84ff3bebe60af5676cc9431fbd (diff) | |
download | fg21sim-51d9937db622315727486d0bb8164b6890e9beba.tar.bz2 |
clusters/halo: Rewrite is_genuine() to be calc_acc_factor()
Calculate the bolometric emissivity instead of the emissivity at a
certain frequency. This should capture the acceleration effect more
effectively. In addition, remove the now obsolete config options
"fiducial_freq" and "fiducial_factor".
-rw-r--r-- | fg21sim/configs/config.spec | 7 | ||||
-rw-r--r-- | fg21sim/extragalactic/clusters/halo.py | 26 |
2 files changed, 10 insertions, 23 deletions
diff --git a/fg21sim/configs/config.spec b/fg21sim/configs/config.spec index 3d6bca8..17aa07b 100644 --- a/fg21sim/configs/config.spec +++ b/fg21sim/configs/config.spec @@ -431,13 +431,6 @@ stream = option("stderr", "stdout", "", default="stderr") # Unit: [Gyr] time_init = float(default=1, min=0) - # The frequency and factor used to determine the existence of the radio - # halo, i.e., the emissivity at ``fiducial_freq`` is at least - # ``fiducial_factor`` times the fiducial value. - # Unit: [MHz] - fiducial_freq = float(default=150) - fiducial_factor = float(default=3, min=1) - # Parameters of the beta-model that is used to describe the gas density # profile of the cluster. # The fraction of the core radius to cluster's virial radius. diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index d0bce9e..4b40e35 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -164,8 +164,6 @@ class RadioHalo1M: self.time_step = configs.getn(comp+"/time_step") self.time_init = configs.getn(comp+"/time_init") self.injection_index = configs.getn(comp+"/injection_index") - self.fiducial_freq = configs.getn(comp+"/fiducial_freq") - self.fiducial_factor = configs.getn(comp+"/fiducial_factor") self.f_rc = configs.getn(comp+"/f_rc") self.beta = configs.getn(comp+"/beta") @@ -492,36 +490,32 @@ class RadioHalo1M: return n_e - def is_genuine(self, n_e): + def calc_acc_factor(self, n_e): """ - Check whether the radio halo is genuine/observable by comparing the - emissivity to the corresponding fiducial value, which is calculated - from the fiducial electron spectrum derived with turbulent - acceleration turned off. + Calculate the turbulence acceleration factor, which is estimated + as the ratio of the bolometric emissivity between the accelerated + electron spectrum and the fiducial electron spectrum derived with + turbulent acceleration turned off. Parameters ---------- n_e : float 1D `~numpy.ndarray` - The finally derived electron spectrum. + The derived (accelerated) electron spectrum. Unit: [cm^-3] Returns ------- - genuine : bool - Whether the radio halo is genuine? factor : float - Acceleration factor of the flux. + Acceleration factor of the bolometric emissivity. """ - # NOTE: The emissivity is linearly proportional to 'B'. haloem = HaloEmission(gamma=self.gamma, n_e=n_e, B=1) - em = haloem.calc_emissivity(self.fiducial_freq) + em = haloem.calc_emissivity_bolo() ne_fiducial = self.calc_electron_spectrum(fiducial=True) haloem.n_e = ne_fiducial - em_fiducial = haloem.calc_emissivity(self.fiducial_freq) + em_fiducial = haloem.calc_emissivity_bolo() - factor = em / em_fiducial - return (factor >= self.fiducial_factor, factor) + return em / em_fiducial def fp_injection(self, gamma, t=None): """ |