Public Types | Public Member Functions | Public Attributes | List of all members
o2scl::nucmass_semi_empirical Class Reference

Semi-empirical mass formula. More...

#include <nucmass.h>

Inheritance diagram for o2scl::nucmass_semi_empirical:
o2scl::nucmass_fit_base o2scl::nucmass o2scl::nucmass_info

Public Types

typedef boost::numeric::ublas::vector< double > ubvector
 
- Public Types inherited from o2scl::nucmass_fit_base
typedef boost::numeric::ublas::vector< double > ubvector
 

Public Member Functions

virtual const char * type ()
 Return the type, "nucmass_semi_empirical".
 
virtual double mass_excess_d (double Z, double N)
 Given Z and N, return the mass excess in MeV.
 
virtual double mass_excess (int Z, int N)
 Given Z and N, return the mass excess in MeV.
 
virtual int fit_fun (size_t nv, const ubvector &x)
 Fix parameters from an array for fitting.
 
virtual int guess_fun (size_t nv, ubvector &x)
 Fill array with guess from present values for fitting.
 
- Public Member Functions inherited from o2scl::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 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

double B
 Binding energy (negative and in MeV, default -16)
 
double Sv
 Symmetry energy (in MeV, default 23.7)
 
double Ss
 Surface energy (in MeV, default 18)
 
double Ec
 Coulomb energy (in MeV, default 0.7)
 
double Epair
 Pairing energy (MeV, default 13.0)
 
- Public Attributes inherited from o2scl::nucmass_fit_base
size_t nfit
 Number of fitting parameters.
 
- Public Attributes inherited from o2scl::nucmass
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

A simple semi-empirical mass formula of the form

\[ E/A = B + S_s \frac{1}{A^{1/3}}+E_c \frac{Z^2}{A^{4/3}} + S_v \left(1-\frac{2Z}{A}\right)^2+E_{\mathrm{pair}}(Z,N) \]

where the pairing energy is given by

\[ E_{\mathrm{pair}}(Z,N) = - \frac{E_{\mathrm{pair}}}{2 A^{3/2}} \left[ \cos \left( \pi Z \right)+\cos \left( \pi N \right) \right] \]

which is equivalent to the traditional prescription

\[ E_{\mathrm{pair}}(Z,N) = \frac{E_{\mathrm{pair}}}{A^{3/2}} \times \left\{ \begin{array}{rl} -1 & \mathrm{N~and~Z~even} \\ +1 & \mathrm{N~and~Z~odd} \\ 0 & \mathrm{otherwise} \end{array} \right. \]

when $ Z $ and $ N $ and integers.

Note
The default parameters are arbitrary, and are not determined from a fit.

There is an example of the usage of this class given in Nuclear mass fit example.

Definition at line 399 of file nucmass.h.


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