-
Bug fixes
- Fixed issue from v3.7.6 where multiprocessing re-used random seeds across workers. This results in non-unique samples proportional to the number of cores that you used.
-
Additions/changes
- kick_info table now includes another column with the time of each supernova
-
Code cleanup
- Function signature for kick() and evolv2() in the fortran changed to remove
bkickentirely - Also removed
kick_info_out. Both of these can be reconstructed fromkick_info - [Just for developers] Created
consts.pywhichevolve.pynow draws from, loops over GROUPED_SETTINGS instead of giant chunk of assignments
- Function signature for kick() and evolv2() in the fortran changed to remove
-
Bug fixes:
- corrected mass sign in bjorklund wind routine in SSE_mlwind.f
- fixed bug in
bhspinmagassignment inassign_remnant.f - fixed issue added in v3.7.6 where sample fails if you have total_mass as your sampling target and use multiprocessing
- Additions/changes:
- applies Hurley track metallicity limits only for SSE
- adds ValueError if the masses supplied to initial binary table are outside the supplied track range
- updated debug makefile work with new METISSE repo org
- Additions/changes:
- Adds the METISSE stellar engine where now the stellar engine must be specified as either sse or metisse. If metisse is used, the tracks must be specified directly.
- Additions/changes:
- Added
smt_periastron_checksetting, which allows the user to toggle whether to check for periastron collision during stable mass transfer. By default, we set this off, which changes the behaviour of previous versions since 3.6.0 (PR #694) which did check for contact at periastron during stable mass transfer. We set this to off as the radial expansion from SSE is likely overestimated, once we connect with COSMIC-METISSE this should likely be set to 1.
- Added
- Additions/changes:
- Split out alpha1 and acc_lim to have parameters specified for each component in the binary
- added several prescriptions for winds and compact object formation
- Additions/changes:
- Added
poolandnprocparameters to theindependentsampler. Users can either specify an existing multiprocessing pool or a number of processors to use to create a pool that will be used for the sampling. This offers significant speed-ups for samples larger than 10,000 binaries.
- Added
- Fixes:
- Prevent tides calculations based on NS/BHs
- Track mean_anomaly (save to kick_info) array even when a system is disrupted
- Throw an error if invalid metallicities are provided for evolution
This release contains several fixes to how CO core masses/remnant masses are handled. It also adds a new PISN prescription, windflag and LBV winds flag.
-
Fixes:
- Update
mc_coandmc_heafter adjustingmc = mcmaxinhrdiag.ffor stripped stars. This can be a fairly significant change, up to ~2 Msun. (Used to actually be up to 10 Msun because we added HeMS core mass growth) - Make
evolv2.factually log PISN (they get set tokw = 15so were missed previously) - Change
loop = 40000(up from 20,000), otherwise 70 Msun stars run out of loops with new mass modifier - Changed all existing
pisnprescriptions to usemc_totinstead ofmcbagbfor conditions - Update
mc = mtfor ALL remnants instead of just for certain flags - Only apply conversion from baryonic to gravitational mass once. Previous code APPLIED IT TWICE!! for core-collapse BHs! Create subroutine
baryonic_to_gravitational_mass, which is called throughout - Ensure stellar type changes during hrdiag are logged to the bpp before SN occurs
- Add check after CE for whether a SN occurs right at the end
- Update
-
Additions/changes:
- Linearly grow the core mass of HeMS stars from 0 to the value at the start of HeHG and check for core-collapse for all He stars (not just HeHG and HeGB)
- Add
dt_mass_modifierargument toEvolve.evolve(). This lets you specify a list of tuples(m_low, m_high, mod), which multipliespts1/pts2/pts3bymodfor stars with primary star (only care about primary, conservative) ZAMS masses betweenm_low <= m_ZAMS < m_high - Added a
windflag = -1option to turn off stellar winds entirely - Added
pisn = -4for Renzo+22/Hendriks+23 prescription for PPISN mass loss- With options
ppi_co_shiftandppi_extral_ml
- With options
- Add new setting
LBV_flagwhich allows one to turn off LBV winds, use Hurley+2000, or use Belcyznski+2008 - Change the default LBV winds to Hurley
-
Code cleanup:
assign_remnantno longer takesmc_totas a parameter, just get it from the common block- WD chandrasekhar check use
mc_coinstead ofmc - Remnant flags 0-4 inclusive use
mc_coinstead ofmc - Got rid of
mcxinassign_remnantin favour of clearerm_protoandm_FeNito match the papers - [Very minor] Fryer Rapid was using <= instead of < everywhere
-
Documentation:
- Start new settings gallery in the documentation
- Tag settings/options with the version they were added in the docs page and auto link them to release
Issues with PyPi, unreleased.
- Bug fix (#729): ensure disruptions are logged with
evol_type==11when SNe occur during CEs - Bug fix (#725): set
tb=sep=0for cases where AIC caused a WD to explode and leave behind no remnant (evolve_type==9) - Bug fix (#724): remove bug where
kstar=15was assigned its previous epoch mass after merging during a CE and the merger product goes SN
- Add
remnantflag=5: The Mandel & Muller 2020 prescription for remnant masses - Add
kickflag=6: The Mandel & Muller 2020 prescription for natal kicks. This can be tuned withmm_mu_nsandmm_mu_bh - Add
remnantflag=6: The Maltsev+25 and Willcox+25 prescription for remnant masses. This can be tuned withmaltsev_modeandmaltsev_fallback - (Docs) Any tutorial that uses a plain BSEDict now uses one that is drawn from the cosmic-settings.json file to avoid missing changes and saves us updating each docs page
- Add functions to
cosmic.utilsfor initC IO that's more efficient (save_initC,load_initC) by saving identical setting columns separately with only one copy - saves ~1kb per binary - Make He and CO core masses available in output
- Change defaults;
qcflag=5andeccfac=10 - Prevent users from supplying both
qminandm2_min - Prevent users from supplying both
sepandporbwhen sampling, calculateporbfromsepas necessary - Define
binstate=-1as single stars
- Add support for single stars in both independent and multidim sampling
- update documentation
- Overhaul documentation and added debugging environment
- Feature: Added Disberg+2025 kick prescription as a new choice of
kickflag(kickflag=5). Applies log-normal distribution to regular CCSN, ECSN/USSN still usesigmadivMaxwellian and BH fallback scaling is still applied viabhflagandbhsigmafracas withkickflag=1
- Feature: Added
bpp_columnsandbcm_columnsparameters to theevolve()function to allow users to specify the columns in the bpp and bcm tables - Bug fix: Changed
kick.fto use the Pfahl+02 kick prescription by default instead of Kiel & Hurley 2009, this fixes ejection velocities of secondaries and also changed kick_info to have an extra column
- Added sampling options to
independentsampler to allow for custom power law distributions forporbandq
- Bug fixes:
timestep_conditionsforbcmarrays now raise errors for invalid columns instead of failing silently - Add
teff_1andteff_2as variables that can be used to settimestep_conditions - Add in
-1option to turn off Magnetic Braking in htmb - Added
central_bhandscale_with_central_bhas options to the CMC sampler, in order to add central massive black holes to CMC initial conditions
- Added
sampling_target == "total_mass"option to independent sampler so you can target a specific total mass instead of number of binaries - Added
trim_extra_samplesparameter to the same function - which trims your samples to get as close as possible to the target total mass - Bug fixes: secondaries of single stars are now marked as massless remnants instead of main sequence stars, binfrac=0.0 no longer leads to an infinite loop in sampling
- removed zsun_wind so that we can match stock BSE exactly and added extra documentation surrounding the winds
- added a NaN catch in cosmic-pop that throws a warning of NaNs, saves them to a file, and instructs the user to consider changing pts1 since this is the main driver of NaNs so far
- Exchanged any print statements for
warnings.warnto allow silencing - Fixed up docs to catch warnings
- added new Eddington limit prescriptions for BH accretion
- cleaned up versioning
- updated the actions to build properly
- fixed sampling issues for renzo19 and sana12 so that they work with CMC
- update to Docker ubuntu image
- minor fixes to documentation to stop warnings/errors which break doc website deployment
- adds in build wheels for Python 3.9 and 3.10
- add warning for mlwind prescriptions which assume zsun = 0.019
- modifications to how m2min and qmin are specified in initial conditions sampling
- fixed sampling issues from Plummer profiles in cmc.py
- fixed Eddington limits such that wind accretion is limited to eddington and thus limits RLO accretion if the wind accretion is already super-Eddington
- fixed errors in Marchant+ PISN prescription
See the discussed changes in our previous releases here