Creating an NSE table#
We can tabulate the NSE state on a grid \((\rho, T, Y_e)\), giving:
\(\bar{A}\) : the mean molecular weight
\(\langle B/A \rangle\) : the average binding energy per nucleon of the NSE state [MeV]
\(dY_e/dt\) : the time-evolution of \(Y_e\) due to weak reactions [1/s]
\(d\bar{A}/dt\) : the time-evolution of \(\bar{A}\) due to weak reactions [1/s]
\(d\langle B/A\rangle/dt\) : the time-evolution of the binding energy per nucleon due to weak reactions [MeV/s]
\(\epsilon_\nu\) : the energy loss due to neutrinos [erg / g / s]
import pynucastro as pyna
from pynucastro import Nucleus
First we’ll create a simple NSE network with a few nuclei. We’ll include tabulated weak rates so we can compute the change in the state due to electron/positron captures and decays.
nucs = [Nucleus("p"), Nucleus("n"), Nucleus("he4"),
Nucleus("fe52"), Nucleus("fe53"), Nucleus("fe54"),
Nucleus("fe55"), Nucleus("fe56"),
Nucleus("co54"), Nucleus("co55"), Nucleus("co56"),
Nucleus("ni56"), Nucleus("ni57")]
tl = pyna.TabularLibrary().linking_nuclei(nucs)
rl = pyna.ReacLibLibrary().linking_nuclei(nucs)
all_lib = tl + rl
warning: He4 was not able to be linked
warning: Fe53 was not able to be linked
warning: Fe52 was not able to be linked
warning: Ni57 was not able to be linked
dupes = all_lib.find_duplicate_links()
rates_to_remove = []
for d in dupes:
rates_to_remove += [r for r in d if isinstance(r, pyna.rates.ReacLibRate)]
for r in rates_to_remove:
all_lib.remove_rate(r)
nse = pyna.NSENetwork(libraries=[all_lib])
Now we’ll create a grid of temperature, density, and \(Y_e\) where we want to compute the NSE state
import numpy as np
Ts = np.logspace(9.6, 10.4, 3)
rhos = np.logspace(7, 10, 4)
yes = np.linspace(0.43, 0.5, 3)
Finally we can generate the table. This will compute the NSE state at each combination of \((\rho, T, Y_e)\). To help accelerate the convergence, it will start at the highest temperature and loop over \(\rho\) and \(Y_e\) and cache the values of the proton and neutron chemical potentials for the next temperature.
nse.generate_table(rho_values=rhos,
T_values=Ts,
Ye_values=yes)
The table is stored as nse.tbl
%cat nse.tbl
# NSE table generated by pynucastro 2.5.0
# original NSENetwork had 13 nuclei
#
# log10(rho) log10(T) Ye Abar <B/A> dYe/dt dAbar/dt d<B/A>/dt e_nu
7.0000000000 9.6000000000 0.5000000000 50.2051965063 8.6280555770 -4.3798684e-05 -0 2.3285948e-06 7.4765875e+13
7.0000000000 9.6000000000 0.4650000000 55.7461181554 8.7870631885 -5.5253373e-09 2.1689193e-21 3.9317237e-10 1.3980145e+10
7.0000000000 9.6000000000 0.4300000000 11.0637644863 8.1412181124 0.00017699678 -2.9553154e-26 -1.8453759e-12 2.7707299e+14
7.0000000000 10.0000000000 0.5000000000 1.2148721356 1.6682000908 0.084056593 1.1097981e-55 5.7350242e-41 7.8635828e+17
7.0000000000 10.0000000000 0.4650000000 1.2129154965 1.6556759416 0.10066493 -9.5154199e-56 3.5220148e-41 8.3544455e+17
7.0000000000 10.0000000000 0.4300000000 1.2071216004 1.6183519789 0.1178642 -1.8245905e-55 5.9197759e-42 8.8944343e+17
7.0000000000 10.4000000000 0.5000000000 1.0000000000 0.0000000002 5.7463273 -3.0282656e-218 6.7442697e-203 2.3050257e+20
7.0000000000 10.4000000000 0.4650000000 1.0000000000 0.0000000002 7.2542055 -1.4008643e-218 5.8190844e-203 2.360043e+20
7.0000000000 10.4000000000 0.4300000000 1.0000000000 0.0000000002 8.7650901 1.5660364e-218 3.8278038e-203 2.4155562e+20
8.0000000000 9.6000000000 0.5000000000 54.3190287633 8.6383977879 -0.00084867596 -0 4.3696922e-05 1.4741939e+15
8.0000000000 9.6000000000 0.4650000000 55.8970086077 8.7873938438 -4.9038114e-08 2.6652714e-20 4.195729e-09 1.2981616e+11
8.0000000000 9.6000000000 0.4300000000 11.0638264094 8.1412220464 9.2047376e-06 -3.3885398e-29 -5.6069146e-13 1.1254068e+13
8.0000000000 10.0000000000 0.5000000000 2.5712548585 5.7636834359 -0.019589285 -5.2722578e-34 1.7213901e-19 1.6310989e+17
8.0000000000 10.0000000000 0.4650000000 2.5124367545 5.6778079180 -0.0041256863 -3.8679592e-33 2.1068175e-19 1.5065028e+17
8.0000000000 10.0000000000 0.4300000000 2.3664071213 5.4461458099 0.0093041571 4.0022393e-35 1.1443316e-19 1.616981e+17
8.0000000000 10.4000000000 0.5000000000 1.0000000214 0.0000002024 1.213841 -1.9167604e-165 9.8468124e-150 2.1894106e+20
8.0000000000 10.4000000000 0.4650000000 1.0000000212 0.0000002004 2.8346072 1.4571224e-165 8.4165813e-150 2.2127881e+20
8.0000000000 10.4000000000 0.4300000000 1.0000000206 0.0000001945 4.4726034 2.0415049e-165 5.4823199e-150 2.2397331e+20
9.0000000000 9.6000000000 0.5000000000 55.5133155454 8.6413416287 -0.060150514 -0 0.0031209543 1.5551546e+17
9.0000000000 9.6000000000 0.4650000000 55.9133553778 8.7874269700 -3.9837589e-06 2.1308784e-18 3.6045209e-07 1.0369016e+13
9.0000000000 9.6000000000 0.4300000000 11.0638296395 8.1412222516 1.0225013e-08 -9.8140885e-34 -5.2463927e-15 1.1664591e+10
9.0000000000 10.0000000000 0.5000000000 4.3121776381 7.1515970010 -0.10742171 -8.6627599e-20 2.9758631e-05 4.7264474e+17
9.0000000000 10.0000000000 0.4650000000 5.1247512633 7.3995936810 -0.019430688 1.8465661e-19 3.3567893e-06 8.7381921e+16
9.0000000000 10.0000000000 0.4300000000 4.4162917338 7.0777667259 -0.0059568646 -9.8582877e-21 5.1854462e-07 3.2607547e+16
9.0000000000 10.4000000000 0.5000000000 1.0000214391 0.0002025496 -17.715252 -4.6659523e-112 3.7269644e-96 2.7735801e+20
9.0000000000 10.4000000000 0.4650000000 1.0000212299 0.0002005606 -15.005795 -5.0233078e-112 3.0828757e-96 2.5962747e+20
9.0000000000 10.4000000000 0.4300000000 1.0000206076 0.0001946701 -12.327315 9.4415328e-113 1.9401565e-96 2.4324142e+20
10.0000000000 9.6000000000 0.5000000000 55.8690710154 8.6423241378 -5.2274435 -0 0.27200888 2.9375322e+19
10.0000000000 9.6000000000 0.4650000000 55.9152992533 8.7874248629 -0.00092936032 -1.324133e-16 8.53828e-05 4.3024741e+15
10.0000000000 9.6000000000 0.4300000000 11.0638297820 8.1412222637 5.0971987e-15 -9.3106433e-42 -6.8646472e-21 5801.4456
10.0000000000 10.0000000000 0.5000000000 13.9373407965 8.2743569653 -5.5783268 2.1566023e-14 0.10960359 3.9379731e+19
10.0000000000 10.0000000000 0.4650000000 28.2439836979 8.6492581223 -0.075077755 -6.6877144e-16 0.00050735877 5.2201547e+17
10.0000000000 10.0000000000 0.4300000000 10.2419481623 8.0844804256 -0.0025107086 -3.0948296e-20 1.107337e-06 1.7236326e+16
10.0000000000 10.4000000000 0.5000000000 1.0197762662 0.1829102358 -196.64449 -9.9403547e-58 3.9060708e-42 2.3555843e+21
10.0000000000 10.4000000000 0.4650000000 1.0195859197 0.1811835447 -167.5422 -7.86651e-58 3.044433e-42 1.9968627e+21
10.0000000000 10.4000000000 0.4300000000 1.0190251344 0.1760927389 -140.99607 -1.6336075e-57 1.8184626e-42 1.6720802e+21
There are other options to the NSE table writing, including storing the mass fractions or a reduced composition constructed by binning the nuclei into the closest nuclei in a smaller set.