diff options
author | Aaron LI <aly@aaronly.me> | 2019-02-21 21:43:36 +0800 |
---|---|---|
committer | Aaron LI <aly@aaronly.me> | 2019-02-21 21:46:32 +0800 |
commit | 1e1f573e2f4910471a9f7b92e9ff12de48d4c0db (patch) | |
tree | b349ce26cfa22bf0d5e6950416a6fc308ca4fd8f /fg21sim/extragalactic/clusters/halo.py | |
parent | 8e563e91d8b0dc239e124fb7e88d84c1c8506b67 (diff) | |
download | fg21sim-1e1f573e2f4910471a9f7b92e9ff12de48d4c0db.tar.bz2 |
clusters/halo: Add velocity_turb_base() method
This method calculates the velocity dispersion of the base turbulence,
i.e., the turbulence existing in a relaxed system without the merger
injection.
Add new configuration option 'extragalactic/halos/x_turb' to
parameterize the energy fraction of the base turbulence w.r.t. the ICM
thernal energy.
Diffstat (limited to 'fg21sim/extragalactic/clusters/halo.py')
-rw-r--r-- | fg21sim/extragalactic/clusters/halo.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index 5eda8da..214aefe 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -57,6 +57,10 @@ References .. [sarazin1999] Sarazin 1999, ApJ, 520, 529 http://adsabs.harvard.edu/abs/1999ApJ...520..529S + +.. [vazza2011] + Vazza et al. 2011, A&A, 529, A17 + http://adsabs.harvard.edu/abs/2011A%26A...529A..17V """ import logging @@ -155,6 +159,7 @@ class RadioHalo1M: self.configs = configs self.f_acc = configs.getn(sec+"/f_acc") self.f_radius = configs.getn(sec+"/f_radius") + self.x_turb = configs.getn(sec+"/x_turb") self.eta_turb = configs.getn(sec+"/eta_turb") self.eta_e = configs.getn(sec+"/eta_e") self.x_cr = configs.getn(sec+"/x_cr") @@ -283,6 +288,42 @@ class RadioHalo1M: return uconv * d / v_i # [Gyr] @lru_cache() + def velocity_turb_base(self, t): + """ + Calculate the velocity dispersion of the base turbulence. + + Without injection by mergers, the ICM can has some turbulence, + which can amount ~< 5% of the thermal energy in relaxed systems + (Ref.[vazza2011]). + + ε_turb = (1/2) * ρ_gas * <v_turb^2> = x_turb * ε_th + ε_th = (3/2) * n_th * kT + ρ_gas = μ * m_u * n_th + c_s^2 = γ_gas * kT / (μ * m_u) + => + v_turb = c_s * sqrt(3 * x_turb / γ_gas) + + Parameters + ---------- + t_merger : float + The beginning or ending time of the merger. + Unit: [Gyr] + + Returns + ------- + v_turb : float + The velocity dispersion of the base turbulence. + Unit: [km/s] + """ + self._validate_time(t) + + if np.isclose(self.x_turb, 0): + return 0 + + c_s = helper.speed_sound(self.kT(t)) # [km/s] + return c_s * np.sqrt(3*self.x_turb / AC.gamma) + + @lru_cache() def velocity_turb(self, t_merger): """ Calculate the turbulence velocity dispersion. |