diff options
Diffstat (limited to 'fg21sim/extragalactic/clusters/halo.py')
-rw-r--r-- | fg21sim/extragalactic/clusters/halo.py | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index db5980d..fbf1cb2 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -384,7 +384,7 @@ class RadioHalo1M: return np.sqrt(v2_turb) @lru_cache() - def tau_acceleration(self, t, is_end=False): + def tau_acceleration(self, t, has_merger=True): """ Calculate the electron acceleration timescale due to turbulent waves, which describes the turbulent acceleration efficiency. @@ -425,11 +425,12 @@ class RadioHalo1M: Parameters ---------- t : float - The beginning time or ending time (if ``is_end=True``) of the merger. + The beginning or ending time of the merger. Unit: [Gyr] - is_end : bool, optional - Whether the given time ``t`` is the ending time of the merger. - Default: False + has_merger : bool, optional + If ``False``, calculate the velocity dispersion of the base + turbulence, i.e., without a merger. + Default: True Returns ------- @@ -437,12 +438,12 @@ class RadioHalo1M: The acceleration timescale of the merger. Unit: [Gyr] """ - self._validate_time(t, include_end=is_end) + self._validate_time(t) - if is_end: - v_t = self.velocity_turb_base(t) # [km/s] - else: + if has_merger: v_t = self.velocity_turb(t) # [km/s] + else: + v_t = self.velocity_turb_base(t) # [km/s] if np.isclose(v_t, 0): return np.inf @@ -674,19 +675,22 @@ class RadioHalo1M: Diffusion coefficients Unit: [Gyr^-1] """ - tau_acc = tau_max = 10.0 # [Gyr] + tau_max = 10.0 # [Gyr] + if self._is_turb_active(t): tt = self._merger_time(t) - is_end = False + has_merger = True else: tt = self._merger_end_time(t) - is_end = True + has_merger = False + if self._merger_disabled: + has_merger = False - tau_acc = self.tau_acceleration(tt, is_end) - if tau_acc > tau_max: - tau_acc = tau_max + tau = self.tau_acceleration(tt, has_merger=has_merger) + if tau > tau_max: + tau = tau_max - return np.square(gamma) / (4 * tau_acc) # [Gyr^-1] + return np.square(gamma) / (4 * tau) # [Gyr^-1] def fp_advection(self, gamma, t): """ |