Nuclear Properties

Nuclear Properties#

pynucastro gets basic nuclear data from the Nubase evaluation (currently the Nubase2020 data). This provides the mass excesses, \(\Delta m\), and spins. From this, we compute the binding energy, \(B\), and mass of the nucleus, \(m\) as:

\[m = A m_u + \Delta m\]
\[B = Z m_H + N m_n - m\]

where \(m_u\) is the atomic mass unit and \(m_n\) is the neutron mass, both taken from the CODATA physical constants database. \(m_H\) is the mass of \({}^{1}\mathrm{H}\), which is computed from the mass excess of \({}^{1}\mathrm{H}\).

Binding energies are also computed and tablulated in the AME mass evaluation (see AME2020 mass table]. But note that the Nubase evaluation seems to more closely follow the “rounded” version of the table AME2020 rounded mass table. The rounding procedure is discussed in Table I on the AME 2020 paper II (also see the Nubase2020 paper, Table I).

[1]:
from pynucastro import Nucleus

Nucleus#

The Nucleus class manages all of the properties of a nucleus. We create a Nucleus simply by giving the name of the isotope

[2]:
he4 = Nucleus("he4")

From this we can access the member data:

  • Z, N, A : the atomic number, neutron number, and atomic mass

  • mass : the mass of the nucleus in MeV

  • dm : the mass excess of the nucleus in MeV

  • nucbind : the nuclear binding energy of the nucleus in MeV / nucleon

  • A_nuc : the mass number of the nucleus (mass / atomic mass unit)

[3]:
he4.Z, he4.A
[3]:
(2, 4)
[4]:
he4.nucbind
[4]:
7.073915614499924

We can also get the partition functions of the nucleus, if it exists. The data we use mostly provides these for the heavy nuclei.

[5]:
ni56 = Nucleus("ni56")
ni56.partition_function.eval(4.e9)
[5]:
np.float64(1.002103)

Exploring properties#

Let’s look at some nuclei and look at their mass excess, mass, and binding energies

[6]:
p = Nucleus("p")
n = Nucleus("n")
c12 = Nucleus("c12")
ne22 = Nucleus("ne22")
ti43 = Nucleus("ti43")
fe56 = Nucleus("fe56")
[7]:
for nuc in [p, n, c12, ne22, ti43, fe56]:
    print(f"{str(nuc):6} {nuc.dm:15.8} {nuc.mass:15.8f} {nuc.nucbind:15.8f}")
p            7.2889711    938.78307348      0.00000000
n            8.0713181    939.56542052      0.00000000
C12                0.0  11177.92922904      7.68014458
Ne22         -8.024716  20484.84553724      8.08046563
Ti43           -29.316  40024.93040406      8.35281497
Fe56         -60.60716  52103.06257552      8.79035626

We see that the binding energy for protons and neutrons are zero, as expected.

For \({}^{12}\mathrm{C}\) the binding energy compares well with the tablulated version from the rounded AME 2020 of 7680.145.

For \({}^{22}\mathrm{Ne}\) the binding energy compares well with the tablulated version from the rounded AME 2020 of 8080.466.

For \({}^{43}\mathrm{Ti}\) the binding energy compares well with the tablulated version from the rounded AME 2020 of 8352.81.

For \({}^{56}\mathrm{Fe}\) the binding energy compares well with the tablulated version from the rounded AME 2020 of 8790.356.

[8]:
from pynucastro.constants import constants

We also see that the mass of \({}^{12}\mathrm{C}\) agrees with the atomic mass unit from the CODATA compilation:

[9]:
c12.mass / 12 - constants.m_u_MeV
[9]:
1.1368683772161603e-13