Class nucmass_dz_fit (o2scl)

O2scl : Class List

class nucmass_dz_fit : public o2scl::nucmass_fit_base

The 10-parameter Duflo-Zuker mass formula.

See [Duflo95].

This class is designed to provide essentially identical results to the original 10-parameter Duflo-Zuker code at

http://amdc.in2p3.fr/theory/du_zu_10.feb96fort

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.

Idea for Future:

This appears to be limited for large nuclei because ‘i’ becomes larger than imax and then statements like noc[i][j]=moc-ju and noc[i+1][j]=ju become invalid. This needs to be more carefully understood and documented. For now, is_included() just arbitrarily chooses 240 as a maximum for N and Z.

Todo

In class nucmass_dz_fit: Document each field.

Workspace vectors used internally

These are allocated in the class constructor.

tensor3 onp

Desc.

Note that the first index is already 0 indexed in the DZ version

ubvector y

Desc.

ubvector pp

Desc.

ubvector oei

Desc.

ubvector dei

Desc.

ubvector qx

Desc.

ubvector dx

Desc.

ubvector op

Desc.

ubvector os

Desc.

ubvector dyda

Desc.

ubvector_int n2

Desc.

ubmatrix_int noc

Desc.

ubvector b

Coefficients.

nucmass_dz_fit()
virtual ~nucmass_dz_fit()
virtual bool is_included(int Z, int N)

Return false if the mass formula does not include specified nucleus.

inline virtual const char *type()

Return the type, "nucmass_dz_fit".

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 double binding_energy(int Z, int N)

Return the binding energy in MeV.

This function reproduces the original function called mass10(), 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