Skip to content

Commit ada34f3

Browse files
committed
non-code files merged
1 parent eb9bc4f commit ada34f3

61 files changed

Lines changed: 14737 additions & 68 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Build and publish Python distributions to PyPI
2+
on:
3+
release:
4+
types: [published]
5+
6+
jobs:
7+
8+
build_wheels:
9+
name: Build wheels on ${{ matrix.os }}
10+
runs-on: ${{ matrix.os }}
11+
strategy:
12+
matrix:
13+
os: [ubuntu-latest, macOS-latest]
14+
steps:
15+
- uses: actions/checkout@v3
16+
17+
- uses: actions/setup-python@v3
18+
with:
19+
python-version: 3.11
20+
21+
- name: Build wheels
22+
uses: pypa/cibuildwheel@v2.16.2
23+
env:
24+
# Skip CPython 3.6, 3.7, 3.8, 3.12, PyPy, 32-bit, and musl
25+
CIBW_SKIP: "cp36-* cp37-* cp38-* cp312-* pp* *i686 *musllinux*"
26+
27+
- uses: actions/upload-artifact@v3
28+
with:
29+
path: ./wheelhouse/*.whl
30+
31+
make_sdist:
32+
name: Make SDist
33+
runs-on: ubuntu-latest
34+
steps:
35+
- name: git checkout repository main
36+
uses: actions/checkout@v3
37+
38+
- name: check github reference for tags
39+
run: |
40+
echo "github.ref = ${{ github.ref }}, github.ref_type = ${{ github.ref_type }}"
41+
echo "github.repository = ${{ github.repository }}, github.event_name = ${{ github.event_name }} "
42+
43+
- name: Set up Python 3.10
44+
uses: actions/setup-python@v3
45+
with:
46+
python-version: "3.10"
47+
48+
- name: Install pypa/build
49+
run: python -m pip install build --user
50+
51+
- name: Build a source tarball
52+
run: python -m build --sdist --outdir dist/ .
53+
54+
- uses: actions/upload-artifact@v3
55+
with:
56+
path: ./dist/*.tar.gz
57+
58+
pypi-publish:
59+
needs: ['build_wheels', 'make_sdist']
60+
environment: 'publish'
61+
62+
name: upload release to PyPI
63+
runs-on: ubuntu-latest
64+
permissions:
65+
# IMPORTANT: this permission is mandatory for trusted publishing
66+
id-token: write
67+
steps:
68+
- uses: actions/download-artifact@v3
69+
70+
- name: Publish package distributions to PyPI
71+
uses: pypa/gh-action-pypi-publish@release/v1
72+
with:
73+
packages-dir: artifact/

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ output/*
120120
docs/source/apidoc_modules
121121
hostfile
122122
readthedocs.html
123-
data/
124123
notes.md
125124
minos_run_gen_lib_sams.sh
126125
cyutils.c
@@ -141,4 +140,4 @@ run_gen_lib_sams__*
141140

142141
# Mac Desktop Services
143142
.DS_Store
144-
.history
143+
.history

CHANGELOG.md

Lines changed: 74 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,100 @@
11
# Change Log
22

3+
34
## Future (To-Do)
5+
46
* General
5-
- [ ] Add fit/interpolated GW spectra from Chen19 into SAM modules.
6-
* Structures for comprehensive binary evolution / hardening modules
7-
- [ ] a class-based structure allowing for modular hardening processes to be added/removed/modified easily.
8-
- [ ] structures allowing for storing host-galaxy information (e.g. based on semi-analytic models, Illustris, observations, etc) that can be used for hardening calculations
9-
- [ ] accretion rate models based on semi-analytic models, Illustris, observations, etc
7+
* [ ] Add fit/interpolated GW spectra from Chen19 into SAM modules.
108
* Explicit evolution/hardening models for
11-
- [ ] dynamical friction
12-
- [ ] stellar scattering using uniform/standard stellar distributions (e.g. isotropic & isothermal)
13-
- [ ] comprehensive stellar scattering using arbitrary stellar distributions
14-
- [ ] circumbinary accretion mediated hardening ( inward-migration)
15-
- [ ] circumbinary accretion mediated softening (outward-migration)
16-
- [ ] eccentric binary evolution
17-
- [ ] triple MBH interactions
18-
* Comparisons with observations (particularly EM) to calibrate sythesized populations
19-
- [ ] accurate catalogs of 'direct' MBH mass measurements from the local universe
20-
- [ ] approximate catalogs of 'indirect' MBH mass measurements from populations of AGN/quasars
21-
- [ ] MBH--host-galaxy scaling relationships
22-
- [ ] AGN/Quasar luminosity functions
23-
- [ ] constraints on kpc--Mpc scale galaxy and AGN mergers
24-
- [ ] constraints on sub-kpc separation binary AGN based on EM candidates (and upper-limits)
25-
* Gaussian Processes
26-
- [ ] How significant are deviations in predicted spectra from Gaussians? What produces those deviations, are they single (or single-like) sources, or are they actual "population" trends? (Former is okay to ignore, latter is not!)
27-
- [ ]
28-
* Testing
29-
* Add sphinx docs build to github action for testing
9+
* [ ] comprehensive stellar scattering using arbitrary stellar distributions
10+
* [ ] eccentric binary evolution
11+
* [ ] triple MBH interactions
12+
* Comparisons with observations (particularly EM) to calibrate synthesized populations
13+
* [ ] accurate catalogs of 'direct' MBH mass measurements from the local universe
14+
* [ ] approximate catalogs of 'indirect' MBH mass measurements from populations of AGN/quasars
15+
* [ ] AGN/Quasar luminosity functions
16+
* [ ] constraints on kpc--Mpc scale galaxy and AGN mergers
17+
* [ ] constraints on sub-kpc separation binary AGN based on EM candidates (and upper-limits)
3018

3119

32-
----
33-
3420
## Current
3521

22+
## v1.6 - 2024/05/01
23+
24+
* DEPRECATIONS:
25+
* `holodeck.librarian.py` ==> `holodeck.librarian.lib_tools`
26+
* Rename submodule. All components remain the same. All `lib_tools` elements are now also imported into the `librarian` namespace. i.e. elements like `holodeck.librarian.lib_tools._Param_Space` will now be accessible via `holodeck.librarian._Param_Space`.
27+
* Library filenames:
28+
* Standard library simulation files will now be saved to the 'library_sims' subdirectory, and filenames 'library__p######.npz'. Combined library files will now be 'sam-library.hdf5'.
29+
* 'Domain' simulation files will be saved to the 'domain_sims' subdirectory, and filenames 'domain__p######.npz'. Combined domain files will now be 'sam-domain.hdf5'.
30+
31+
* BUGS:
32+
* Semi-Analytic Models
33+
* `Semi_Analytic_Model._dynamic_binary_number_at_fobs_inconsistent` was not checking for systems that had already coalesced. Only effected GW-only evolution using the python version of the calculation.
34+
35+
* DEFAULTS:
36+
* Semi-Analytic Models
37+
* `Semi_Analytic_Models` instances now use galaxy merger-rates (instead of galaxy pair-fractions and merger-times) by default. To use GPF+GMT SAMs, the user must pass in at least a GPF instance manually.
38+
39+
* General Changes
40+
41+
* Semi-Analytic Models (`holodeck.sams`)
42+
* Improve accuracy of dynamic binary number calculation for consistent evolution models.
43+
44+
* `holodeck.librarian`
45+
* Added functionality to construct 'domain' sets of simulations, to explore each parameter in a parameter-space one at a time.
46+
* NOTE: Standard library files will now be called "sam-library.hdf5" instead of "sam_lib.hdf5"
47+
48+
49+
## v1.5.2 - 2024/04/12
50+
51+
* DEPRECATIONS
52+
* `host_relations.py`: remove the `mamp` parameter and `MASS_AMP` attributes in the MMBulge relationships, and use `mamp_log10` and `MASS_AMP_LOG10` exclusively.
53+
54+
55+
## v1.5 - 2024/03/29
56+
57+
* Deprecated `relations.py`.
58+
* **Material from this file has mostly been moved to `host_relations.py`**. The components for galaxy/halo density/velocity profiles have been moved to `galaxy_profiles.py`. Stellar-mass vs. halo-mass relations are still in `host_relations.py`.
59+
* All of the same material can temporarily still be accessed/imported from `relations.py`, and it will log/print a deprecation warning.
60+
* **M-Mbulge relations now use separate bulge-fractions.**
61+
* All subclasses of `_MMBulge_Relation` now utilize separate bulge-fraction instances, implemented as subclasses of the new `holodeck.host_relations._Bulge_Frac` class.
62+
* The overall API remains unchanged (users can still perform conversions from total stellar-mass `mstar` to black-hole masses `mbh`), but internally conversions from total stellar-mass to stellar bulge-mass are performed by the bulge-fraction instances, and then stellar bulge-masses are converted to black-hole masses by the M-Mbulge instances.
63+
* The API for M-Mbulge relations has also been cleaned up and unified.
64+
* Two `_Bulge_Frac` subclasses have been implememted:
65+
* `BF_Constant` which is a single, fixed bulge-fraction value. This maintains the behavior that was previously performed within `_MMBulge_Relation`.
66+
* `BF_Sigmoid` is a new implementation that transitions from one bulge-fraction value at asymptotically low stellar-masses, up to a second bulge-fraction at and above a fixed characteristic stellar mass. The 'width' or 'steepness' of the transition can also be varied.
3667

3768
----
3869

70+
3971
## Past
4072

4173
### v0.2 - 2022/03/28
4274

4375
* Binary Evolution (`evolution.py`)
44-
- Now tracking hardening rates in evolution.
45-
- Simple implementation of some binary hardening models, both physical and phenomenological (i.e. power-law like).
46-
- Modules for Dynamical Friction, Stellar Scattering, and GW hardening.
76+
* Now tracking hardening rates in evolution.
77+
* Simple implementation of some binary hardening models, both physical and phenomenological (i.e. power-law like).
78+
* Modules for Dynamical Friction, Stellar Scattering, and GW hardening.
4779
* Logistical and Internals
48-
- Added submodule for logging (`log.py`)
49-
- Added submodule for plotting (`plot.py`)
50-
- Added submodule for observational data and relations (`observations.py`)
51-
- New, and also improvements to old, notebooks for testing and demonstration purposes. Addition of more unit tests and test scripts.
52-
- Extensive additions to utility / mathematical / numerical functions (`utils.py`).
53-
- Improved README.md, and started adding basics to holodeck paper manuscript.
80+
* Added submodule for logging (`log.py`)
81+
* Added submodule for plotting (`plot.py`)
82+
* Added submodule for observational data and relations (`observations.py`)
83+
* New, and also improvements to old, notebooks for testing and demonstration purposes. Addition of more unit tests and test scripts.
84+
* Extensive additions to utility / mathematical / numerical functions (`utils.py`).
85+
* Improved README.md, and started adding basics to holodeck paper manuscript.
5486
* Populations
55-
- Cleaned up of observationally-based populations (`pop_observational.py`)
56-
- Unified implementation of MBH-galaxy relationships (`relations.py`)
57-
- Significant cleanup and upgrades in Semi-Analytic Models based populations (`sam.py`)
58-
- Developed methodology for sampling discrete binaries from continuous distributions (in coordination with `kalepy` modules)
87+
* Cleaned up of observationally-based populations (`pop_observational.py`)
88+
* Unified implementation of MBH-galaxy relationships (`relations.py`)
89+
* Significant cleanup and upgrades in Semi-Analytic Models based populations (`sam.py`)
90+
* Developed methodology for sampling discrete binaries from continuous distributions (in coordination with `kalepy` modules)
5991

6092
### v0.1 - 2021/08/15
6193

6294
* Basic GW spectra can be generated using simple versions of population synthesis based on:
63-
- A finite, discrete population of binaries from the Illustris simulations
64-
- Continuous distributions from semi-analytic modeling
65-
- Continuous distributions from semi-analytic modeling, with Illustris merger rates, calibrated to local galaxy observations.
95+
* A finite, discrete population of binaries from the Illustris simulations
96+
* Continuous distributions from semi-analytic modeling
97+
* Continuous distributions from semi-analytic modeling, with Illustris merger rates, calibrated to local galaxy observations.
6698
* A class-based implementation is used in a way to facilitate subclassing (i.e. extensibility).
6799
* Only the simplest models for binary evolution (i.e. fixed time-delays and GW emission) are currently included.
68100
* Continuous population distributions can be easily interfaced with the `kalepy` package to facilitate discrete sampling. Even without formal discrete sampling, proper GW (foreground and background) statistics can be approximated.

CONTRIBUTING.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,23 @@ version 1.4, available at
9393

9494
[homepage]: http://contributor-covenant.org
9595
[version]: http://contributor-covenant.org/version/1/4/
96+
97+
98+
## Contributors
99+
100+
(List is very likely out-of-date, please bump if you notice someone/yourself missing!)
101+
102+
Bence Becsy
103+
Andrew Casey-Clyde
104+
Alex Cingoranelli
105+
Siyuan Chen
106+
Daniel D’Orazio
107+
Emiko Gardiner
108+
Kayhan Gültekin
109+
William Lamb
110+
Luke Zoltan Kelley
111+
Cayenne Matt
112+
Joseph Simon
113+
Magdalena Siwek
114+
Jeremy Wachter
115+
David Wright

0 commit comments

Comments
 (0)