Class nucmass_dz_fit_33 (o2scl)

O2scl : Class List

class nucmass_dz_fit_33 : public o2scl::nucmass_fit_base

The 33-parameter Duflo-Zuker mass formula.

See [Duflo95].

This class is designed to provide essentially identical results to the original Duflo-Zuker code 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.

Todo

In class nucmass_dz_fit_33: Document each field.

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 squared 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 effects

  • a[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 shell

  • a[16]: “SQ”, “QQM”, a neutron-proton interaction

  • a[18], a[19]: “D3” balance of monopole effects

  • a[20], a[21], a[24], a[25]: “QQ+”/”QQ-”, Quadrupole terms, corresponding to filling equidistant Nilsson orbits

  • a[22], a[23]: “D0”, Loss of monopole and gain of quadrupole energy for intruders

  • a[26]: “TT”, Symmetry energy

  • a[28]: “SS”

  • a[30]: “C”, Coulomb energy

  • a[31]: “P0”, First pairing energy term

  • a[32]: “P1”, Second pairing energy term

For 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)"

.

Workspace vectors used internally

These are allocated in the class constructor.

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

This function reproduces the original function called EMASSDZ(), except that, to be consistent with the other nuclear mass classes, it returns the binding energy with the opposite sign from the original.

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.

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