Networks used in labs#

In the labs, we build minimal networks with only a subset of the rates that can connect the nuclei.

We will focus on the \(A = 23\) and \(A = 25\) Urca pairs.

Why odd-mass numbers for Urca?#

This was addressed in the seminal paper by Tsuruta & Cameron 1970:

Urca even

Their argument is that for even mass number, \(A\), nuclei with an even \(Z\) (proton number) and even \(N\) (neutron number) are the most stable. If a (\(Z\) even, \(N\) even) nucleus captures and electron, then we get (\(Z\) odd, \(N\) odd) and this is likely to very quickly capture another electron.

This breaks the pairing of electron-capture and \(\beta\)-decay for even \(A\) nuclei.

O+O rate#

These nets all use an approximation to the O+O burning rate

import pynucastro as pyna
from pynucastro.rates.aprox_family_rates import make_CO_approx_rates
rl = pyna.ReacLibLibrary()
o_rates = make_CO_approx_rates(rl.get_rates(), "O")
o_rates
[O16 + O16 ⟶ S32 + 𝛾,
 S32 ⟶ O16 + O16,
 O16 + O16 ⟶ Si28 + He4,
 Si28 + He4 ⟶ O16 + O16,
 Si28 + He4 ⟶ S32 + 𝛾,
 S32 ⟶ Si28 + He4]
net = pyna.RateCollection(rates=o_rates)
fig = net.plot(rotated=True, curved_edges=True)
_images/54a88648b344d142d02ca5992736a461708fe562d61f4bbb593a75a4b9858e7b.png

We see that we can go from \({}^{16}\mathrm{O}\) to \({}^{28}\mathrm{Si}\) either directly, or through \({}^{31}\mathrm{P}\). We’ll use an approximate rate that represents both of these paths

r1616 = net.get_rate_by_name("o16(o16,he4)si28")
r1616
O16 + O16 ⟶ Si28 + He4
type(r1616)
pynucastro.rates.approximate_rates.ApproximateRate

Lab 1#

We’ll use the tabular rates from Suzuki

sl = pyna.SuzukiLibrary()
rate_names = ["ne20(,)f20",
              "f20(,)ne20",
              "f20(,)o20",
              "o20(,)f20"]
rates = sl.get_rate_by_name(rate_names)
net = pyna.RateCollection(rates=[r1616]+rates)
fig = net.plot(legend_coord=(13, 9))
_images/f1ff90325a7ab1fb43fbb5fbd9b1d179d52e5e76ff0230796035235d273536e0.png

Lab 2#

first Urca pair#

rate_names += ["na23(,)ne23",
               "ne23(,)na23"]
rates = sl.get_rate_by_name(rate_names)
net = pyna.RateCollection(rates=[r1616]+rates)
fig = net.plot(legend_coord=(13, 9))
_images/5e1cc1fc0586de2e21a8312e481258ccb3841d08066a8bfab8186e2cd342906e.png

second Urca pair#

rate_names += ["mg25(,)na25",
               "na25(,)mg25"]
rates = sl.get_rate_by_name(rate_names)
net = pyna.RateCollection(rates=[r1616]+rates)
fig = net.plot(legend_coord=(13, 9))
_images/a2f4e8dc2da9f8acb5242185dfb406491061eab0aa0365aa674cac6add954ab4.png

Lab 3#

We add a second \(A=25\) urca pair and some \(A = 24\) rates

rate_names += ["mg24(,)na24",
               "na24(,)mg24",
               "na24(,)ne24",
               "ne24(,)na24",
               "na25(,)ne25",
               "ne25(,)na25"]
rates = sl.get_rate_by_name(rate_names)
net = pyna.RateCollection(rates=[r1616]+rates)
fig = net.plot(legend_coord=(13, 9))
_images/0bd4f4afcb2673af702e4a510b4652fa23ce5f2777fb4c3f5bf8135287e52001.png