Class nucmass (o2scl)

O2scl : Class List

class nucmass : public o2scl::nucmass_info

Nuclear mass formula base [abstract base].

(See also the discussion in Nuclei and Nuclear Masses.)

This is abstract base class for the nuclear mass formulas. Some mass formulas are undefined for sufficiently exotic nuclei. You can use the function is_included() to find if a particular \nucleus is included or not in a particular mass formula.

The quantities below are returned in units of MeV. The functions include a version which takes Z and N as integers and a version with a suffix "_d" which takes Z and N as double-precision numbers.

The mass excess is given by mass_excess() and mass_excess_d() .

Binding energies (binding_energy() and binding_energy_d() ) are determined from mass excesses by

\[ \mathrm{binding~energy} = A u - Z \left(m_p + m_e\right) - N m_n + \mathrm{mass~excess} \]
The neutron, proton, and electron masses and atomic mass unit are stored in m_prot, m_neut, m_elec, and m_amu . By default, this are assigned to the values in o2scl_mks times o2scl_const::hc_mev_fm , but these default values are modified in the constructors of some children classes.

Total masses, as returned by total_mass() and total_mass_d() , are the mass of the nuclide without the electron mass or binding energy contribution

\[ \mathrm{total~mass} = \mathrm{mass~excess} + A u - Z m_e \]

Atomic masses are the total mass with the electron mass and binding energy contributions (see atomic_mass() and atomic_mass_d() ). Electron binding energies are computed in electron_binding() and approximated with

\[ 14.4381 \times 10^{-6} Z^{2.39} + 1.55468 \times 10^{-12} Z^{5.35}~\mathrm{MeV} \]

as in Eq. A4 of [Lunney03] .

Generally, descendants of this class only need to provide an implementation of mass_excess() and mass_excess_d() and possibly a new version of is_included() to be fully functional.

Subclassed by o2scl::nucmass_fit_base, o2scl::nucmass_table

Base masses

double m_neut

Neutron mass in \( \mathrm{MeV} \) (defaults to o2scl_mks::mass_neutron converted into MeV)

double m_prot

Proton mass in \( \mathrm{MeV} \) (defaults to o2scl_mks::mass_proton converted into MeV)

double m_elec

Electron mass in \( \mathrm{MeV} \) (defaults to o2scl_mks::mass_electron converted into MeV)

double m_amu

Atomic mass unit in \( \mathrm{MeV} \) (defaults to o2scl_mks::unified_atomic_mass converted into MeV)

Public Functions

nucmass()
inline virtual ~nucmass()
inline virtual const char *type()

Return the type, "nucmass".

inline virtual bool is_included(int Z, int N)

Return false if the mass formula does not include specified nucleus.

virtual int get_nucleus(int Z, int N, nucleus &n)

Fill n with the information from nucleus with the given neutron and proton number.

All masses are given in \(\mathrm{fm}^{-1}\). The total mass (withouth the electrons) is put in part::m and part::ms, the binding energy is placed in nucleus::be, the mass excess in nucleus::mex and the degeneracy (part::g) is arbitrarily set to 1 for even A nuclei and 2 for odd A nuclei.

virtual double mass_excess(int Z, int N) = 0

Given Z and N, return the mass excess in MeV [abstract].

virtual double mass_excess_d(double Z, double N) = 0

Given Z and N, return the mass excess in MeV [abstract].

inline virtual double electron_binding(double Z)

Return the approximate electron binding energy in MeV.

inline virtual double binding_energy(int Z, int N)

Return the binding energy in MeV.

The binding energy is defined to be negative for bound nuclei, thus the binding energy per baryon of Pb-208 is about -8*208 = -1664 MeV.

inline virtual double binding_energy_d(double Z, double N)

Return the binding energy in MeV.

The binding energy is defined to be negative for bound nuclei, thus the binding energy per baryon of Pb-208 is about -8*208 = -1664 MeV.

inline virtual double total_mass(int Z, int N)

Return the total mass of the nucleus (without the electrons) in MeV.

inline virtual double total_mass_d(double Z, double N)

Return the total mass of the nucleus (without the electrons) in MeV.

inline virtual double neutron_sep(int Z, int N)

Neutron separation energy.

inline virtual double two_neutron_sep(int Z, int N)

Two neutron separation energy.

inline virtual double proton_sep(int Z, int N)

Proton separation energy.

inline virtual double two_proton_sep(int Z, int N)

Two proton separation energy.

inline virtual double atomic_mass(int Z, int N)

Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy)

inline virtual double atomic_mass_d(double Z, double N)

Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy)