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")])
snu = sneut5(rho, T, c)

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)
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.eval_abar(), zbar=c.eval_zbar())