Neutrino Cooling#

At high temperatures, pair, plasma, Bremmstrahlung, and photo neutrinos become important. These are often treated as a source term to an energy equation when integrating the temperature evolution due to reactions.

pynucastro implements the functions of Itoh et al. 1996 to incorporate these effects. In many codes, a routine called sneut5 was used for this implementation. pynucastro contains a port of that routine.

from pynucastro.neutrino_cooling import sneut5, NeutrinoCooling
from pynucastro import Composition, Nucleus

Evaluating \(\epsilon_\nu\) for a thermodynamic state#

We can evaluate the cooling term given a density, temperature and composition.

rho = 1.e8
T = 2.e9
c = Composition([Nucleus("p"), Nucleus("a"), Nucleus("fe56")])
c.set_equal()
snu = sneut5(rho, T, c)
print(snu)
773682819.5195054

This is the value in CGS units (erg/g/s)

If we want to see the breakdown of the different contributions, we pass full_output=True

snu, scomps = sneut5(rho, T, c, full_output=True)
print(scomps)
splas: 537968613.1923463; spair: 131726610.15324067; sphot: 92135106.99413596; sbrem: 11852489.17978244; sreco: 0.0

Plotting \(\epsilon_\nu\) in the \(\rho\)-\(T\) plane#

We can see the trend with thermodynamics state by using the NeutrinoCooling class

nc = NeutrinoCooling()
fig = nc.plot(Tmin=1.e7, Tmax=1.e10, rhomin=1.e3, rhomax=1.e10,
              abar=c.abar, zbar=c.zbar)
_images/ab10e1c155be5b9dd22769406effa966f6917c0cde5836278eb20520535f006e.png