The 33-parameter Duflo-Zuker mass formula. More...
#include <nucmass_dz.h>
This class is designed to provide essentially identical results to the original Duflo-Zuker code (see Duflo95) at
http://amdc.in2p3.fr/theory/dz31.f
(Two parameters were added by Duflo and Zuker after the fact to the original 31-parameter code, and still referred to as dz31.f
.)
The default values of nucmass::m_neut and nucmass::m_prot are adjusted to make sure that the mass excesses match the values given in the original.
Some explanations about the individual terms come from MendozaTemis10 and the work by G. Bertsch at http://www.phys.washington.edu/users/bertsch/duflo2.ps
a[0]
: "Full master term". Density sqaured divided by cube root of A. This is the master term which includes the bulk energy from the liquid droplet model and the harmonic oscillator effectsa[2]
: "Full spin-orbit term +"a[4]
: "Full spin-orbit term -"a[6]
: "Full cross term"a[8]
: "Partial master term"a[10]
: "Partial spin-orbit term +"a[12]
: "Partial spin-orbit term -"a[14]
: "S3", polarizability of the valence spin-orbit shella[16]
: "SQ", "QQM", a neutron-proton interactiona[18], a[19]
: "D3" balance of monopole effectsa[20], a[21], a[24], a[25]
: "QQ+"/"QQ-", Quadrupole terms, corresponding to filling equidistant Nilsson orbitsa[22], a[23]
: "D0", Loss of monopole and gain of quadrupole energy for intrudersa[26]
: "TT", Symmetry energya[28]
: "SS"a[30]
: "C", Coulomb energya[31]
: "P0", First pairing energy terma[32]
: "P1", Second pairing energy termFor odd parameters up to a[29]
, the odd parameter is just the preceeding even term divided by the cube root of A.
Note that the original code states that, "for i even
a(i,program) =a(i-1,paper)*a(i,paper)"
.
Definition at line 269 of file nucmass_dz.h.
Public Types | |
typedef boost::numeric::ublas::vector< double > | ubvector |
typedef boost::numeric::ublas::vector< int > | ubvector_int |
typedef boost::numeric::ublas::matrix< double > | ubmatrix |
typedef boost::numeric::ublas::matrix< int > | ubmatrix_int |
![]() | |
typedef boost::numeric::ublas::vector< double > | ubvector |
Workspace vectors used internally | |
ubvector | dyda |
ubvector | fyda |
ubvector | fyd0 |
ubvector | onps |
ubvector | oei |
ubvector | dei |
ubvector | op2 |
ubvector | ym |
ubvector | op1 |
ubvector | shell |
ubvector | sshell |
tensor3 | op |
tensor3 | onp |
tensor3 | ot |
ubvector_int | n4 |
ubvector_int | nn |
ubvector_int | jup |
ubvector_int | jud |
ubvector_int | n2 |
ubmatrix_int | noc |
ubvector | a |
Coefficients. | |
nucmass_dz_fit_33 () | |
virtual | ~nucmass_dz_fit_33 () |
virtual const char * | type () |
Return the type, "nucmass_dz_fit_33" . | |
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. | |
virtual bool | is_included (int Z, int N) |
Return false if the mass formula does not include specified nucleus. | |
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. | |
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. | |
Additional Inherited Members | |
![]() | |
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 | 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 | Ztoname (size_t Z) |
Return the element name given Z. | |
std::string | tostring (size_t Z, size_t N) |
Return a string of the form "Pb208" for a given Z and N. More... | |
![]() | |
size_t | nfit |
Number of fitting parameters. | |
![]() | |
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 ![]() | |
![]() | |
typedef std::map< std::string, int, std::greater< std::string > >::iterator | table_it |
A convenient typedef for an iterator for element_table. | |
![]() | |
std::vector< std::string > | name_list |
Element names. | |
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) | |
|
virtual |
This function reproduces the original function called EMASSDZ()
, except that, to be consistent with the other O2scl nuclear mass classes, it returns the binding energy with the opposite sign from the original.
Reimplemented from o2scl::nucmass.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).