Skip to content

Neutron Star Kicks Cause System to have NaN porb, negative separation #798

Description

@d-maclean

Step to Reproduce

Run the attached code with the standard/POSYDON big_z2 tracks.

CSV file

bad_initC_NaNs_NS_0.0014.csv

Tracks

Provided to developers on request.

Code

import pandas as pd
from cosmic.evolve import Evolve

BSEDict = {'pts1': 0.001,
    'pts2': 0.01, 'pts3': 0.02, 'zsun': 0.014, 'windflag': 3, 'eddlimflag': 0,
    'neta': 0.5, 'bwind': 0.0, 'hewind': 0.5, 'beta': -1, 'xi': 1.0, 'acc2': 1.5,
    'LBV_flag': 2, 'alpha1': [1.0, 1.0], 'lambdaf': 1.0, 'ceflag': 0, 'cekickflag': 2,
    'cemergeflag': 0, 'cehestarflag': 0, 'qcflag': 5,
    'qcrit_array': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    'kickflag': 5, 'sigma': 265.0, #265.0,
    'bhflag': 1, 'bhsigmafrac': 1.0, 'sigmadiv': -20.0,
    'ecsn': 2.25, 'ecsn_mlow': 1.6, 'aic': 1, 'ussn': 1, 'polar_kick_angle': 90.0,
    'natal_kick_array': [[-100.0, -100.0, -100.0, -100.0, 0.0], [-100.0, -100.0, -100.0, -100.0, 0.0]],
    'mm_mu_ns': 400.0, 'mm_mu_bh': 200.0, 'remnantflag': 4, 'fryer_mass_limit': 0, 'mxns': 3.0,
    'fryer_fmix': 1.0, 'fryer_mcrit_nsbh': 5.75, 'rembar_massloss': 0.5, 'wd_mass_lim': 1,
    'maltsev_mode': 0, 'maltsev_fallback': 0.5, 'maltsev_pf_prob': 0.1, 'pisn': -4,
    'ppi_co_shift': 0.0, 'ppi_extra_ml': 0.0, 'bhspinflag': 0, 'bhspinmag': 0.0, 'grflag': 1,
    'eddfac': 10, 'gamma': -2, 'don_lim': -1, 'acc_lim': [-1, -1],
    'smt_periastron_check': 0, 'tflag': 1, 'ST_tide': 1,
    'fprimc_array': [0.09523809523809523]*16, 'ifflag': 1, 'wdflag': 1, 'epsnov': 0.001,
    'bdecayfac': 1, 'bconst': 3000, 'ck': 1000, 'rejuv_fac': 1.0, 'rejuvflag': 0,
    'bhms_coll_flag': 0, 'htpmb': 1, 'ST_cr': 1, 'rtmsflag': 0}

SSEDict = {
    "stellar_engine": "metisse",
    "path_to_tracks": "/home/duncan_m/Projects/stellar_tracks/big_z2_eeps/POSYDON/hydrogen/",
    "path_to_he_tracks": "/home/duncan_m/Projects/stellar_tracks/big_z2_eeps/POSYDON/helium/",
    "z_accuracy_limit": 1e-2,
}

binaries = pd.read_csv("bad_initC_NaNs_NS_0.0014.csv")
timestep_conditions = [['kstar_1<20', 'dtp=0.0']]

bpp, bcm, iC, kick_info = Evolve.evolve(
    initialbinarytable=binaries, BSEDict=BSEDict,
    SSEDict=SSEDict, nproc=1, timestep_conditions=timestep_conditions
)

print(bpp[bpp.isna().any(axis=1)])

Description

I've noticed an issue on the develop branch in which systems that contain a neutron star disrupt and report negative separations and NaN orbital periods. These systems are reported as disrupted in kick_info but not in bcm. This can cause cosmic-pop to flag these systems as bad and throw a warning in the logs. It might also indicate a bigger problem in how supernova kicks are being reported.

Expect outcome

Binaries which disrupt should have ecc=porb=sep=-1 to avoid polluting the output table with NaNs.

Flags

Turning the kickflag to 1 or 6 seems to resolve the issue, so I think this is a problem specifically with the Disberg+2025 kicks.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions