TeamCOMPAS / COMPAS

COMPAS rapid binary population synthesis code
http://compas.science
MIT License
64 stars 66 forks source link

Make neutrino mass loss during BH formation an user specified option #453

Closed avigna closed 3 years ago

avigna commented 3 years ago

Currently, during BH formation we lose 10% of mass in neutrinos (following Fryer+2012). This is an excesive amount that should be reduced for high mass stars.

We should add an user specified maximum/fixed fraction or mass loss that can be lost in neutrinos.

SimonStevenson commented 3 years ago

There are already options for this:

--neutrino-mass-loss-BH-formation Assumption about neutrino mass loss during BH formation (options: [FIXED_FRACTION, FIXED_MASS], default = FIXED_FRACTION) --neutrino-mass-loss-BH-formation-value Value corresponding to neutrino mass loss assumption (default = 0.100000)

I think we should change the default to be a loss of 0.1 solar masses (FIXED_MASS) for BH formation.

The problem is that these are not self consistently used in all the different supernova prescriptions, e.g. I think the new Mandel Mueller prescription ignores these and uses something else. I think the real task needed is to go through

avigna commented 3 years ago

I don't think those options are currently working. I tested two months ago via src when I posted this and they were not working. I retested now via command line and still don't seem to work. Maybe I can update with more details later this week, but feel free to give it a go.

SimonStevenson commented 3 years ago

These are implemented in CalculateNeutrinoMassLoss_Static in BH.cpp. At the moment this function only seems to be called in GiantBranch.cpp when evaluating PPISN (in ResolvePulsationalPairInstabilitySN).

I think this should be used in GiantBranch::CalculateGravitationalRemnantMass which currently has

root = 0.9 * p_BaryonicRemnantMass; // Black Hole

which I think should be replaced with a call to BH::CalculateNeutrinoMassLoss_Static

In addition, these options weren't accessible via the pythonSubmit, so I've added them to the default pythonSubmit.

I recommend changing the default from "FIXED_FRACTION" to "FIXED_MASS" (still with a value of 0.1, meaning we would now lose 0.1 solar masses).

Attached is a script (testNeutrinoBH.py renamed to .txt) and the following grid file (testNeutrinoBHOptions.txt)

--neutrino-mass-loss-BH-formation FIXED_FRACTION --neutrino-mass-loss-BH-formation-value 0.1 --neutrino-mass-loss-BH-formation FIXED_FRACTION --neutrino-mass-loss-BH-formation-value 0.01 --neutrino-mass-loss-BH-formation FIXED_FRACTION --neutrino-mass-loss-BH-formation-value 0.2 --neutrino-mass-loss-BH-formation FIXED_MASS --neutrino-mass-loss-BH-formation-value 0.1 --neutrino-mass-loss-BH-formation FIXED_MASS --neutrino-mass-loss-BH-formation-value 0.01 --neutrino-mass-loss-BH-formation FIXED_MASS --neutrino-mass-loss-BH-formation-value 0.5 --neutrino-mass-loss-BH-formation FIXED_MASS --neutrino-mass-loss-BH-formation-value 1.0

that runs a few different options for a single 50 solar mass star at a metallicity of 0.001. Before the fix, this produces the following: SEED Mass 0 0 17.12948 1 1 17.12948 2 2 17.12948 3 3 17.12948 4 4 17.12948 5 5 17.12948 6 6 17.12948

Which as Alejandro says shows this isn't working.

After the fix this now produces

  SEED Mass
0 0 17.12948
1 1 18.84243
2 2 15.22621
3 3 18.93276
4 4 19.02276
5 5 18.53276
6 6 18.03276

I have submitted PR #515 with these changes testNeutrinoBHOptions.txt testNeutrinoBH.txt SSE_Supernovae_before_fix.txt SSE_Supernovae_after_fix.txt

avigna commented 3 years ago

Fantastic Simon! This seems to be doing the right thing. I will review it before the end of the week so we can add it to COMPAS. I suggest we wait until that is done until we close this issue, but if you think these is enough to close it I'm also fine with it.