Replies: 3 comments 3 replies
-
|
Thank you for raising the issue. I assign @furcelay who coded up the cluster module. I think what you would need to do is to define an AstroPy cosmology with a Ob >0 which might not be the default one (a bit surprised thought), or there might not be a good translation between AstroPy and Colossus |
Beta Was this translation helpful? Give feedback.
-
|
Hi @aesar77 and @sibirrer, thank you for noticing this problem. I'm also surprised that Ob is zero by default. I'll make an issue from this discussion and modify the cosmology to include the right Ob. Thanks! |
Beta Was this translation helpful? Give feedback.
-
|
Regarding the choice of the concentration model, I used the one from the Hammoks pipeline (at |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
In cluster_lens.ipynb notebook tutorial I get this warning:
ERROR The Eisenstein & Hu 98 transfer function cannot be computed for Ob0 = 0. /lib/python3.12/site-packages/colossus/halo/concentration.py:421: UserWarning: Could not find concentration for model diemer19, mass 3.37e+14, mdef vir. warnings.warn('Could not find concentration for model %s, mass %.2e, mdef %s.' \I figured it was caused by the function concent_m_w_scatter from slsim.Halos.halo_population.py when I call slsim.Deflectors.ClusterDeflectors.draw_deflector():
`def concent_m_w_scatter(m, z, sig):
"""Concentration parameter of halos in B. Diemer and A. V. Kravtsov, 2015
with updated parameters of Diemer & Joyce 2019 arXiv:1407.4730 [astro-
ph.CO]. arXiv:1809.07326 [astro-ph.CO].
I checked the concentration.py from the Colossus package. I figured that, if the mass halo definition mdef ("vir") is not a native definition of the given model ("diemer19") then it tries to compute c and M numerically, instead of just returning the known model concentration. In conentration.py,
`models = OrderedDict()
"""
Dictionary containing a list of models.
An ordered dictionary containing one :class:
ConcentrationModelentry for each model."""
models['bullock01'] = ConcentrationModel()
models['bullock01'].mdefs = ['200c']
models['duffy08'] = ConcentrationModel()
models['duffy08'].mdefs = ['200c', 'vir', '200m']
models['klypin11'] = ConcentrationModel()
models['klypin11'].mdefs = ['vir']
models['prada12'] = ConcentrationModel()
models['prada12'].mdefs = ['200c']
models['prada12'].universal = True
models['bhattacharya13'] = ConcentrationModel()
models['bhattacharya13'].mdefs = ['200c', 'vir', '200m']
models['dutton14'] = ConcentrationModel()
models['dutton14'].mdefs = ['200c', 'vir']
models['diemer15_orig'] = ConcentrationModel()
models['diemer15_orig'].mdefs = ['200c']
models['diemer15_orig'].universal = True
models['diemer15_orig'].depends_on_statistic = True
models['diemer15'] = ConcentrationModel()
models['diemer15'].mdefs = ['200c']
models['diemer15'].universal = True
models['diemer15'].depends_on_statistic = True
models['klypin16_m'] = ConcentrationModel()
models['klypin16_m'].mdefs = ['200c', 'vir']
models['klypin16_nu'] = ConcentrationModel()
models['klypin16_nu'].mdefs = ['200c', 'vir']
models['ludlow16'] = ConcentrationModel()
models['ludlow16'].mdefs = ['200c']
models['ludlow16'].universal = False
models['child18'] = ConcentrationModel()
models['child18'].mdefs = ['200c']
models['diemer19'] = ConcentrationModel()
models['diemer19'].mdefs = ['200c']
models['diemer19'].universal = False
models['diemer19'].depends_on_statistic = True
models['ishiyama21'] = ConcentrationModel()
models['ishiyama21'].mdefs = ['500c', '200c', 'vir']
models['ishiyama21'].universal = False`
we see that diemer19 has no virial mass definition; however, there are other models including this definition. So, my question is, is there a particular reason why this combination was chosen in
concent_m_w_scatter function? Can I just change it to "200c"?
Beta Was this translation helpful? Give feedback.
All reactions