From 51a061c12e1ab99644c1dc45a8ce36a796e68609 Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Fri, 23 Jun 2017 21:13:57 +0800 Subject: halo.py: calculate magnetic field using a scaling relation --- fg21sim/configs/20-extragalactic.conf.spec | 10 +++++++--- fg21sim/extragalactic/clusters/halo.py | 30 ++++++++++++++++++++++-------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/fg21sim/configs/20-extragalactic.conf.spec b/fg21sim/configs/20-extragalactic.conf.spec index d479e7d..4e84d85 100644 --- a/fg21sim/configs/20-extragalactic.conf.spec +++ b/fg21sim/configs/20-extragalactic.conf.spec @@ -61,9 +61,13 @@ # XXX: currently only support a constant radius of halos radius = float(default=500, min=100) - # Magnetic field assumed for the cluster (unit: uG) - # XXX: currently only support a constant magnetic field - magnetic_field = float(default=0.5, min=0.1, max=10) + # Magnetic field scaling relation for clusters + # Reference: Cassano et al. 2012, A&A, 548, A100, Eq.(1) + # + # The mean magnetic field assumed + b_mean = float(default=1.9, min=0.1, max=10) + # The index of the scaling relation + b_index = float(default=1.5, min=0.0, max=3.0) # Fraction of the turbulence energy in the form of magneto-sonic waves. eta_t = float(default=0.3, min=0.0, max=1.0) diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index 3fa9d18..d3621f2 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Weitian LI +# Copyright (c) 2017 Weitian LI # MIT license """ @@ -9,6 +9,10 @@ References ---------- [1] Cassano & Brunetti 2005, MNRAS, 357, 1313 http://adsabs.harvard.edu/abs/2005MNRAS.357.1313C +[2] Cassano, Brunetti & Setti, 2006, MNRAS, 369, 1577 + http://adsabs.harvard.edu/abs/2006MNRAS.369.1577C +[3] Cassano et al. 2012, A&A, 548, A100 + http://adsabs.harvard.edu/abs/2012A%26A...548A.100C """ import logging @@ -41,15 +45,10 @@ class HaloSingle: by solving the Fokker-Planck equation; and finally derive the radio emission from the electron spectra. - References - ---------- - [1] Cassano & Brunetti 2005, MNRAS, 357, 1313 - http://adsabs.harvard.edu/abs/2005MNRAS.357.1313C - Parameters ---------- M0 : float - Cluster mass at redshift z0 + Cluster virial mass at redshift z0 Unit: [Msun] z0 : float Redshift from where to simulate former merging history. @@ -87,7 +86,8 @@ class HaloSingle: # Mass threshold of the sub-cluster for a significant merger self.merger_mass_th = self.configs.getn(comp+"/merger_mass_th") self.radius = self.configs.getn(comp+"/radius") - self.magnetic_field = self.configs.getn(comp+"/magnetic_field") + self.b_mean = self.configs.getn(comp+"/b_mean") + self.b_index = self.configs.getn(comp+"/b_index") self.eta_t = self.configs.getn(comp+"/eta_t") self.eta_e = self.configs.getn(comp+"/eta_e") self.pmin = self.configs.getn(comp+"/pmin") @@ -102,6 +102,20 @@ class HaloSingle: self.cosmo = Cosmology(H0=self.H0, Om0=self.OmegaM0) logger.info("Loaded and set up configurations") + @property + def magnetic_field(self): + """ + Calculate the mean magnetic field of this cluster from the + scaling relation between magnetic field and cluster mass. + + Unit: [uG] + + Reference: Ref.[3],Eq.(1) + """ + M_mean = 1.6e15 # [Msun] + B = self.b_mean * (self.M0/M_mean) ** self.b_index + return B + def simulate_mergertree(self): """ Simulate the merging history of the cluster using the extended -- cgit v1.2.2