Public Member Functions | List of all members
o2scl::nucmass Class Referenceabstract

Nuclear mass formula base [abstract base]. More...

#include <nucmass.h>

Inheritance diagram for o2scl::nucmass:
o2scl::nucmass_info o2scl::nucmass_fit_base o2scl::nucmass_table o2scl::nucmass_dvi o2scl::nucmass_dz_fit o2scl::nucmass_dz_fit_33 o2scl::nucmass_frdm o2scl::nucmass_semi_empirical o2scl::nucmass_ame o2scl::nucmass_dglg o2scl::nucmass_dz_table o2scl::nucmass_hfb o2scl::nucmass_hfb_sp o2scl::nucmass_ktuy o2scl::nucmass_mnmsk o2scl::nucmass_sdnp o2scl::nucmass_wlw

Public Member Functions

virtual const char * type ()
 Return the type, "nucmass".
 
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. More...
 
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].
 
virtual double electron_binding (double Z)
 Return the approximate electron binding energy in MeV.
 
virtual double binding_energy (int Z, int N)
 Return the binding energy in MeV. More...
 
virtual double binding_energy_d (double Z, double N)
 Return the binding energy in MeV. More...
 
virtual double total_mass (int Z, int N)
 Return the total mass of the nucleus (without the electrons) in MeV.
 
virtual double total_mass_d (double Z, double N)
 Return the total mass of the nucleus (without the electrons) in MeV.
 
virtual double atomic_mass (int Z, int N)
 Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy)
 
virtual double atomic_mass_d (double Z, double N)
 Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy)
 
- Public Member Functions inherited from o2scl::nucmass_info
int parse_elstring (std::string ela, int &Z, int &N, int &A)
 Parse a string representing an element. More...
 
int eltoZ (std::string el)
 Return Z given the element name abbreviation. More...
 
std::string Ztoel (size_t Z)
 Return the element name abbreviation given Z. More...
 
std::string tostring (size_t Z, size_t N)
 Return a string of the form "Pb208" for a given Z and N. More...
 

Public Attributes

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)
 

Additional Inherited Members

- Protected Types inherited from o2scl::nucmass_info
typedef std::map< std::string, int, std::greater< std::string > >::iterator table_it
 A convenient typedef for an iterator for element_table.
 
- Protected Attributes inherited from o2scl::nucmass_info
std::map< std::string, int, std::greater< std::string > > element_table
 A map containing the proton numbers organized by element abbreviation.
 
std::string element_list [nelements]
 The list of elements organized by proton number.
 
- Static Protected Attributes inherited from o2scl::nucmass_info
static const int nelements =119
 The number of elements (proton number)
 

Detailed Description

(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.

Definition at line 201 of file nucmass.h.

Member Function Documentation

◆ binding_energy()

virtual double o2scl::nucmass::binding_energy ( int  Z,
int  N 
)
inlinevirtual

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.

Reimplemented in o2scl::nucmass_dz_fit_33, and o2scl::nucmass_dz_fit.

Definition at line 248 of file nucmass.h.

◆ binding_energy_d()

virtual double o2scl::nucmass::binding_energy_d ( double  Z,
double  N 
)
inlinevirtual

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.

Reimplemented in o2scl::nucmass_dz_fit_33, and o2scl::nucmass_dz_fit.

Definition at line 258 of file nucmass.h.

◆ get_nucleus()

virtual int o2scl::nucmass::get_nucleus ( int  Z,
int  N,
nucleus n 
)
virtual

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.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).