Public Member Functions | Public Attributes | Protected Attributes | List of all members
o2scl::nucmass_frdm Class Reference

FRDM semi-empirical mass formula (macroscopic part only with no deformation) More...

#include <nucmass_frdm.h>

Inheritance diagram for o2scl::nucmass_frdm:
o2scl::nucmass_fit_base o2scl::nucmass o2scl::nucmass_info

Public Member Functions

virtual double mass_excess_d (double Z, double N)
 Given Z and N, return the mass excess in MeV.
 
virtual double mass_excess (int Z, int N)
 Given Z and N, return the mass excess in MeV.
 
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 drip_binding_energy_d (double Z, double N, double npout, double nnout, double chi)
 Return the binding energy in MeV.
 
virtual double drip_mass_excess_d (double Z, double N, double np_out, double nn_out, double chi)
 Given Z and N, return the mass excess in MeV in a many-body environment. More...
 
- Public Member Functions inherited from o2scl::nucmass_fit_base
virtual const char * type ()
 Return the type, "nucmass_fit_base".
 
- Public Member Functions inherited from o2scl::nucmass
virtual bool is_included (int Z, int N)
 Return false if the mass formula does not include specified nucleus.
 
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 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. More...
 
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)
 
- Public Member Functions inherited from o2scl::nucmass_info
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 tostring (size_t Z, size_t N)
 Return a string of the form "Pb208" for a given Z and N. More...
 

Public Attributes

double a1
 Volume-energy constant in MeV (default 16.247)
 
double J
 Symmetry-energy constant in MeV (default 32.73)
 
double K
 Nuclear compressibility constant in MeV (default 240)
 
double a2
 Surface-energy constant in MeV (default 22.92)
 
double Q
 Effective surface-stiffness constant in MeV (default 29.21)
 
double a3
 Curvature-energy constant in MeV (default 0)
 
double ca
 Charge-asymmetry constant in MeV (default 0.436)
 
double W
 Wigner constant in MeV (default 30)
 
double ael
 electronic-binding constant in MeV (default $ 1.433 \times 10^{-5} $ ).
 
double rp
 Proton root-mean-square radius in fm (default 0.80)
 
double r0
 Nuclear-radius constant in fm (default 1.16)
 
double MH
 Hydrogen atom mass excess, 7.289034 MeV.
 
double Mn
 Neutron mass excess, 8.071431 MeV.
 
double e2
 Electronic charge squared, 1.4399764 MeV fm.
 
double a
 Range of Yukawa-plus-exponential potential, 0.68 fm.
 
double aden
 Range of Yukawa function used to generate nuclear charge distribution, 0.70 fm.
 
double rmac
 Average pairing-gap constant, 4.80 MeV.
 
double h
 Neutron-proton interaction constant, 6.6 MeV.
 
double L
 Density-symmetry constant, 0 MeV.
 
double C
 Pre-exponential compressibility-term constant, 60 MeV.
 
double gamma
 Exponential compressibility-term range constant, 0.831.
 
double amu
 Atomic mass unit, 931.5014 MeV.
 
double nn
 Internal average neutron density.
 
double np
 Internal average proton density.
 
double Rn
 Neutron radius.
 
double Rp
 Proton radius.
 
- Public Attributes inherited from o2scl::nucmass_fit_base
size_t nfit
 Number of fitting parameters.
 
- Public Attributes inherited from o2scl::nucmass
double m_neut
 Neutron mass in $ \mathrm{MeV} $ (defaults to o2scl_mks::mass_neutron converted into MeV)
 
double m_prot
 Proton mass in $ \mathrm{MeV} $ (defaults to o2scl_mks::mass_proton converted into MeV)
 
double m_elec
 Electron mass in $ \mathrm{MeV} $ (defaults to o2scl_mks::mass_electron converted into MeV)
 
double m_amu
 Atomic mass unit in $ \mathrm{MeV} $ (defaults to o2scl_mks::unified_atomic_mass converted into MeV)
 

Protected Attributes

double kg_to_invfm
 Conversion from kg to inverse fm.
 
double Deltap
 Proton pairing coefficient.
 
double Deltan
 Neutron pairing coefficient.
 
double deltanp
 Isubvector pairing coefficient.
 
double deltabar
 Average bulk nuclear asymmetry.
 
double epsbar
 Average relative deviation of bulk density.
 
double Bs
 Desc.
 
double Bk
 Desc.
 
double Br
 Desc.
 
double Bw
 Desc.
 
double Bv
 Desc.
 
double c1
 Coulomb energy coefficient.
 
double c2
 Volume redistribution energy coefficient.
 
double c4
 Coulomb exchange correction coefficient.
 
double c5
 Surface redistribution energy coefficient.
 
double f0
 Coefficient for the proton form-factor correction to the Coulomb energy.
 
double a0
 Desc.
 
double B1
 Desc.
 
double B2
 Desc.
 
double B3
 Desc.
 
double B4
 Desc.
 
- Protected Attributes inherited from o2scl::nucmass_info
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.
 

Additional Inherited Members

- Public Types inherited from o2scl::nucmass_fit_base
typedef boost::numeric::ublas::vector< double > ubvector
 
- Protected Types inherited from o2scl::nucmass_info
typedef std::map< std::string, int, std::greater< std::string > >::iterator table_it
 A convenient typedef for an iterator for element_table.
 
- Static Protected Attributes inherited from o2scl::nucmass_info
static const int nelements =119
 The number of elements (proton number)
 

Detailed Description

The spherically-symmetric, macroscopic part of the finite-range droplet model from Moller95 .

Using the relations

\[ \bar{\delta} = (n_n - n_p)/n \]

and

\[ \bar{\epsilon} = - (n-n_0)/3/n_0 \]

we get

\[ n_n = \frac{1}{2} (1+\bar{\delta}) (1-3 \bar{\epsilon}) n_0 \]

and

\[ n_p = \frac{1}{2} (1-\bar{\delta}) (1-3 \bar{\epsilon}) n_0 \]

Assuming that

\[ \frac{4 \pi}{3} R_n^3 n_n = N \]

and

\[ \frac{4 \pi}{3} R_p^3 n_p = Z \]

we get

\[ R_n^3 = 3 N / \alpha_n \]

\[ R_p^3 = 3 Z / \alpha_p \]

where $ \alpha $'s are

\[ \alpha_n = 2 \pi (1+ \bar{\delta})(1 - 3 \bar{\epsilon}) n_0 \]

\[ \alpha_p = 2 \pi (1- \bar{\delta})(1 - 3 \bar{\epsilon}) n_0 \]

Note that the above relations are somehow self-consistent because they imply

\[ R^3 n = R_n^3 n_n + R_p^3 n_p \]

Since we're using (is there a better way?)

\[ R = r_0 A^{1/3} \]

with $ r_0 = 1.16 $ fm, then $ n_0 = 0.152946 \mathrm{fm}^{-3} $.

Todo:

Fix pairing energy and double vs. int

Document drip_binding_energy(), etc.

Decide on number of fit parameters (10 or 12?) or let the user decide

Document the protected variables

Set the neutron and proton masses and hbarc to Moller et al.'s values

Idea for Future:
Add microscopic part.

Definition at line 107 of file nucmass_frdm.h.

Member Function Documentation

◆ drip_mass_excess_d()

virtual double o2scl::nucmass_frdm::drip_mass_excess_d ( double  Z,
double  N,
double  np_out,
double  nn_out,
double  chi 
)
virtual

This is an experimental version of mass_excess_d which removes pairing, computes nn, np, Rn, and Rp, and attempts to correct the surface. This function probably doesn't work at the moment. It's not currently used by drip_binding_energy_d().


The documentation for this class was generated from the following file:

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).