Nuclear mass formula base [abstract base]. More...
#include <nucmass.h>
(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
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
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
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.
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) | |
![]() | |
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 ![]() | |
double | m_prot |
Proton mass in ![]() | |
double | m_elec |
Electron mass in ![]() | |
double | m_amu |
Atomic mass unit in ![]() | |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, int, std::greater< std::string > >::iterator | table_it |
A convenient typedef for an iterator for element_table. | |
![]() | |
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 const int | nelements =119 |
The number of elements (proton number) | |
|
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.
|
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.
|
virtual |
All masses are given in . 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.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).