nuclear_mass Class Reference

#include <nuclear_mass.h>

Inheritance diagram for nuclear_mass:

ame_mass mnms95_mass nuclear_mass_fit mnms95_mass_exp semi_empirical_mass

Detailed Description

Nuclear mass formula base.

Note:
Some mass formulas are undefined for sufficiently exotic nuclei. Use the function is_included() to find if a particular nucleus is included or not.

All descendants ought to set form_type to indicate whether the mass formula is discrete or continuous

Elements 112-118 are named "Uub", "Uut", "Uuq", "Uup", "Uuh", "Uus", and "Uuo", respectively.

The binding energy is defined

\[ \mathrm{BE}=Z m_{H} + N m_{n} - m_{\mathrm{nuclide}} \]

where $m_{\mathrm{nuclide}}$ is the mass of the nucleus including the mass of the electrons. The mass excess is defined

\[ m_{\mathrm{excess}} = m_{\mathrm{nuclide}} - A m_{u} \]

For example, for $ \mathrm{U}^{238} $, the binding energy is 1801.695 MeV, the mass excess is 47.30366 MeV, and $m_{\mathrm{nuclide}}$ is 221742.9 MeV. This is consistent with the above, as $m_H$ is 938.7830 MeV, $m_n$ is 939.5650 MeV, and $m_u$ is 931.494 MeV.

Some common reaction Q-values and separation energies:
$\mathrm{Q}(\beta^{-})=\mathrm{M(A,Z)}-\mathrm{M(A,Z+1)}$: Beta-decay energy
$\mathrm{Q}(2\beta^{-})=\mathrm{M(A,Z)}-\mathrm{M(A,Z+2)}$: Double beta-decay energy
$\mathrm{Q}(4\beta^{-})=\mathrm{M(A,Z)}-\mathrm{M(A,Z+4)}$: Four beta-decay energy
$\mathrm{Q}(\alpha)=\mathrm{M(A,Z)}-\mathrm{M(A-4,Z-2)}- \mathrm{M(He^{4})}$: Alpha-decay energy
$\mathrm{Q}(\beta-n)=\mathrm{M(A,Z)}-\mathrm{M(A-1,Z+1)} -\mathrm{M(n)}$: Beta-delayed neutron emission decay energy
$\mathrm{Q}(d,\alpha)=\mathrm{M(A,Z)}-\mathrm{M(A-2,Z-1)} -\mathrm{M(He^{4})}-\mathrm{M(H^{2})}$: $(d,\alpha)$ reaction energy
$\mathrm{Q}(\mathrm{EC})=\mathrm{M(A,Z)}-\mathrm{M(A,Z-1)}$: Electron capture decay energy
$\mathrm{Q}(\mathrm{ECp})=\mathrm{M(A,Z)}-\mathrm{M(A-1,Z-2)}$: Electron capture with delayed proton emission decay energy
$\mathrm{Q}(n,\alpha)=\mathrm{M(A,Z)}-\mathrm{M(A-3,Z-2)} -\mathrm{M(He^{4})}+\mathrm{M(n)}$: $(n,\alpha)$ reaction energy
$\mathrm{Q}(p,\alpha)=\mathrm{M(A,Z)}-\mathrm{M(A-3,Z-1)} -\mathrm{M(He^{4})}+\mathrm{M(p)}$: $(p,\alpha)$ reaction energy
$\mathrm{S}(n) = \mathrm{-M(A,Z)}+\mathrm{M(A-1,Z)}+ \mathrm{M(n)}$: Neutron separation energy
$\mathrm{S}(p) = \mathrm{-M(A,Z)}+\mathrm{M(A-1,Z-1)}+ \mathrm{H^{1}}$: Proton separation energy
$\mathrm{S}(2n) = \mathrm{-M(A,Z)}+\mathrm{M(A-2,Z)}+ \mathrm{2M(n)}$: Two neutron separation energy
$\mathrm{S}(2p) = \mathrm{-M(A,Z)}+\mathrm{M(A-2,Z-2)}+ \mathrm{2 M(H^{1)}}$: Two proton separation energy

Todo:
The presence or absence of the electron binding energy contribution is not so well documented here.

Definition at line 106 of file nuclear_mass.h.


Indicate whether or not the mass formula is

discrete or continuous

static const int cont_type = 1
static const int disc_type = 2
int form_type

Public Member Functions

virtual ~nuclear_mass ()
virtual bool is_included (int Z, int N)
 Return false if the mass formula does not include specified nucleus.
int get_nucleus (int Z, int N, nucleus &n)
 Fill n with the information from nucleus with the given neutron and proton number.
virtual double mass_excess (int Z, int N)
 Given Z and N, return the mass excess in MeV.
virtual double mass_excess_d (double Z, double N)
 Given Z and N, return the mass excess in MeV.
virtual double binding_energy (int Z, int N)
 Return the binding energy in MeV.
virtual double binding_energy_d (double Z, double N)
 Return the binding energy in MeV.
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.
int eltoZ (std::string el)
 Return Z given the element name.
std::string Ztoel (int Z)
 Return the element name given Z.
int parse_elstring (std::string ela, int &Z, int &N, int &A)
 Parse a string of the form "Pb208".

Protected Types

typedef std::map
< std::string, int,
string_less_than >
::iterator 
table_it
 A convenient typedef for an iterator for element_table.

Protected Attributes

std::map
< std::string, int,
string_less_than
element_table
 A map containing the proton numbers organized by element name.
std::string element_list [nelements]
 The list of elements organized by proton number.

Static Protected Attributes

static const int nelements = 119
 The number of elements (proton number).

Data Structures

struct  string_less_than
 String comparison operator for element_table. More...

Member Function Documentation

int get_nucleus ( int  Z,
int  N,
nucleus n 
) [inline]

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 the degeneracy (part::g) is arbitrarily set to 1 for even A nuclei and 2 for odd A nuclei.

Definition at line 129 of file nuclear_mass.h.

virtual double binding_energy ( int  Z,
int  N 
) [inline, virtual]

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.

Definition at line 176 of file nuclear_mass.h.

virtual double binding_energy_d ( double  Z,
double  N 
) [inline, virtual]

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.

Definition at line 190 of file nuclear_mass.h.

int parse_elstring ( std::string  ela,
int &  Z,
int &  N,
int &  A 
) [inline]

Parse a string of the form "Pb208".

Note that this does not correctly interpret dashes, e.g. "Pb-208". will not work.

Definition at line 231 of file nuclear_mass.h.


The documentation for this class was generated from the following file:
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.