What’s New in COSMIC

v4.1.0

GitHub release

  • 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 bkick entirely

    • Also removed kick_info_out. Both of these can be reconstructed from kick_info

  • Bug fixes: corrected mass sign in bjorklund wind routine in SSE_mlwind.f

v4.0.1

GitHub release

  • 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

v4.0.0

GitHub release

  • 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.

v3.7.8

GitHub release

  • Additions/changes:
    • Added smt_periastron_check setting, 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.

v3.7.7

GitHub release

  • 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

v3.7.6

GitHub release

  • Additions/changes:
    • Added pool and nproc parameters to the independent sampler. 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.

v3.7.5

GitHub release

  • 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

v3.7.4

GitHub release

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_co and mc_he after adjusting mc = mcmax in hrdiag.f for 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.f actually log PISN (they get set to kw = 15 so 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 pisn prescriptions to use mc_tot instead of mcbagb for conditions

    • Update mc = mt for 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

  • 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_modifier argument to Evolve.evolve(). This lets you specify a list of tuples (m_low, m_high, mod), which multiplies pts1/pts2/pts3 by mod for stars with primary star (only care about primary, conservative) ZAMS masses between m_low <= m_ZAMS < m_high

    • Added a windflag = -1 option to turn off stellar winds entirely

    • Added pisn = -4 for Renzo+22/Hendriks+23 prescription for PPISN mass loss
      • With options ppi_co_shift and ppi_extral_ml

    • Add new setting LBV_flag which allows one to turn off LBV winds, use Hurley+2000, or use Belcyznski+2008

    • Change the default LBV winds to Hurley

  • Code cleanup:
    • assign_remnant no longer takes mc_tot as a parameter, just get it from the common block

    • WD chandrasekhar check use mc_co instead of mc

    • Remnant flags 0-4 inclusive use mc_co instead of mc

    • Got rid of mcx in assign_remnant in favour of clearer m_proto and m_FeNi to 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

v3.7.2-3.7.3

Issues with PyPi, unreleased.

v3.7.1

GitHub release

  • Bug fix (#729): ensure disruptions are logged with evol_type==11 when SNe occur during CEs

  • Bug fix (#725): set tb=sep=0 for cases where AIC caused a WD to explode and leave behind no remnant (evolve_type==9)

  • Bug fix (#724): remove bug where kstar=15 was assigned its previous epoch mass after merging during a CE and the merger product goes SN

v3.7.0

GitHub release

  • 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 with mm_mu_ns and mm_mu_bh

  • Add remnantflag=6: The Maltsev+25 and Willcox+25 prescription for remnant masses. This can be tuned with maltsev_mode and maltsev_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

v3.6.2

GitHub release

  • Add functions to cosmic.utils for 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=5 and eccfac=10

  • Prevent users from supplying both qmin and m2_min

  • Prevent users from supplying both sep and porb when sampling, calculate porb from sep as necessary

  • Define binstate=-1 as single stars

v3.6.1

GitHub release

  • Add support for single stars in both independent and multidim sampling

  • update documentation

v3.6.0

GitHub release

  • 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 use sigmadiv Maxwellian and BH fallback scaling is still applied via bhflag and bhsigmafrac as with kickflag=1

v3.5.0

GitHub release

  • Feature: Added bpp_columns and bcm_columns parameters to the evolve() function to allow users to specify the columns in the bpp and bcm tables

  • Bug fix: Changed kick.f to 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

v3.4.11

GitHub release

  • Added sampling options to independent sampler to allow for custom power law distributions for porb and q

v3.4.10

GitHub release

  • Bug fixes: timestep_conditions for bcm arrays now raise errors for invalid columns instead of failing silently

  • Add teff_1 and teff_2 as variables that can be used to set timestep_conditions

  • Add in -1 option to turn off Magnetic Braking in htmb

  • Added central_bh and scale_with_central_bh as options to the CMC sampler, in order to add central massive black holes to CMC initial conditions

v3.4.9

GitHub release

  • 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_samples parameter 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

v3.4.8

GitHub release

  • 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

v3.4.7

GitHub release

  • Exchanged any print statements for warnings.warn to allow silencing

  • Fixed up docs to catch warnings

v3.4.6

GitHub release

  • added new Eddington limit prescriptions for BH accretion

  • cleaned up versioning

v3.4.1-3.4.5

  • updated the actions to build properly

v3.4.1

GitHub release

  • 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

v0.0 - 3.4

See the discussed changes in our previous releases here