aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron LI <aly@aaronly.me>2018-01-01 09:43:27 +0800
committerAaron LI <aly@aaronly.me>2018-01-01 09:43:27 +0800
commit6a458c2c4676f622ac3151526bd0642f1a191100 (patch)
treeeff3fba8a895e4b48df3249f523d569ed6b80d2e
parent345835af379ea6e0a834c917584e42753bf895b0 (diff)
downloadfg21sim-6a458c2c4676f622ac3151526bd0642f1a191100.tar.bz2
clusters/halo: improve turbulence velocity dispersion calculation
Use the merged total mass instead of the main cluster mass only as the denominator to determine the turbulence velocity dispersion, which reduces the scatter and thus the acceleration results will be less sensitive to the (mostly unknown) merging turbulence properties.
-rw-r--r--fg21sim/extragalactic/clusters/halo.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py
index 6b5a683..a8f218a 100644
--- a/fg21sim/extragalactic/clusters/halo.py
+++ b/fg21sim/extragalactic/clusters/halo.py
@@ -827,15 +827,16 @@ class RadioHalo:
velocity dispersion from its energy.
Merger energy:
- E_m ≅ 0.5 * f_gas * M_sub * v^2
- ≅ 0.5 * f_gas * M_sub * (G*M_main / R_vir)
+ E_m ≅ 0.5 * f_gas * M_sub * v_vir^2
+ v_vir = sqrt(G*M_main / R_vir)
Turbulence energy:
E_turb ≅ η_turb * E_m
≅ 0.5 * M_turb * <v_turb^2>
- = 0.5 * f_gas * M_main(<L) * <v_turb^2>
- = 0.5 * f_gas * f_mass(L/R_vir) * M_main * <v_turb^2>
+ = 0.5 * f_gas * M_total(<L) * <v_turb^2>
+ = 0.5 * f_gas * f_mass(L/R_vir) * M_total * <v_turb^2>
+ M_total = M_main + M_sub
=> Velocity dispersion:
- <v_turb^2> ≅ (η_turb/f_mass) * (G*M_sub/R_vir)
+ <v_turb^2> ≅ (η_turb/f_mass) * (M_sub/M_total) * v_vir^2
Returns
-------
@@ -848,11 +849,10 @@ class RadioHalo:
z = COSMO.redshift(t)
mass = self.M_main + self.M_sub
R_vir = helper.radius_virial(mass=mass, z=z) * AUC.kpc2cm # [cm]
- v2 = np.sqrt(AC.G * self.M_sub*AUC.Msun2g / R_vir) # [cm/s]
- v2 *= AUC.cm2km # [km/s]
+ v2_vir = (AC.G * self.M_main*AUC.Msun2g / R_vir) * AUC.cm2km**2
fmass = helper.fmass_nfw(self.f_lturb)
- v_turb = v2 * np.sqrt(self.eta_turb / fmass)
- return v_turb
+ v2_turb = v2_vir * (self.eta_turb / fmass) * (self.M_sub / mass)
+ return np.sqrt(v2_turb)
def _magnetic_field(self, t):
"""