Products of Carbon Burning#
O/Ne WDs form in the cores of stars that undergo carbon burning. Some of the trace nuclei in O/Ne cores/WDs can participate in the Urca process, which can drive cooling that can prevent O-ignition. This may lead to an accretion-induced collapse or electron-capture supernova (see, e.g., The importance of Urca-process cooling in accreting ONe white dwarfs by Schwab et al.
We want to understand what trace nuclei are byproducts of carbon burning. We’ll do a one-zone burn to understand.
import pynucastro as pyna
The major C burning processes are:
We’ll include some other Ne, Na, and Mg isotopes as well.
net = pyna.network_helper(["p", "he4", "n",
"c12", "o16",
"ne20-22", "na21-23", "mg23-25",
"al27", "si27,28"])
fig = net.plot(rotated=True)
We’ll assume conditions where we expect C burning to occur. Our results will be very sensitive to temperature.
comp = pyna.Composition(net.unique_nuclei)
comp.X[pyna.Nucleus("c12")] = 0.5
comp.X[pyna.Nucleus("o16")] = 0.5
rho = 1.e8
T = 1.e9
Now we can burn, assuming that the thermodynamic conditions are fixed. We’ll burn until carbon is depleted.
tmax = 1.e8
sol = net.integrate_network(tmax, rho, T, comp,
screen_method="chugunov_2007",
stopping_condition=("c12", 1.e-3),
rtol=1.e-6, atol=1.e-8)
/opt/hostedtoolcache/Python/3.14.7/x64/lib/python3.14/site-packages/pynucastro/rates/derived_rate.py:125: UserWarning: C12 partition function is not supported by tables: set log_pf = 0.0 by default
warnings.warn(UserWarning(f'{nuc} partition function is not supported by tables: set log_pf = 0.0 by default'))
fig = sol.plot_evolution(three_level_style=True, ymin=1.e-6)
/opt/hostedtoolcache/Python/3.14.7/x64/lib/python3.14/site-packages/pynucastro/networks/python_network.py:495: UserWarning: Attempt to set non-positive xlim on a log-scaled axis will be ignored.
ax.set_xlim(tmin, tmax)
We can access the mass fractions at the final time (the -1 in the temporal index)
X = sol.X[:, -1]
We can visualize the fractions of the final composition:
comp = pyna.Composition(net.unique_nuclei)
comp.set_array(X)
fig = comp.plot(trace_threshold=5.e-3)
Now we see that the major products after \({}^{20}\mathrm{Ne}\) are \({}^{24}\mathrm{Mg}\) and then the two Urca nuclei: \({}^{23}\mathrm{Na}\) and \({}^{25}\mathrm{Mg}\). These are the nuclei that the Schwab et al. paper focuses on.
To understand where they came from, we can visualize the flow through the network at the end of our burn.
fig = net.plot(rho=rho, T=T, comp=comp, rotated=True,
color_nodes_by_abundance=True,
legend_coord=(4, 1.5),
size=(800, 700),
use_net_rate=True)
/opt/hostedtoolcache/Python/3.14.7/x64/lib/python3.14/site-packages/pynucastro/rates/derived_rate.py:125: UserWarning: C12 partition function is not supported by tables: set log_pf = 0.0 by default
warnings.warn(UserWarning(f'{nuc} partition function is not supported by tables: set log_pf = 0.0 by default'))
We see that \({}^{23}\mathrm{Na}\) is primarily made by \({}^{12}\mathrm{C} + {}^{12}\mathrm{C}\) while \({}^{25}\mathrm{Mg}\) is made via \((n,\gamma)\) and \((\alpha, n)\) reactions.