From 4f1b9b0cc8828cb81fb2cfee89b5153cc7ace0ae Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Sat, 21 Oct 2017 15:17:01 +0800 Subject: clusters/halo: Add function "speed_sound()" Also add "gamma" the adiabatic index of ideal gas to utils/units.py --- fg21sim/extragalactic/clusters/helper.py | 28 ++++++++++++++++++++++++++++ fg21sim/utils/units.py | 3 +++ 2 files changed, 31 insertions(+) diff --git a/fg21sim/extragalactic/clusters/helper.py b/fg21sim/extragalactic/clusters/helper.py index 1c6e48e..d77c63e 100644 --- a/fg21sim/extragalactic/clusters/helper.py +++ b/fg21sim/extragalactic/clusters/helper.py @@ -33,6 +33,10 @@ References .. [zandanel2014] Zandanel, Pfrommer & Prada 2014, MNRAS, 438, 124 http://adsabs.harvard.edu/abs/2014MNRAS.438..124Z + +.. [zhuravleva2014] + Zhuravleva et al. 2014, Nature, 515, 85; + http://adsabs.harvard.edu/abs/2014Natur.515...85Z """ import logging @@ -256,6 +260,30 @@ def density_energy_electron(spectrum, gamma): return e_re +def speed_sound(kT): + """ + The adiabatic sound speed in cluster ICM. + + Parameters + ---------- + kT : float + The cluster ICM temperature + Unit: [keV] + + Returns + ------- + cs : float + The speed of sound in cluster ICM. + Unit: [km/s] + + Reference: Ref.[zhuravleva2014],Appendix(Methods) + """ + # The gas adiabatic index + gamma = AC.gamma + cs = np.sqrt(gamma * kT*AUC.keV2erg / (AC.mu * AC.u)) # [cm/s] + return cs * AUC.cm2km # [km/s] + + def velocity_impact(M_main, M_sub, z=0.0): """ Estimate the relative impact velocity between the two merging diff --git a/fg21sim/utils/units.py b/fg21sim/utils/units.py index dfe5013..e7deb17 100644 --- a/fg21sim/utils/units.py +++ b/fg21sim/utils/units.py @@ -100,3 +100,6 @@ class Constants: # Mean molecular weight # Ref.: Ettori et al, 2013, Space Science Review, 177, 119-154, Eq.(6) mu = 0.6 + + # Adiabatic index of ideal monatomic gas + gamma = 5.0/3.0 -- cgit v1.2.2