Aside: A = 23 vs. A = 24

Aside: A = 23 vs. A = 24#

We already said that only odd-mass numbers participate in Urca.

But let’s visualize what an even pair looks like.

Let’s load our model again and look at the rates involved in \(A = 23\) and \(A = 24\)

Load the lab 1 final model#

import mesa_reader as mr
import pynucastro as pyna
model = mr.MesaData("lab1/profile2.data")
from pynucastro import mesa_utils
r = 10.0**model.logR
m = model.mass
mesa_zones = mesa_utils.get_all_data(model)

Look at A = 23 rates#

We’ll use the rates from the Suzuki library

sl = pyna.SuzukiLibrary()

Below a certain temperature the Suzuki does not provide rate data, so we’ll just zero out the rates. This helper function handles this for us.

def eval_rate(r, rho, T, comp):
    try:
        lambda_r = r.eval(T, rho=rho, comp=comp)
    except ValueError:
        lambda_r = 0.0
    return lambda_r

Get the A = 23 electron-capture and beta-decay rates and evaluate them over the entire model. Specifically, we are looking at:

\[{}^{23}\mathrm{Na}(e^-,\nu_e){}^{23}\mathrm{Ne}\]

and

\[{}^{23}\mathrm{Ne}(,e^-\nu_e){}^{23}\mathrm{Na}\]
rna23ec = sl.get_rate_by_name("na23(,)ne23")
lambda_rna23ec = [eval_rate(rna23ec, rho, T, comp) for rho, T, comp in mesa_zones.values()]

rne23beta = sl.get_rate_by_name("ne23(,)na23")
lambda_rne23beta = [eval_rate(rne23beta, rho, T, comp) for rho, T, comp in mesa_zones.values()]

Now let’s plot them.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

ax.semilogy(m, lambda_rna23ec, label="Na23 electron capture", color="C0")
ax.semilogy(m, lambda_rne23beta, label="Ne23 beta-decay", color="C0", ls=":")

ax.set_xlabel("mass (solar masses)")
ax.set_ylabel("rate")
ax.set_ylim(1.e-10, 1.e2)
ax.grid(ls=":")
ax.legend()
<matplotlib.legend.Legend at 0x7fdf96799010>
_images/41b44d67899a16966aa88c53a8e27aa79da7e06a152f35948fad2962d04ff38a.png

We see that the rates intersect about halfway through the star—this is the Urca shell.

A = 24#

Now let’s look at the \(A = 24\) rates. We specifically model:

\[{}^{24}\mathrm{Mg}(e^-,\nu_e){}^{24}\mathrm{Na}(e^-,\nu_e){}^{24}\mathrm{Ne}\]

and

\[{}^{24}\mathrm{Ne}(,e^-\nu_e){}^{24}\mathrm{Na}(,e^-\nu_e){}^{24}\mathrm{Mg}\]
rmg24ec = sl.get_rate_by_name("mg24(,)na24")
lambda_rmg24ec = [eval_rate(rmg24ec, rho, T, comp) for rho, T, comp in mesa_zones.values()]

rna24beta = sl.get_rate_by_name("na24(,)mg24")
lambda_rna24beta = [eval_rate(rna24beta, rho, T, comp) for rho, T, comp in mesa_zones.values()]
rna24ec = sl.get_rate_by_name("na24(,)ne24")
lambda_rna24ec = [eval_rate(rna24ec, rho, T, comp) for rho, T, comp in mesa_zones.values()]

rne24beta = sl.get_rate_by_name("ne24(,)na24")
lambda_rne24beta = [eval_rate(rne24beta, rho, T, comp) for rho, T, comp in mesa_zones.values()]
fig, ax = plt.subplots()

ax.semilogy(m, lambda_rmg24ec, label="Mg24 electron capture", color="C0")
ax.semilogy(m, lambda_rna24beta, label="Na24 beta-decay", color="C0", ls=":")

ax.semilogy(m, lambda_rna24ec, label="Na24 electron capture", color="C1")
ax.semilogy(m, lambda_rne24beta, label="Ne24 beta-decay", color="C1", ls=":")

ax.set_xlabel("mass (solar masses)")
ax.set_ylabel("rate")
ax.set_ylim(1.e-10, 1.e2)
ax.grid(ls=":")
ax.legend()
<matplotlib.legend.Legend at 0x7fdf945a5d30>
_images/d891642e8b5f0d6327b7c3c9f96721302f10fa09662841088e83c2be3b1446ce.png

Here we see that the electron-capture and beta-decay rates are well-separated.