diff options
| author | Aaron LI <aly@aaronly.me> | 2018-10-25 11:56:01 +0800 | 
|---|---|---|
| committer | Aaron LI <aly@aaronly.me> | 2018-10-25 11:56:01 +0800 | 
| commit | 087822f918a0d6a814da064281305c8fde31b8fa (patch) | |
| tree | 9d56445c846b492a95fdeb00b5c969b751642d17 /fg21sim/extragalactic | |
| parent | 67b9349a8d1cdc786926a10d5ad3d0c2cc8a6d13 (diff) | |
| download | fg21sim-087822f918a0d6a814da064281305c8fde31b8fa.tar.bz2 | |
clusters/halo: Change _merger() to accept time to simplify its usage
Diffstat (limited to 'fg21sim/extragalactic')
| -rw-r--r-- | fg21sim/extragalactic/clusters/halo.py | 24 | 
1 files changed, 12 insertions, 12 deletions
| diff --git a/fg21sim/extragalactic/clusters/halo.py b/fg21sim/extragalactic/clusters/halo.py index 4e1b0bf..2236000 100644 --- a/fg21sim/extragalactic/clusters/halo.py +++ b/fg21sim/extragalactic/clusters/halo.py @@ -801,11 +801,13 @@ class RadioHaloAM(RadioHalo):          idx = self._merger_idx(t)          return self.age_merger[idx] -    def _merger(self, idx): +    def _merger(self, t):          """ -        Return the properties of the idx-th merger event. +        Return the merger event at cosmic time ``t``.          """ +        idx = self._merger_idx(t)          return { +            "idx": idx,              "M_main": self.M_main[idx],              "M_sub": self.M_sub[idx],              "z": self.z_merger[idx], @@ -820,8 +822,7 @@ class RadioHaloAM(RadioHalo):          if t >= self.age_obs:              return self.M_obs          else: -            idx = self._merger_idx(t) -            merger = self._merger(idx) +            merger = self._merger(t)              return (merger["M_main"] + merger["M_sub"])      def mass_sub(self, t): @@ -829,8 +830,7 @@ class RadioHaloAM(RadioHalo):          The mass of the sub cluster at the given (cosmic) time.          Unit: [Msun]          """ -        idx = self._merger_idx(t) -        merger = self._merger(idx) +        merger = self._merger(t)          return merger["M_sub"]      def mass_main(self, t): @@ -849,17 +849,17 @@ class RadioHaloAM(RadioHalo):              The mass of the main cluster.              Unit: [Msun]          """ -        idx = self._merger_idx(t) -        merger1 = self._merger(idx) +        merger1 = self._merger(t) +        idx1 = merger1["idx"]          mass1 = merger1["M_main"]          t1 = merger1["age"] -        if idx == 0: +        if idx1 == 0:              mass0 = self.M_obs              t0 = self.age_obs          else: -            merger0 = self._merger(idx-1) -            mass0 = merger0["M_main"] -            t0 = merger0["age"] +            idx0 = idx1 - 1 +            mass0 = self.M_main[idx0] +            t0 = self.age_merger[idx0]          rate = (mass0 - mass1) / (t0 - t1)          return (mass1 + rate * (t - t1)) | 
