diff options
author | Aaron LI <aly@aaronly.me> | 2018-10-31 13:51:44 +0800 |
---|---|---|
committer | Aaron LI <aly@aaronly.me> | 2018-10-31 13:51:44 +0800 |
commit | 1428362f7f19ffb8cea302fdd546fa9e4dcaadb4 (patch) | |
tree | aa07008470b6113bb1501ad5ae6dcdc1d91e49f5 /fg21sim/extragalactic/clusters | |
parent | 5392586716a35d98633c2d7e4be542d43489a173 (diff) | |
download | fg21sim-1428362f7f19ffb8cea302fdd546fa9e4dcaadb4.tar.bz2 |
clusters/halo: Add time argument to _velocity_turb()
Diffstat (limited to 'fg21sim/extragalactic/clusters')
-rw-r--r-- | fg21sim/extragalactic/clusters/halo.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index 151e5c8..93b3f48 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -221,7 +221,7 @@ class RadioHalo: """ t_merger = self._merger_time(t) cs = helper.speed_sound(self.kT(t_merger)) # [km/s] - v_turb = self._velocity_turb # [km/s] + v_turb = self._velocity_turb(t_merger) # [km/s] return v_turb / cs @property @@ -366,8 +366,8 @@ class RadioHalo: t_merger = self._merger_time(t) L = 2 * self.radius_turbulence # [kpc] cs = helper.speed_sound(self.kT(t_merger)) # [km/s] - v_turb = self._velocity_turb # [km/s] tau = (self.x_cr * cs**3 * L / + v_turb = self._velocity_turb(t_merger) # [km/s] (16*np.pi * self.zeta_ins * v_turb**4)) # [s kpc/km] tau *= AUC.s2Gyr * AUC.kpc2km # [Gyr] tau *= self.f_acc # custom tune parameter @@ -681,9 +681,8 @@ class RadioHalo: z_merger = COSMO.redshift(t_merger) return helper.calc_gas_density_profile(mass=M_main+M_sub, z=z_merger) - @property @lru_cache - def _velocity_turb(self): + def _velocity_turb(self, t=None): """ Calculate the turbulence velocity dispersion (i.e., turbulence Mach number). @@ -711,16 +710,17 @@ class RadioHalo: The turbulence velocity dispersion Unit: [km/s] """ - rho_gas_f = self._gas_density_profile_f R_turb = self.radius_turbulence # [kpc] + z = COSMO.redshift(t) + rho_gas_f = self._gas_density_profile_f(t) M_turb = 4*np.pi * integrate.quad(lambda r: rho_gas_f(r) * r**2, a=0, b=R_turb)[0] # [Msun] - M_merged = self.M_main + self.M_sub - R_vir = helper.radius_virial(M_merged, self.z_merger) # [kpc] + M_main = self.mass_main(t) + M_sub = self.mass_sub(t) + R_vir = helper.radius_virial(M_main+M_sub, z) # [kpc] R_vir *= AUC.kpc2cm # [cm] - v2_vir = (AC.G * self.M_main*AUC.Msun2g / R_vir) * AUC.cm2km**2 - v2_turb = (v2_vir * self.eta_turb * COSMO.baryon_fraction * - (self.M_sub / M_turb)) + v2_vir = (AC.G * M_main*AUC.Msun2g / R_vir) * AUC.cm2km**2 + v2_turb = v2_vir * self.eta_turb*COSMO.baryon_fraction * (M_sub/M_turb) return np.sqrt(v2_turb) def _is_turb_active(self, t): |