SNEWS2 / snewpy

A Python package for working with supernova neutrinos
https://snewpy.readthedocs.io
BSD 3-Clause "New" or "Revised" License
24 stars 17 forks source link

Tag models with falied explosions and black hole formation #333

Open Sheshuk opened 1 month ago

Sheshuk commented 1 month ago

The goal here is to tag the models which lead to black hole formation:

metadata["Explodes"]=False #if the model doesn't lead to explosion
metadata["Black hole"]=True #if the model forms the BH at the end of the simulation

This is work related to issue #303

We already have the Black hole flag in the Fornax_2022 model metadata. (edit: it should be metadata["Explodes"] == False) It would be nice to tag all the models with black hole formation, so the user can easily study this scenario in all existing models.

evanoconnor commented 1 month ago

In O'Connor 2015 that model forms a black hole. In O'Connor 2013 those models do not (when the simulation ends) form black holes In Zha 2021, many do form black holes, including: s16, s17, s19.89, s19, s20, s21, s22.39, s22, s23, s24, s26, s30, and s33 those that don't are s18, s25

We should check the Walk 2019 models, I think there are black hole in there. There may be some black holes in the Warren models, that will take some digging though, there are so many.

On a different note, some of the Zha 2021 models undergo a quark-hadron phase transition. This could be the subject of a future tag?

JostMigenda commented 1 month ago

For Warren_2020, here’s a code snippet I wrote a while back:

import h5py
from snewpy import model_path

def explodes(f: h5py._hl.files.File):
    """Returns bool indicating whether simulation exploded successfully.

    A simulation is considered to explode if its diagnostic explosion energy
    exceeds 1e49 ergs. This is in line with the definition of explosion time
    in arXiv:1902.01340v2, p. 16."""
    return f['sim_data']['expl_energy'][-1][1] > 1e49

def core_bounce_time(f: h5py._hl.files.File):
    """Returns core bounce time, i.e. earliest time with a non-zero shock radius."""
    for (time, radius) in f['sim_data']['shock_radius']:
        if radius > 0.00001:
            return time

def bh_formation_time(f: h5py._hl.files.File):
    """Returns black hole formation time.

    For low-compactness progenitors, black hole formation time might be longer than
    simulation time, see discussion in arXiv:1902.01340v2, p. 16."""
    if explodes(f):
        raise ValueError(f"{f} explodes successfully. Cannot determine black hole formation time.")

    t_bounce = core_bounce_time(f)
    t_max = f['sim_data']['shock_radius'][-1][0]
    if t_max < 4.99:
        return t_max - t_bounce
    else:
        # TODO: estimate from free-fall timescale instead of raising ValueError?
        raise ValueError(f"Simulation stopped at {t_max - t_bounce:.6} s post-bounce. Neither explosion nor black hole formation observed.")

# all available progenitor masses
masses = ['9.0', '9.25', '9.5', '9.75', '10.0', '10.25', '10.5', '10.75', '11.0', '11.25', '11.5', '11.75', '12.0', '12.25', '12.5', '12.75', '13.0', '13.1', '13.2', '13.3', '13.4', '13.5', '13.6', '13.7', '13.8', '13.9', '14.0', '14.1', '14.2', '14.3', '14.4', '14.5', '14.6', '14.7', '14.8', '14.9',
          '15.0', '15.1', '15.2', '15.3', '15.4', '15.5', '15.6', '15.7', '15.8', '15.9', '16.0', '16.1', '16.2', '16.3', '16.4', '16.5', '16.6', '16.7', '16.8', '16.9', '17.0', '17.1', '17.2', '17.3', '17.4', '17.5', '17.6', '17.7', '17.8', '17.9',
          '18.0', '18.1', '18.2', '18.3', '18.4', '18.5', '18.6', '18.7', '18.8', '18.9', '19.0', '19.1', '19.2', '19.3', '19.4', '19.5', '19.6', '19.7', '19.8', '19.9', '20.0', '20.1', '20.2', '20.3', '20.4', '20.5', '20.6', '20.7', '20.8', '20.9',
          '21.0', '21.1', '21.2', '21.3', '21.4', '21.5', '21.6', '21.7', '21.8', '21.9', '22.0', '22.1', '22.2', '22.3', '22.4', '22.5', '22.6', '22.7', '22.8', '22.9', '23.0', '23.1', '23.2', '23.3', '23.4', '23.5', '23.6', '23.7', '23.8', '23.9',
          '24.0', '24.1', '24.2', '24.3', '24.4', '24.5', '24.6', '24.7', '24.8', '24.9', '25.0', '25.1', '25.2', '25.3', '25.4', '25.5', '25.6', '25.7', '25.8', '25.9', '26.0', '26.1', '26.2', '26.3', '26.4', '26.5', '26.6', '26.7', '26.8', '26.9',
          '27.0', '27.1', '27.2', '27.3', '27.4', '27.5', '27.6', '27.7', '27.8', '27.9', '28.0', '28.1', '28.2', '28.3', '28.4', '28.5', '28.6', '28.7', '28.8', '28.9', '29.0', '29.1', '29.2', '29.3', '29.4', '29.5', '29.6', '29.7', '29.8', '29.9',
          '30.0', '31', '32', '33', '35', '40', '45', '50', '55', '60', '70', '80', '100', '120']

a_lambda = '1.23'  # mixing length parameter

for m in masses:
    filename = f"{model_path}/Warren_2020/stir_a{a_lambda}/stir_multimessenger_a{a_lambda}_m{m}.h5"
    f = h5py.File(filename, 'r')

    if explodes(f):
        print(f"{a_lambda}, {m} explodes.")
    else:
        try:
            print(f"{a_lambda}, {m} forms black hole at {bh_formation_time(f):.6} s post-bounce.")
        except ValueError as e:
            print(f"{a_lambda}, {m} [UNKNOWN]: {e}")
Sheshuk commented 1 month ago

Thanks a lot @evanoconnor and @JostMigenda! I will implement this.

In Zha 2021, many do form black holes, including: s16, s17, s19.89, s19, s20, s21, s22.39, s22, s23, s24, s26, s30, and s33 those that don't are s18, s25

I'm a bit confused, since the paper https://iopscience.iop.org/article/10.3847/1538-4357/abec4c says (page 2)

All the progenitor models used in this work ... collapse to BHs in a reasonably short time

Does that mean that these models make failing supernovae, but s18 and s25 do not form BH at the end of the simulation, but will eventually?

evanoconnor commented 1 month ago

@Sheshuk yes, those two will form black holes, I.e. they are failed supernovae, but haven’t reached the actually black hole formation. I guess this is the idea of the tag, is to flag that the end is the time of black hole formation, rather than the simulation on the whole has failed? Or not?

I guess that statement on page two is a bit ambiguous. The point was that if the explosion failed, these would make black holes in a reasonable short time, O(s), because the compactness is high enough (not necessarily that they do so in the simulations). Lower compactness models may accrete for 10s, 100s, or even longer seconds before black hole formation (if they fail).

Sheshuk commented 1 month ago

I see, thank you for the explanation! Maybe then we need a special tag "failed"? Or "explodes"? Would the users want this list? Anyway, probably this is not for this PR.

Sheshuk commented 1 month ago

So now the following snippet

from snewpy.models.registry_model import get_models_table

table = get_models_table(init=True) #Some metadata is seen only after the initialization

models_bh =  table[table['Black hole']==True]
for m in models_bh:
    print(m['model'],m['init_params'])

produces the following list:

Details

snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Fornax_2022 {'progenitor_mass': } snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Zha_2021 {'progenitor_mass': , 'eos': 'STOS_B145'} snewpy.models.ccsn.Nakazato_2013 {'progenitor_mass': , 'revival_time': , 'metallicity': 0.004, 'eos': 'LS220'} snewpy.models.ccsn.Nakazato_2013 {'progenitor_mass': , 'revival_time': , 'metallicity': 0.004, 'eos': 'shen'} snewpy.models.ccsn.Nakazato_2013 {'progenitor_mass': , 'revival_time': , 'metallicity': 0.004, 'eos': 'togashi'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.27, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.25, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.Warren_2020 {'progenitor_mass': , 'turbmixing_param': 1.23, 'eos': 'SFHo'} snewpy.models.ccsn.OConnor_2015 {'progenitor_mass': , 'eos': 'LS220'}

evanoconnor commented 1 month ago

Ok, just to follow up here. The idea is to flag models where the shock hasn't been revived by the end of the simulation? If so, I would't call this a black hole tag. I think a black hole tag would be more appropriate for a simulation that ends when the black hole forms.

there is not a one-to-one mapping with no shock revival at some time and black hole formation. For example, there can be simulations that have successful explosions and still have black hole formation, also ones that are not exploding when the simulation ends but may later explode and leave a neutron star.

So we should be careful and clear with the definition.

Sheshuk commented 1 month ago

Yes, original idea was to tag the black hole formation during the simulation.

We can make any other tags, that could be useful for grouping simulations. Knowing if the given model is leading to (eventual) explosion would be useful for searches of failed supernovae signals.

I think we tagged most BH formations now, so if there are no other models to mark, I would consider this finished.

evanoconnor commented 1 month ago

Ok,

then I expect many of the Fornax ones are incorrectly tagged, the 12Msun (first in the list), failed to explode, but doesn’t actually form a black hole at that time, it is only simulated to ~1 second.

Sheshuk commented 1 month ago

then I expect many of the Fornax ones are incorrectly tagged, the 12Msun (first in the list), failed to explode, but doesn’t actually form a black hole at that time, it is only simulated to ~1 second.

For the Fornax_2022 I tagged the ones which have 'bh' in the file names. Is there a better way to get this information? Maybe there is some information in the data file?

In general it would be nice to add all accessible info to the metadata

Sheshuk commented 1 month ago

OK, looks like it's slightly more complicated then I expected. I suggest just setting the metadata["Explodes"] = False for these models - so at least it's possible to study the signals of failed supernovae.
And adding the black hole formation as a separate issue.