Add the power spectrum, growth function and virial quantities to astropy.cosmology
- Dominant language
- Python
- Stars
- 5.3k
- Forks
- 2.2k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 81
Description
For galaxy formation and cosmological studies it's often necessary to calculate the matter power spectrum in the linear regime, the linear growth rate, and the typical temperature, radius and circular velocity of a virialized dark matter halo. All of these strongly depend on the assumed cosmology (see for example Mo, van den Bosch & White, http://adsabs.harvard.edu/abs/2010gfe..book.....M, sections 4.1.6, 4.4.4, 7.5.1).
It would be useful to include these in `astropy.cosmology`. It's beyond the scope of the astropy core to solve for these numerically for an arbitrary cosmology, but there are widely-accepted analytic approximations which can be used.
We should:
1. Decide exactly which functionality should be included. A good starting point is cosmolopy.perturbation (http://roban.github.io/CosmoloPy/docAPI/cosmolopy.perturbation-module.html).
2. Work out the range of cosmologies where any analytic approximations we want to use are valid.
3. Decide how to include them in `astropy.cosmology`. Maybe a new module `astropy.cosmology.perturbation`?
This issue aims to promote discussion on the best way to proceed. @eteq, @aconley, @joergdietrich, @roban - you might be interested in this. Any feedback is welcome!
Contributor guide
Research direction
Start by reviewing the existing astropy.cosmology API and the cosmolopy.perturbation module linked in the issue. Compare the proposed power spectrum, growth, and virial quantities with the supported cosmology range and analytic approximations. Done means the scope, validity limits, and placement—possibly astropy.cosmology.perturbation—are agreed before implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100