From d5fda96940775d37dc07c60b7997697f65a7dbfe Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Tue, 30 Oct 2018 23:10:06 +0800 Subject: clusters/halo: Update turbulence velocity calculation Adopt the same beta-model for the gas density profile to calculate the gas/baryon mass within the turbulence region ( - = 0.5 * f_gas * M_total( - = 0.5 * f_gas * f_mass(L/R_vir) * M_total * - M_total = M_main + M_sub => Velocity dispersion: - ≅ (η_turb/f_mass) * (M_sub/M_total) * v_vir^2 + ≅ v_vir^2 * η_turb*f_gas * (M_sub/M_turb) + where: + M_turb = int_0^R_turb ρ_gas(r)*4ᴨ*r^2 dr Returns ------- @@ -692,14 +704,16 @@ class RadioHalo: The turbulence velocity dispersion Unit: [km/s] """ - z = COSMO.redshift(t) - mass_merged = self.mass_merged(t) - mass_main = self.mass_main(t) - mass_sub = self.mass_sub(t) - R_vir = helper.radius_virial(mass_merged, z) * AUC.kpc2cm # [cm] - v2_vir = (AC.G * mass_main*AUC.Msun2g / R_vir) * AUC.cm2km**2 - fmass = helper.fmass_nfw(self.f_lturb) - v2_turb = v2_vir * (self.eta_turb / fmass) * (mass_sub / mass_merged) + rho_gas_f = self._gas_density_profile_f + R_turb = self.injection_radius # [kpc] + 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] + 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)) return np.sqrt(v2_turb) def _is_turb_active(self, t): -- cgit v1.2.2