cosmic-popsynth 3.6.1__tar.gz → 3.6.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.github/workflows/build_wheels_and_publish.yml +21 -26
  2. cosmic_popsynth-3.6.2/.github/workflows/cmc-review.yml +76 -0
  3. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.github/workflows/python-package.yml +5 -8
  4. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.gitignore +1 -0
  5. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/PKG-INFO +2 -3
  6. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/bin/cosmic-pop +9 -14
  7. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/changelog.md +4 -0
  8. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/create_params_ini.py +1 -1
  9. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/create_settings_html.py +1 -1
  10. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/config/config_insert_bse.html +21 -21
  11. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/config/config_insert_sampling.html +6 -6
  12. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/develop/adding-options.rst +1 -1
  13. cosmic_popsynth-3.6.2/docs/pages/evolve/interface.rst +341 -0
  14. cosmic_popsynth-3.6.2/docs/pages/evolve/rerun.rst +145 -0
  15. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/evolve/single.rst +88 -39
  16. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/examples.rst +2 -0
  17. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/inifile.rst +5 -1
  18. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/output_info.rst +1 -1
  19. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/sample/independent.rst +165 -25
  20. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/sample/multidim.rst +5 -6
  21. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/examples/Params.ini +2 -2
  22. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/meson.build +3 -7
  23. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/pyproject.toml +4 -4
  24. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/requirements.txt +1 -2
  25. cosmic_popsynth-3.6.2/src/cosmic/_version.py +1 -0
  26. cosmic_popsynth-3.6.2/src/cosmic/data/__init__.py +0 -0
  27. {cosmic_popsynth-3.6.1/docs → cosmic_popsynth-3.6.2/src/cosmic/data}/cosmic-settings.json +64 -28
  28. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/evolve.py +67 -42
  29. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/meson.build +7 -1
  30. cosmic_popsynth-3.6.2/src/cosmic/output.py +466 -0
  31. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/plotting.py +0 -3
  32. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/initialbinarytable.py +13 -16
  33. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/initialcmctable.py +1 -1
  34. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/sampler/cmc.py +5 -5
  35. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/sampler/independent.py +75 -18
  36. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/assign_remnant.f +6 -0
  37. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/bpp_array.f +48 -41
  38. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/comenv.f +82 -64
  39. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/comprad.f +10 -1
  40. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/const_bse.h +5 -3
  41. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/evolv2.f +107 -56
  42. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/hrdiag.f +43 -2
  43. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/unit_tests_results.hdf5 +0 -0
  44. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/test_sample.py +26 -5
  45. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/utils.py +155 -481
  46. cosmic_popsynth-3.6.1/src/cosmic/_version.py +0 -1
  47. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.codecov.yml +0 -0
  48. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.gitattributes +0 -0
  49. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.github/ISSUE_TEMPLATE/general_issue.md +0 -0
  50. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.github/ISSUE_TEMPLATE/unexpected-stellar-evolutionary-behavior.md +0 -0
  51. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.github/workflows/deploy-github-pages.yml +0 -0
  52. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.github/workflows/github_registory.yml +0 -0
  53. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.readthedocs.yml +0 -0
  54. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.vscode/launch.json +0 -0
  55. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/.vscode/tasks.json +0 -0
  56. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/Dockerfile +0 -0
  57. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/LICENSE +0 -0
  58. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/MANIFEST.in +0 -0
  59. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/README.md +0 -0
  60. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/ci/compile_benchmark.sh +0 -0
  61. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/ci/run-tests.sh +0 -0
  62. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/debug/create_binary_in.py +0 -0
  63. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/Makefile +0 -0
  64. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/_static/bootstrap-grid.min.css +0 -0
  65. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/_static/cosmic-docs.css +0 -0
  66. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/_static/custom.js +0 -0
  67. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/_static/settings.js +0 -0
  68. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/_templates/layout.html +0 -0
  69. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/conf.py +0 -0
  70. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/data/dat_DeltaBurst_13_14_13_14.h5 +0 -0
  71. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/data/qcrit_table.csv +0 -0
  72. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/index.rst +0 -0
  73. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/about.rst +0 -0
  74. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/cite.rst +0 -0
  75. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/config/README.md +0 -0
  76. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/config/config_insert_convergence.html +0 -0
  77. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/config/config_insert_filters.html +0 -0
  78. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/config/config_insert_rand_seed.html +0 -0
  79. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/develop/debugging-vscode.rst +0 -0
  80. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/develop/how-it-works.rst +0 -0
  81. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/develop/new-settings.rst +0 -0
  82. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/develop/option-schema.csv +0 -0
  83. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/develop/setting-schema.csv +0 -0
  84. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/develop/settings-json-file.rst +0 -0
  85. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/developers.rst +0 -0
  86. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/evolve/evolve_sample.rst +0 -0
  87. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/evolve/grid.rst +0 -0
  88. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/evolve/multiple.rst +0 -0
  89. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/evolve/resolution.rst +0 -0
  90. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/evolve/restart.rst +0 -0
  91. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/fixedpop.rst +0 -0
  92. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/install.rst +0 -0
  93. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/reference_material.rst +0 -0
  94. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/runpop.rst +0 -0
  95. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/docs/pages/sample/cluster.rst +0 -0
  96. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/examples/CMC_Params.ini +0 -0
  97. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/Match.py +0 -0
  98. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/__init__.py +0 -0
  99. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/bse_utils/__init__.py +0 -0
  100. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/bse_utils/meson.build +0 -0
  101. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/bse_utils/zcnsts.py +0 -0
  102. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/bse_utils/zdata.py +0 -0
  103. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/checkstate.py +0 -0
  104. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/filter.py +0 -0
  105. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/get_commit_hash.py +0 -0
  106. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/__init__.py +0 -0
  107. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/cmc/__init__.py +0 -0
  108. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/cmc/elson.py +0 -0
  109. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/cmc/king.py +0 -0
  110. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/cmc/meson.build +0 -0
  111. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/meson.build +0 -0
  112. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/sampler/__init__.py +0 -0
  113. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/sampler/meson.build +0 -0
  114. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/sampler/multidim.py +0 -0
  115. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/sample/sampler/sampler.py +0 -0
  116. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/Makefile +0 -0
  117. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/benchmarkevolv2.f +0 -0
  118. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/bse.f +0 -0
  119. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/checkstate.f +0 -0
  120. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/checkstate.h +0 -0
  121. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/concatkstars.f +0 -0
  122. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/corerd.f +0 -0
  123. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/deltat.f +0 -0
  124. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/dgcore.f +0 -0
  125. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/evolv1.f +0 -0
  126. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/gntage.f +0 -0
  127. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/hrdiag_remnant.f +0 -0
  128. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/instar.f +0 -0
  129. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/int64.f +0 -0
  130. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/int64.h +0 -0
  131. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/int64.h.in +0 -0
  132. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/kick.f +0 -0
  133. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/mix.f +0 -0
  134. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/mlwind.f +0 -0
  135. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/mrenv.f +0 -0
  136. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/ran3.f +0 -0
  137. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/rl.f +0 -0
  138. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/sse.f +0 -0
  139. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/star.f +0 -0
  140. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/taus113-ran3.f +0 -0
  141. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/taus113tester.f +0 -0
  142. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/tausworth.f +0 -0
  143. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/tausworth.h +0 -0
  144. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/test_bse.f +0 -0
  145. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/zcnsts.f +0 -0
  146. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/zdata.h +0 -0
  147. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/src/zfuncs.f +0 -0
  148. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/GW_dat.h5 +0 -0
  149. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/Kroupa93.npy +0 -0
  150. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/Params.ini +0 -0
  151. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/bpp_array_ind_sampling.npy +0 -0
  152. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/cmc_elson_test.npz +0 -0
  153. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/cmc_king_test.npz +0 -0
  154. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/cmc_plummer_test.npz +0 -0
  155. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/dat_ThinDisk_10_12_10_12.h5 +0 -0
  156. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/dat_ThinDisk_11_11_3.h5 +0 -0
  157. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/init_conditions_ind_sampling.npy +0 -0
  158. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/initial_conditions_for_testing.hdf5 +0 -0
  159. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/input_cmc.fits +0 -0
  160. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/input_cmc.hdf5 +0 -0
  161. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/kick_initial_conditions.h5 +0 -0
  162. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/unit_test_results.hdf5 +0 -0
  163. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/data/utils_test.hdf +0 -0
  164. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/meson.build +0 -0
  165. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/test_evolve.py +0 -0
  166. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/test_kick.py +0 -0
  167. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/test_match.py +0 -0
  168. {cosmic_popsynth-3.6.1 → cosmic_popsynth-3.6.2}/src/cosmic/tests/test_utils.py +0 -0
@@ -6,79 +6,74 @@ on:
6
6
  workflow_dispatch:
7
7
 
8
8
  env:
9
- CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-*"
9
+ CIBW_BUILD: "cp310-* cp311-* cp312-* cp313-*"
10
10
  CIBW_ARCHS_LINUX: "x86_64"
11
11
  CIBW_SKIP: "*-win32 *musllinux*"
12
12
  CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
13
13
  CIBW_BEFORE_BUILD: pip install numpy --config-settings=setup-args="-Dallow-noblas=true"
14
14
  CIBW_BUILD_VERBOSITY: "1"
15
+ CIBW_BEFORE_ALL_LINUX: yum install -y gcc-gfortran
16
+ CIBW_ENVIRONMENT_LINUX: "FC=gfortran F77=gfortran"
17
+ CIBW_ENVIRONMENT_MACOS: "FC=gfortran F77=gfortran MACOSX_DEPLOYMENT_TARGET=14.0"
15
18
 
16
19
  jobs:
17
20
  build-wheels-and-dist:
18
- name: Build ${{ matrix.python-version }} wheels on ${{ matrix.os }}
21
+ name: Build wheels on ${{ matrix.os }}
19
22
  runs-on: ${{ matrix.os }}
20
23
  strategy:
21
24
  matrix:
22
- os: [ubuntu-latest, macos-latest]
23
- python-version: [3.9, "3.10", "3.11", "3.12"]
25
+ os: [ubuntu-latest, macos-14]
24
26
 
25
27
  steps:
26
28
  - uses: actions/checkout@v4
27
29
  with:
28
30
  fetch-depth: 0
31
+
32
+ # this step only uses a single python version since cibuildwheel
33
+ # builds multiple versions in one go on linux
29
34
  - uses: actions/setup-python@v5
30
35
  name: Install Python
31
36
  with:
32
- python-version: "3.10"
37
+ python-version: "3.12"
33
38
 
34
- - name: link gfortran and hdf5
39
+ - name: Install hdf5 (macOS)
35
40
  if: runner.os == 'macOS'
36
41
  run: |
37
- sudo ln -s /opt/homebrew/bin/gfortran-12 /usr/local/bin/gfortran
38
- brew reinstall hdf5
42
+ brew install hdf5
39
43
 
40
44
  - name: Install numpy
41
45
  run: |
42
46
  python -m pip install --upgrade pip
43
- python -m pip install numpy h5py versioneer
47
+ python -m pip install numpy h5py versioneer
44
48
 
45
49
  - name: Install dependencies
46
50
  run: |
47
51
  python -m pip install setuptools wheel build meson-python ninja meson pytest cibuildwheel
48
52
 
49
- - name: Build source and wheels distribution on MacOS
53
+ - name: Set up Fortran (macOS)
50
54
  if: runner.os == 'macOS'
51
- run: |
52
- python -m build --outdir dist
53
- find ./dist/*.whl | xargs pip install
54
- pytest src/cosmic
55
+ uses: fortran-lang/setup-fortran@v1
56
+ with:
57
+ compiler: gcc
58
+ version: '13'
55
59
 
56
60
  - name: Build source and wheels distribution on Linux
57
- if: runner.os == 'Linux'
58
61
  run: |
59
62
  python -m build --sdist --outdir dist
60
63
  python -m cibuildwheel --output-dir dist
61
64
 
62
65
  - uses: actions/upload-artifact@v4
63
66
  with:
64
- name: dist-${{ matrix.os }}-${{ matrix.python-version }}
67
+ name: dist-${{ matrix.os }}
65
68
  path: ./dist/*
66
69
 
67
70
  publish:
68
71
  needs: [build-wheels-and-dist]
69
- name: Publish Python 🐍 distributions 📦 to PyPI and TestPyPI
70
- runs-on: ${{ matrix.os }}
71
- strategy:
72
- matrix:
73
- os: [ubuntu-latest]
74
- python-version: ["3.10"]
72
+ name: Publish Python 🐍 distributions 📦 to PyPI
73
+ runs-on: ubuntu-latest
75
74
 
76
75
  steps:
77
76
  - uses: actions/checkout@v4
78
- - name: Set up Python ${{ matrix.python-version }}
79
- uses: actions/setup-python@v5
80
- with:
81
- python-version: ${{ matrix.python-version }}
82
77
 
83
78
  - name: Download artifacts
84
79
  uses: actions/download-artifact@v4
@@ -0,0 +1,76 @@
1
+ name: Flag CMC review for cosmic changes
2
+
3
+ on:
4
+ pull_request_target:
5
+ types: [opened, reopened, synchronize]
6
+ paths:
7
+ - 'src/cosmic/utils.py'
8
+ - 'src/cosmic/evolve.py'
9
+ - 'docs/cosmic-settings.json'
10
+
11
+ permissions:
12
+ pull-requests: write
13
+ contents: read
14
+
15
+ jobs:
16
+ flag-cmc-review:
17
+ runs-on: ubuntu-latest
18
+
19
+ steps:
20
+ - name: add "needs-cmc-review" label
21
+ uses: actions/github-script@v7
22
+ with:
23
+ script: |
24
+ const labelName = 'needs-cmc-review';
25
+
26
+ // ensure the label exists, or create it
27
+ try {
28
+ await github.rest.issues.getLabel({
29
+ owner: context.repo.owner,
30
+ repo: context.repo.repo,
31
+ name: labelName,
32
+ });
33
+ } catch (error) {
34
+ if (error.status === 404) {
35
+ await github.rest.issues.createLabel({
36
+ owner: context.repo.owner,
37
+ repo: context.repo.repo,
38
+ name: labelName,
39
+ color: 'fbca04',
40
+ description: 'PR touches cosmic core settings and needs CMC review',
41
+ });
42
+ } else {
43
+ throw error;
44
+ }
45
+ }
46
+
47
+ // add the label to the PR
48
+ await github.rest.issues.addLabels({
49
+ owner: context.repo.owner,
50
+ repo: context.repo.repo,
51
+ issue_number: context.issue.number,
52
+ labels: [labelName],
53
+ });
54
+
55
+ - name: comment to request CMC review
56
+ uses: actions/github-script@v7
57
+ with:
58
+ script: |
59
+ const body = `
60
+ 🚨 **CMC review requested**
61
+
62
+ This pull request modifies one or more of the following files:
63
+
64
+ - \`src/cosmic/utils.py\`
65
+ - \`docs/cosmic-settings.json\`
66
+ - \`src/cosmic/evolve.py\`
67
+
68
+ A CMC developer should review this PR to ensure corresponding changes are propagated upstream as needed.
69
+ `;
70
+
71
+ await github.rest.issues.createComment({
72
+ owner: context.repo.owner,
73
+ repo: context.repo.repo,
74
+ issue_number: context.issue.number,
75
+ body,
76
+ });
@@ -12,7 +12,7 @@ jobs:
12
12
  strategy:
13
13
  fail-fast: false
14
14
  matrix:
15
- python-version: ['3.9', '3.10']
15
+ python-version: ['3.10', '3.11', '3.12', '3.13']
16
16
 
17
17
  steps:
18
18
  - uses: actions/checkout@v4
@@ -32,19 +32,16 @@ jobs:
32
32
  ${{ runner.os }}-
33
33
  - name: Install dependencies and package
34
34
  run: |
35
+ # upgrade apt-get and install system dependencies
35
36
  sudo apt-get update
36
37
  sudo apt-get install gfortran swig libhdf5-serial-dev meson python3-dev
38
+
39
+ # upgrade pip and install dependencies
40
+ python -m pip install -U pip setuptools wheel packaging flake8
37
41
  pip install numpy ninja pytest
38
42
  pip install -r requirements.txt
39
43
  python -m pip install .
40
44
 
41
- - name: Lint with flake8
42
- run: |
43
- # stop the build if there are Python syntax errors or undefined names
44
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --exclude docs
45
- # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
46
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --exclude docs,versioneer.py,cosmic/_version.py,cosmic/tests,cosmic/*/__init__.py
47
-
48
45
  - name: Test with pytest
49
46
  run: |
50
47
  bash ci/compile_benchmark.sh
@@ -115,3 +115,4 @@ binary.in
115
115
  binary.dat
116
116
  *.h5
117
117
  fort.99
118
+ savefig/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cosmic-popsynth
3
- Version: 3.6.1
3
+ Version: 3.6.2
4
4
  Summary: a Python-interfaced binary population synthesis suite
5
5
  Author: Scott Coughlin, Michael Zevin, Carl L. Rodriguez, Tom Wagg
6
6
  Author-Email: Katelyn Breivik <katie.breivik@gmail.com>
@@ -11,7 +11,7 @@ Classifier: Intended Audience :: Science/Research
11
11
  Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: Operating System :: OS Independent
13
13
  Classifier: Programming Language :: Python
14
- Requires-Python: >=3.9
14
+ Requires-Python: >=3.10
15
15
  Requires-Dist: numpy
16
16
  Requires-Dist: scipy
17
17
  Requires-Dist: astropy
@@ -22,7 +22,6 @@ Requires-Dist: tables
22
22
  Requires-Dist: h5py
23
23
  Requires-Dist: schwimmbad
24
24
  Requires-Dist: matplotlib
25
- Requires-Dist: importlib-metadata
26
25
  Description-Content-Type: text/markdown
27
26
 
28
27
  # COSMIC
@@ -22,10 +22,12 @@ import numpy as np
22
22
  import pandas as pd
23
23
  from pandas.errors import PerformanceWarning
24
24
  import warnings
25
+ import h5py as h5
25
26
 
26
27
  from cosmic.sample.initialbinarytable import InitialBinaryTable
27
28
  from cosmic import Match, utils
28
29
  from cosmic.evolve import Evolve
30
+ from cosmic._version import __version__
29
31
 
30
32
  from schwimmbad import MPIPool
31
33
  from os import sys
@@ -105,9 +107,9 @@ def parse_commandline():
105
107
  parser.add_argument("--binary_state", nargs='+', type=int)
106
108
  parser.add_argument("--sampling_method")
107
109
  parser.add_argument("--primary_model", help="Chooses the initial primary mass function from: salpeter55, kroupa93, kroupa01", type=str)
108
- parser.add_argument("--binfrac_model", help="Chooses the binary fraction model from: a float between [0,1], vanHaaften, and offner22", type=binfrac_type)
110
+ parser.add_argument("--binfrac_model", help="Chooses the binary fraction model from: a float between [0,1], vanHaaften, and offner23", type=binfrac_type)
109
111
  parser.add_argument("--ecc_model", help="Chooses the initial eccentricity distribution model from: thermal, uniform, and sana12", type=str)
110
- parser.add_argument("--porb_model", help="Chooses the initial orbital period distribution model from: log_uniform and sana12", type=str)
112
+ parser.add_argument("--porb_model", help="Chooses the initial orbital period distribution model from: log_uniform, sana12, renzo19, raghavan10, moe19, and martinez26", type=str)
111
113
  parser.add_argument("--SF_start", help="Sets the time in the past when star formation initiates in Myr", type=float)
112
114
  parser.add_argument("--SF_duration", help="Sets the duration of constant star formation in Myr", type=float)
113
115
  parser.add_argument("--metallicity", type=float)
@@ -266,18 +268,11 @@ if __name__ == '__main__':
266
268
  idx = 0
267
269
  log_file = open('log_kstar1_{0}_kstar2_{1}_SFstart_{2}_SFduration_{3}_metallicity_{4}.txt'.format(kstar1_range_string, kstar2_range_string, sampling['SF_start'], sampling['SF_duration'], sampling['metallicity']), 'w')
268
270
 
269
- # save configuration settings to output file
270
- configuration_settings = {'BSEDict' : BSEDict, 'filters' : filters,
271
- 'convergence' : convergence, 'sampling' : sampling}
272
-
273
- with warnings.catch_warnings():
274
- warnings.simplefilter(action="ignore", category=PerformanceWarning)
275
-
276
- with pd.HDFStore(dat_store_fname,complib=args.complib,complevel=args.complevel) as dat_store:
277
- for k, v in configuration_settings.items():
278
- for k1, v1 in v.items():
279
- dat_store.put('config/{0}/{1}/'.format(k, k1), pd.Series(v1))
280
- dat_store.put('config/rand_seed/', pd.Series(seed_int))
271
+ # save configuration settings and COSMIC version to output file
272
+ with h5.File(dat_store_fname, 'a') as f:
273
+ f["config"] = json.dumps({'BSEDict' : BSEDict, 'filters' : filters, 'convergence' : convergence,
274
+ 'sampling' : sampling, 'rand_seed': seed_int})
275
+ f.attrs['COSMIC_version'] = __version__
281
276
 
282
277
  # Initialize the step counter and convergence array/list
283
278
  Nstep = idx - np.mod(idx, args.Nstep)
@@ -55,3 +55,7 @@ See the discussed changes in our previous releases here: https://github.com/COSM
55
55
  ## 3.6.1
56
56
  - Add support for single stars in both independent and multidim sampling
57
57
  - update documentation
58
+
59
+ ## 3.6.2
60
+ - Add functions to `cosmic.utils` for initC IO that's more efficient (`save_initC`, `load_initC`) by saving
61
+ identical setting columns separately with only one copy - saves ~1kb per binary
@@ -99,7 +99,7 @@ def construct_ini_from_json(config, include_comments=True):
99
99
 
100
100
  def main():
101
101
  # read the config file
102
- with open("cosmic-settings.json") as f:
102
+ with open("../src/cosmic/data/cosmic-settings.json") as f:
103
103
  config = json.load(f)
104
104
 
105
105
  # convert it to an INI file, replace HTML tags and save the output
@@ -46,7 +46,7 @@ settings_template = """<div class="setting">
46
46
  option_template = """<li><code class="docutils literal notranslate"><span class="pre opt-val"></span></code>: <span class="opt-desc"></span></li>"""
47
47
 
48
48
  # read the settings file
49
- with open("cosmic-settings.json") as f:
49
+ with open("../src/cosmic/data/cosmic-settings.json") as f:
50
50
  settings = json.load(f)
51
51
 
52
52
  # go through each major settings group
@@ -128,7 +128,7 @@
128
128
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
129
129
  <div class="row options hide">
130
130
  <p class="options-preface">\( 10^{-13} {\rm \ \texttt{hewind} \ } L^{2/3}\) gives He star mass-loss. Equivalent to \(1 - \mu\) in the last equation on <a href="https://ui.adsabs.harvard.edu/abs/2000MNRAS.315..543H/abstract">Hurley+2000, page 19</a>.</p>
131
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">Sets the helium star mass loss parameter</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.5</span></code>: <span class="opt-desc">Default value</span></li></ul>
131
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">range [0, 1]</span></code>: <span class="opt-desc">Sets the helium star mass loss parameter</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.5</span></code>: <span class="opt-desc">Default value</span></li></ul>
132
132
  </div>
133
133
  </div><div class="setting">
134
134
  <div class="row align-items-center setting-chooser">
@@ -156,7 +156,7 @@
156
156
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
157
157
  <div class="row options hide">
158
158
  <p class="options-preface">Corresponds to \(\mu_w\) in <a href="https://ui.adsabs.harvard.edu/abs/2002MNRAS.329..897H/abstract">Hurley+2002, Eq. 11</a></p>
159
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">Sets the wind accretion efficiency factor</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.5</span></code>: <span class="opt-desc">Default value</span></li></ul>
159
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">range [0, 1]</span></code>: <span class="opt-desc">Sets the wind accretion efficiency factor</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.5</span></code>: <span class="opt-desc">Default value</span></li></ul>
160
160
  </div>
161
161
  </div><div class="setting">
162
162
  <div class="row align-items-center setting-chooser">
@@ -198,7 +198,7 @@
198
198
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
199
199
  <div class="row options hide">
200
200
  <p class="options-preface"></p>
201
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">uses variable lambda prescription detailed in appendix of <a href="https://ui.adsabs.harvard.edu/abs/2014A%26A...563A..83C/abstract">Claeys+2014</a> where lambdaf is the fraction of the ionization energy that can go into ejecting the envelope; to use this prescription without extra ionization energy, set lambdaf = 0</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">As above, this is the default choice</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-1.0</span></code>: <span class="opt-desc">Uses a fixed value (i.e. fixes \( \lambda \) to a value of -lambdaf)</span></li></ul>
201
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">uses variable lambda prescription detailed in appendix of <a href="https://ui.adsabs.harvard.edu/abs/2014A%26A...563A..83C/abstract">Claeys+2014</a> where lambdaf is the fraction of the ionization energy that can go into ejecting the envelope; to use this prescription without extra ionization energy, set lambdaf = 0</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">As above, this is the default choice</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">negative values</span></code>: <span class="opt-desc">Uses a fixed value (i.e. fixes \( \lambda \) to a value of -lambdaf)</span></li></ul>
202
202
  </div>
203
203
  </div><div class="setting">
204
204
  <div class="row align-items-center setting-chooser">
@@ -261,9 +261,9 @@
261
261
  <div class="col-9">
262
262
  <h3 class="name"><code>qcflag</code></h3>
263
263
  <p class="description">Selects model to determine critical mass ratios for the onset of unstable mass transfer and/or a common envelope during RLO. NOTE: this is overridden by <code>qcrit_array</code> if any of its values are non-zero.</p>
264
- <p class="default">Default: 1</p>
264
+ <p class="default">Default: 5</p>
265
265
  </div>
266
- <div class="col-3"><select class="form-control"><option value="0">0</option><option selected="true" value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select></div>
266
+ <div class="col-3"><select class="form-control"><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option selected="true" value="5">5</option></select></div>
267
267
  </div>
268
268
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
269
269
  <div class="row options hide">
@@ -404,12 +404,12 @@
404
404
  <p class="description">Sets the particular natal kick prescription to use. Note that <code class="docutils literal notranslate"><span class="pre">sigmadiv</span></code>, <code class="docutils literal notranslate"><span class="pre">bhflag</span></code>, <code class="docutils literal notranslate"><span class="pre">bhsigmafrac</span></code>, <code class="docutils literal notranslate"><span class="pre">aic</span></code>, and <code class="docutils literal notranslate"><span class="pre">ussn</span></code>, which are described below, are only used when <code class="docutils literal notranslate"><span class="pre">abs(kickflag)=1</span></code>. Positive values use the Pfahl+2002 prescription for handling natal kicks.</p>
405
405
  <p class="default">Default: 1</p>
406
406
  </div>
407
- <div class="col-3"><select class="form-control"><option selected="true" value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="negative values">negative values</option></select></div>
407
+ <div class="col-3"><select class="form-control"><option selected="true" value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="-1">-1</option><option value="-2">-2</option><option value="-3">-3</option><option value="-4">-4</option></select></div>
408
408
  </div>
409
409
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
410
410
  <div class="row options hide">
411
411
  <p class="options-preface"></p>
412
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">1</span></code>: <span class="opt-desc">The standard COSMIC kick prescription, where kicks are drawn from a bimodal distribution with standard FeCCSN getting a kick drawn from a Maxwellian distribution with dispersion parameter <code class="docutils literal notranslate"><span class="pre">sigma</span></code> and ECSN/USSN are drawn according to <code class="docutils literal notranslate"><span class="pre">sigmadiv</span></code>. This setting has additional possible options for <code class="docutils literal notranslate"><span class="pre">bhflag</span></code>, <code class="docutils literal notranslate"><span class="pre">bhsigmafrac</span></code>, <code class="docutils literal notranslate"><span class="pre">aic</span></code> and <code class="docutils literal notranslate"><span class="pre">ussn</span></code>.</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">2</span></code>: <span class="opt-desc">Natal kicks are drawn according to <code class="docutils literal notranslate"><span class="pre">sigma</span></code> and scaled by the ejecta mass and remnant mass following Eq. 1 of <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2020ApJ...891..141G/abstract">Giacobbo &amp; Mapelli 2020</a> with their default parameters (\(m_{\rm NS = 1.2 {\rm M_\odot}\), \(m_{\rm ej = 9 {\rm M_\odot}\))</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">3</span></code>: <span class="opt-desc">Natal kicks are drawn according to <code class="docutils literal notranslate"><span class="pre">sigma</span></code> and scaled by just the ejecta mass following Eq. 2 of <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2020ApJ...891..141G/abstract">Giacobbo &amp; Mapelli 2020</a>, which does not scale the kick by (\(m_{\rm NS\)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">4</span></code>: <span class="opt-desc">Natal kicks are drawn according to Eq. 1 of <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2016MNRAS.461.3747B/abstract">Bray &amp; Eldridge 2016</a>, with their default parameters (\(\alpha=70 \, {\rm km/s}, \beta = 120 \, {\rm km/s)}</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">negative values</span></code>: <span class="opt-desc">Same as above settings but using the old Kiel &amp; Hurley 2009 prescription for changing the orbital configuration of the binary, available for reproducibility purposes but not recommended for new work</span></li></ul>
412
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">1</span></code>: <span class="opt-desc">The standard COSMIC kick prescription, where kicks are drawn from a bimodal distribution with standard FeCCSN getting a kick drawn from a Maxwellian distribution with dispersion parameter <code class="docutils literal notranslate"><span class="pre">sigma</span></code> and ECSN/USSN are drawn according to <code class="docutils literal notranslate"><span class="pre">sigmadiv</span></code>. This setting has additional possible options for <code class="docutils literal notranslate"><span class="pre">bhflag</span></code>, <code class="docutils literal notranslate"><span class="pre">bhsigmafrac</span></code>, <code class="docutils literal notranslate"><span class="pre">aic</span></code> and <code class="docutils literal notranslate"><span class="pre">ussn</span></code>.</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">2</span></code>: <span class="opt-desc">Natal kicks are drawn according to <code class="docutils literal notranslate"><span class="pre">sigma</span></code> and scaled by the ejecta mass and remnant mass following Eq. 1 of <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2020ApJ...891..141G/abstract">Giacobbo &amp; Mapelli 2020</a> with their default parameters (\(m_{\rm NS = 1.2 {\rm M_\odot}\), \(m_{\rm ej = 9 {\rm M_\odot}\))</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">3</span></code>: <span class="opt-desc">Natal kicks are drawn according to <code class="docutils literal notranslate"><span class="pre">sigma</span></code> and scaled by just the ejecta mass following Eq. 2 of <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2020ApJ...891..141G/abstract">Giacobbo &amp; Mapelli 2020</a>, which does not scale the kick by (\(m_{\rm NS\)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">4</span></code>: <span class="opt-desc">Natal kicks are drawn according to Eq. 1 of <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2016MNRAS.461.3747B/abstract">Bray &amp; Eldridge 2016</a>, with their default parameters (\(\alpha=70 \, {\rm km/s}, \beta = 120 \, {\rm km/s)}</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">5</span></code>: <span class="opt-desc">Follows the same prescription as 1, but uses the kick prescription described in <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2025arXiv250522102D/abstract">Disberg &amp; Mandel 2025</a> for CCSN.</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-1</span></code>: <span class="opt-desc">As 1, but using the old Kiel &amp; Hurley 2009 prescription for changing the orbital configuration of the binary, available for reproducibility purposes but not recommended for new work</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-2</span></code>: <span class="opt-desc">As 2, but using the old Kiel &amp; Hurley 2009 prescription for changing the orbital configuration of the binary, available for reproducibility purposes but not recommended for new work</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-3</span></code>: <span class="opt-desc">As 3, but using the old Kiel &amp; Hurley 2009 prescription for changing the orbital configuration of the binary, available for reproducibility purposes but not recommended for new work</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-4</span></code>: <span class="opt-desc">As 4, but using the old Kiel &amp; Hurley 2009 prescription for changing the orbital configuration of the binary, available for reproducibility purposes but not recommended for new work</span></li></ul>
413
413
  </div>
414
414
  </div><div class="setting">
415
415
  <div class="row align-items-center setting-chooser">
@@ -423,7 +423,7 @@
423
423
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
424
424
  <div class="row options hide">
425
425
  <p class="options-preface"></p>
426
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">Sets the dispersion in the Maxwellian for the SN kick velocity in km/s</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">265.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
426
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">Sets the dispersion in the Maxwellian for the SN kick velocity in km/s</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">No natal kicks for core-collapse when using Hobbs kicks</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">265.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
427
427
  </div>
428
428
  </div><div class="setting">
429
429
  <div class="row align-items-center setting-chooser">
@@ -451,7 +451,7 @@
451
451
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
452
452
  <div class="row options hide">
453
453
  <p class="options-preface"></p>
454
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">values between [0, 1]</span></code>: <span class="opt-desc">reduces sigma by bhsigmafrac for BHs</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">1.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
454
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">range (0, 1]</span></code>: <span class="opt-desc">reduces sigma by bhsigmafrac for BHs</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">1.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
455
455
  </div>
456
456
  </div><div class="setting">
457
457
  <div class="row align-items-center setting-chooser">
@@ -484,7 +484,7 @@
484
484
  </div><div class="setting">
485
485
  <div class="row align-items-center setting-chooser">
486
486
  <div class="col-9">
487
- <h3 class="name"><code>ecsn_low</code></h3>
487
+ <h3 class="name"><code>ecsn_mlow</code></h3>
488
488
  <p class="description">Sets the low end of the ECSN mass range</p>
489
489
  <p class="default">Default: 1.6</p>
490
490
  </div>
@@ -493,7 +493,7 @@
493
493
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
494
494
  <div class="row options hide">
495
495
  <p class="options-preface"></p>
496
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">sets maximum He-star mass for ECSN; <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2002MNRAS.329..897H/abstract">BSE (Hurley+2002)</a> uses ecsn_mlow = 1.6, <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2008ApJS..174..223B/abstract">StarTrack (Belczynski+2008)</a> uses ecsn_mlow = 1.85, <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2004ApJ...612.1044P/abstract">Podsiadlowksi+2004</a> argues that binarity can decrease this to ecsn_mlow = 1.4</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">1.6</span></code>: <span class="opt-desc">Default choice</span></li></ul>
496
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">sets maximum He-star mass for ECSN; <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2002MNRAS.329..897H/abstract">BSE (Hurley+2002)</a> uses ecsn_mlow = 1.6, <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2008ApJS..174..223B/abstract">StarTrack (Belczynski+2008)</a> uses ecsn_mlow = 1.85, <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2004ApJ...612.1044P/abstract">Podsiadlowksi+2004</a> argues that binarity can decrease this to ecsn_mlow = 1.4</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">no lower limit on He-star mass for ECSN</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">1.6</span></code>: <span class="opt-desc">Default choice</span></li></ul>
497
497
  </div>
498
498
  </div><div class="setting">
499
499
  <div class="row align-items-center setting-chooser">
@@ -549,7 +549,7 @@
549
549
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
550
550
  <div class="row options hide">
551
551
  <p class="options-preface"></p>
552
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">values between [0, 90]</span></code>: <span class="opt-desc">Sets the opening angle of the SN kick relative to the pole of the exploding star</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">Strictly polar kicks</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">90.0</span></code>: <span class="opt-desc">Fully isotropic kicks (default choice)</span></li></ul>
552
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">range [0, 90]</span></code>: <span class="opt-desc">Sets the opening angle of the SN kick relative to the pole of the exploding star</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">Strictly polar kicks</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">90.0</span></code>: <span class="opt-desc">Fully isotropic kicks (default choice)</span></li></ul>
553
553
  </div>
554
554
  </div><div class="setting">
555
555
  <div class="row align-items-center setting-chooser">
@@ -605,7 +605,7 @@
605
605
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
606
606
  <div class="row options hide">
607
607
  <p class="options-preface"></p>
608
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">sets the maximum amount of mass loss, which should be about 10% of the maximum mass of an iron core (\({\sim 5 \mathrm{M}_\odot}\) Fryer, private communication)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">values in [-1, 0)</span></code>: <span class="opt-desc">assumes that proto-compact objects lose a constant fraction of their baryonic mass when collapsing to a black hole, such that \(M_{\rm rem} = (1 + \texttt{rembar\_massloss}) M_{\rm rem}\) (e.g., rembar_massloss = -0.1 gives the black hole a gravitational mass that is 90% of the proto-compact object's baryonic mass)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.5</span></code>: <span class="opt-desc">Default choice</span></li></ul>
608
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">sets the maximum amount of mass loss, which should be about 10% of the maximum mass of an iron core (\({\sim 5 \mathrm{M}_\odot}\) Fryer, private communication)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">range [-1, 0]</span></code>: <span class="opt-desc">assumes that proto-compact objects lose a constant fraction of their baryonic mass when collapsing to a black hole, such that \(M_{\rm rem} = (1 + \texttt{rembar\_massloss}) M_{\rm rem}\) (e.g., rembar_massloss = -0.1 gives the black hole a gravitational mass that is 90% of the proto-compact object's baryonic mass)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.5</span></code>: <span class="opt-desc">Default choice</span></li></ul>
609
609
  </div>
610
610
  </div><div class="setting">
611
611
  <div class="row align-items-center setting-chooser">
@@ -647,7 +647,7 @@
647
647
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
648
648
  <div class="row options hide">
649
649
  <p class="options-preface"></p>
650
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">Sets either the spin of all BHs or the upper limit of the uniform distribution for BH spins (see bhspinflag)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
650
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">range [0, 1]</span></code>: <span class="opt-desc">Sets either the spin of all BHs or the upper limit of the uniform distribution for BH spins (see bhspinflag)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
651
651
  </div>
652
652
  </div><div class="settings-section"><h2 id="gr-orbital-decay">GR Orbital Decay</h2><hr/></div><div class="setting">
653
653
  <div class="row align-items-center setting-chooser">
@@ -668,14 +668,14 @@
668
668
  <div class="col-9">
669
669
  <h3 class="name"><code>eddfac</code></h3>
670
670
  <p class="description">Eddington limit factor for mass transfer.</p>
671
- <p class="default">Default: 1</p>
671
+ <p class="default">Default: 10</p>
672
672
  </div>
673
- <div class="col-3"><input class="form-control" type="number" value="1"/></div>
673
+ <div class="col-3"><input class="form-control" type="number" value="10"/></div>
674
674
  </div>
675
675
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
676
676
  <div class="row options hide">
677
677
  <p class="options-preface"></p>
678
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">1</span></code>: <span class="opt-desc">mass transfer rate is limited by the Eddington rate following Equation 67 in <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2002MNRAS.329..897H/abstract">Hurley+2002</a></span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">values &gt; 1</span></code>: <span class="opt-desc">permit super-Eddington accretion up to value <code>eddfac</code></span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">values in [0, 1]</span></code>: <span class="opt-desc">restrict accretion limit to fraction of Eddington (sub-Eddington accretion)</span></li></ul>
678
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">restrict accretion limit to fraction of Eddington (sub- or super-Eddington accretion)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0</span></code>: <span class="opt-desc">no mass transfer onto compact objects</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">1</span></code>: <span class="opt-desc">mass transfer rate is limited by the Eddington rate following Equation 67 in <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2002MNRAS.329..897H/abstract">Hurley+2002</a></span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">10</span></code>: <span class="opt-desc">mass transfer rate is limited to 10x the Eddington rate</span></li></ul>
679
679
  </div>
680
680
  </div><div class="setting">
681
681
  <div class="row align-items-center setting-chooser">
@@ -689,7 +689,7 @@
689
689
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
690
690
  <div class="row options hide">
691
691
  <p class="options-preface"></p>
692
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">-1</span></code>: <span class="opt-desc">assumes the lost material carries away the specific angular momentum of the primary</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-2</span></code>: <span class="opt-desc">assumes material is lost from the system as if it is a wind from the secondary</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-3</span></code>: <span class="opt-desc">assumes mass is lost through the outer Lagrangian point, forming a circumbinary disk. See Zapartas+17 Eq. 9 and Artymowicz &amp; Lubow (1994).</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">assumes that the lost material takes away a fraction <code>gamma</code> of the orbital angular momentum</span></li></ul>
692
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">-1</span></code>: <span class="opt-desc">assumes the lost material carries away the specific angular momentum of the primary</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-2</span></code>: <span class="opt-desc">assumes material is lost from the system as if it is a wind from the secondary</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-3</span></code>: <span class="opt-desc">assumes mass is lost through the outer Lagrangian point, forming a circumbinary disk. See Zapartas+17 Eq. 9 and Artymowicz &amp; Lubow (1994).</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">assumes that the lost material takes away a fraction <code>gamma</code> of the orbital angular momentum</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">no angular momentum loss from the system due to mass loss</span></li></ul>
693
693
  </div>
694
694
  </div><div class="setting">
695
695
  <div class="row align-items-center setting-chooser">
@@ -717,7 +717,7 @@
717
717
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
718
718
  <div class="row options hide">
719
719
  <p class="options-preface"></p>
720
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">-1</span></code>: <span class="opt-desc">limited to 10x the thermal rate of the accretor for MS/HG/CHeB and unlimited for GB/EAGB/AGB stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-2</span></code>: <span class="opt-desc">limited to 1x the thermal rate of the accretor for MS/HG/CHeB and unlimited for GB/EAGB/AGB stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-3</span></code>: <span class="opt-desc">limited to 10x the thermal rate of the accretor for all stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-4</span></code>: <span class="opt-desc">limited to 1x the thermal rate of the accretor for all stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">&gt;= 0</span></code>: <span class="opt-desc">sets overall fraction of donor material that is accreted, with the rest being lost from the system (<code>acc_lim = 0.5</code> assumes 50% accretion efficiency as in <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2008ApJS..174..223B/abstract">Belczynski+2008</a>)</span></li></ul>
720
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">-1</span></code>: <span class="opt-desc">limited to 10x the thermal rate of the accretor for MS/HG/CHeB and unlimited for GB/EAGB/AGB stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-2</span></code>: <span class="opt-desc">limited to 1x the thermal rate of the accretor for MS/HG/CHeB and unlimited for GB/EAGB/AGB stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-3</span></code>: <span class="opt-desc">limited to 10x the thermal rate of the accretor for all stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">-4</span></code>: <span class="opt-desc">limited to 1x the thermal rate of the accretor for all stars</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">sets overall fraction of donor material that is accreted, with the rest being lost from the system (<code>acc_lim = 0.5</code> assumes 50% accretion efficiency as in <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2008ApJS..174..223B/abstract">Belczynski+2008</a>)</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.0</span></code>: <span class="opt-desc">assume all mass is lost from the system (fully nonconservative)</span></li></ul>
721
721
  </div>
722
722
  </div><div class="settings-section"><h2 id="tides">Tides</h2><hr/></div><div class="setting">
723
723
  <div class="row align-items-center setting-chooser">
@@ -801,7 +801,7 @@
801
801
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
802
802
  <div class="row options hide">
803
803
  <p class="options-preface"></p>
804
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">Retains epsnov fraction of accreted matter</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.001</span></code>: <span class="opt-desc">Default choice</span></li></ul>
804
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">range [0, 1]</span></code>: <span class="opt-desc">Retains epsnov fraction of accreted matter</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">0.001</span></code>: <span class="opt-desc">Default choice</span></li></ul>
805
805
  </div>
806
806
  </div><div class="settings-section"><h2 id="pulsars">Pulsars</h2><hr/></div><div class="setting">
807
807
  <div class="row align-items-center setting-chooser">
@@ -857,7 +857,7 @@
857
857
  <div class="options-expander" style="color: lightcoral;">Option details <i class="fa fa-chevron-down"></i></div>
858
858
  <div class="row options hide">
859
859
  <p class="options-preface"></p>
860
- <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">positive values</span></code>: <span class="opt-desc">sets the mixing factor in main sequence star collisions</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">1.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
860
+ <ul style="margin-left: 2rem; max-width: calc(100% - 2rem)"><li><code class="docutils literal notranslate"><span class="pre opt-val">range [0, 1]</span></code>: <span class="opt-desc">sets the mixing factor in main sequence star collisions</span></li><li><code class="docutils literal notranslate"><span class="pre opt-val">1.0</span></code>: <span class="opt-desc">Default choice</span></li></ul>
861
861
  </div>
862
862
  </div><div class="setting">
863
863
  <div class="row align-items-center setting-chooser">