#include <nuclear_mass.h>
This base class provides some default functionality for the nuclear mass formulas. For typical usage, use ame_mass, mnmsk_mass, mnmsk_mass_exp, or semi_empirical_mass.
Elements 112-118 are named "Uub", "Uut", "Uuq", "Uup", "Uuh", "Uus", and "Uuo", respectively.
The binding energy is defined by
where is the mass of the nucleus including the mass of the electrons. The mass excess is defined by
For example, for , the binding energy is 1801.695 MeV, the mass excess is 47.30366 MeV, and
is 221742.9 MeV. This is consistent with the above, as
is 938.7830 MeV,
is 939.5650 MeV, and
is 931.494 MeV.
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.
This class is designed so that a child only needs to reimplement either mass_excess() (if form_type==disc_type
) or mass_excess_d() (if form_type==cont_type
), and the remaining functions should work then automatically.
The treatment of the electron binding energy contribution is not necessarily consistent at present.
form_type
to indicate whether the mass formula is discrete or continuousdouble
to int
.Definition at line 127 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 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 (size_t 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... |
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 . 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.
Definition at line 151 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 198 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 212 of file nuclear_mass.h.
int eltoZ | ( | std::string | el | ) | [inline] |
Return Z given the element name.
Properly handle errors
Definition at line 242 of file nuclear_mass.h.
std::string Ztoel | ( | size_t | Z | ) | [inline] |
Return the element name given Z.
Note that Ztoel(0)
returns "n"
indicating the neutron and if the argument Z
is greater than 118, an empty string is returned.
Definition at line 253 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 270 of file nuclear_mass.h.
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page