Class nucmass_dz_fit (o2scl)

O2scl_part : Class List

class o2scl::nucmass_dz_fit : public o2scl::nucmass_fit_base

The 10-parameter Duflo-Zuker mass formula.

This class is designed to provide essentially identical results to the original 10-parameter Duflo-Zuker code (see Duflo95) 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:

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()
~nucmass_dz_fit()
bool is_included(int Z, int N)

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

const char *type()

Return the type, "nucmass_dz_fit".

int fit_fun(size_t nv, const ubvector &x)

Fix parameters from an array for fitting.

int guess_fun(size_t nv, ubvector &x)

Fill array with guess from present values for fitting.

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.

double binding_energy_d(double Z, double N)

Return the binding energy in MeV.

double mass_excess(int Z, int N)

Given Z and N, return the mass excess in MeV.

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