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

Simple liquid drop mass formula. More...

#include <nucmass_ldrop.h>

Inheritance diagram for o2scl::nucmass_ldrop:
o2scl::nucmass_fit_base o2scl::nucmass o2scl::nucmass_info o2scl::nucmass_ldrop_skin o2scl::nucmass_ldrop_pair o2scl::nucmass_ldrop_shell

Public Member Functions

virtual double mass_excess_d (double Z, double N)
 Given Z and N, return the mass excess in MeV. More...
virtual double mass_excess (int Z, int N)
 Given Z and N, return the mass excess in MeV.
virtual double drip_binding_energy_d (double Z, double N, double npout, double nnout, double chi, double T)
 Given Z and N, return the binding energy in MeV. More...
virtual const char * type ()
 Return the type, "nucmass_ldrop".
Fitting functions
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.
- Public Member Functions inherited from o2scl::nucmass
virtual bool is_included (int Z, int N)
virtual int get_nucleus (int Z, int N, nucleus &n)
virtual double electron_binding (double Z)
virtual double binding_energy (int Z, int N)
virtual double binding_energy_d (double Z, double N)
virtual double total_mass (int Z, int N)
virtual double total_mass_d (double Z, double N)
virtual double atomic_mass (int Z, int N)
virtual double atomic_mass_d (double Z, double N)
- Public Member Functions inherited from o2scl::nucmass_info
int parse_elstring (std::string ela, int &Z, int &N, int &A)
int eltoZ (std::string el)
std::string Ztoel (size_t Z)
std::string tostring (size_t Z, size_t N)

Public Attributes

thermo th
 Energy and pressure.
Input parameters
double n1
 Density asymmetry (default 0)
double n0
 Saturation density ( The default is $ 0.16 \mathrm{fm}^{-3} $)
double surften
 Surface tension in MeV (default 1.1 MeV)
double coul_coeff
 Coulomb coefficient (default 1.0)
Output quantities
double nn
 Internal average neutron density.
double np
 Internal average proton density.
double Rn
 Neutron radius.
double Rp
 Proton radius.
double bulk
 Bulk part of energy.
double surf
 Surface part of energy.
double coul
 Coulomb part of energy.
- Public Attributes inherited from o2scl::nucmass_fit_base
size_t nfit
- Public Attributes inherited from o2scl::nucmass
double m_neut
double m_prot
double m_elec
double m_amu

Protected Attributes

 Pointer to neutron.
 Pointer to proton.
 The base EOS for bulk matter.
- Protected Attributes inherited from o2scl::nucmass_info
std::map< std::string, int, std::greater< std::string > > element_table
std::string element_list [nelements]

EOS and particle parameters

eos_had_rmf def_had_eos
 The default hadronic EOS.
fermion def_neutron
 Default neutron.
fermion def_proton
 Default proton.
int set_eos_had_temp_base (eos_had_temp_base &uhe)
 Change the base hadronic EOS.
void set_n_and_p (fermion &un, fermion &up)
 Change neutron and proton objects.

Additional Inherited Members

- Protected Types inherited from o2scl::nucmass_info
typedef std::map< std::string, int, std::greater< std::string > >::iterator table_it
- Static Protected Attributes inherited from o2scl::nucmass_info
static const int nelements

Detailed Description

Includes bulk part plus surface and Coulomb (no pairing) without neutron skin and without any isospin contribution to the surface energy.

The NL4 EOS is loaded by default.

This class sets part::inc_rest_mass to true for the particle objects specified in set_n_and_p().

Central densities

Given a saturation density, $ n_0 $ and a transition density, $ n_t $, we set $ I = 1 - 2 Z/A $, and then assume $ \delta = I $. We further assume that the isospin-asymmetric saturation density $ n_L $ is

\[ n_L = n_0 + n_1 \delta^2 \]

and then we can compute $ n_{p} = (1 - \delta)/2 n_L $ and $ n_{n} = (1 + \delta)/2 n_L $ .

Note that $ \delta = I $ implies no neutron skin. A neutron skin occurs when $ \delta < I $, and $ \delta = 0 $ implies a "maximum skin size" which is occurs when no extra neutrons are in center and all extra neutrons are located in the skin, i.e. $ N_{\mathrm{skin}} = N-Z $.

Nuclear radii

The neutron and proton radii are determined from the central densities with

\begin{eqnarray*} R_n &=& \left( \frac{3 N}{4 \pi n_n} \right)^{1/3} \nonumber \\ R_n &=& \left( \frac{3 Z}{4 \pi n_p} \right)^{1/3} \end{eqnarray*}

Bulk energy contribution

The bulk binding energy contribution ( $ \sim -16 $ MeV per nucleon) and the symmetry energy are computing using the hadronic EOS (either def_had_eos or the EOS specified in the most recent call to set_eos_had_temp_base() ). The bulk energy per baryon is

\[ E_{\mathrm{bulk}}/A = \frac{\hbar c}{n_{L} } \left[\varepsilon(n_n,n_p) - n_n m_n - n_p m_p \right] \]

Surface energy contribution

The surface energy density is (Ravenhall83)

\[ \varepsilon = \frac{\chi d \sigma}{R} \]

where $ \sigma $ is the surface tension. The factor $ \chi $ is typically taken care of by the caller, so we ignore it for now. To compute the surface energy per baryon, we divide by the baryon density, $ n_n + n_p $. We can rewrite this

\[ E_{\mathrm{surf}} = \frac{3 \sigma}{n_n + n_p} \left[ \frac{3 A}{ 4 (n_n+n_p) \pi} \right]^{-1/3} \]


\[ E_{\mathrm{surf}} = \frac{\sigma}{n_L} \left(\frac{36 \pi n_L}{A} \right)^{1/3} \]

where the surface tension $ \sigma $ (in MeV) is given in surften.

Taking a typical value, $ \sigma =1.1~\mathrm{MeV} $ and $ n_L = 0.16~\mathrm{fm}^{-3} $, gives the standard result, $ E_{\mathrm{surf}}/A = 18~\mathrm{MeV}~A^{-1/3} $.

Coulomb energy contribution

The Coulomb energy density (Ravenhall83) is

\[ \varepsilon_{\mathrm{Coul}} = \frac{4 \pi}{5} n_p^2 e^2 R_p^2 \]

The energy per baryon is

\[ E_{\mathrm{Coul}}/A = \frac{4 \pi}{5 n_L} n_p^2 e^2 R_p^2 \]

This is the expression used in the code, except for a prefactor coul_coeff which is a fit parameter and should be close to unity.

Assuming $ R_p = R $ and $ Z = \frac{4 \pi}{3} R^3 n_p $ and $ R = \left[ 3 A / (4 \pi n_L) \right]^{1/3} $ gives

\[ E_{\mathrm{Coul}}/A = \frac{6^{2/3}}{5} \pi^{1/3} e^2 n_L^{1/3} \frac{Z^2}{A^{4/3}} \]

and taking $ n_L = 0.16~\mathrm{fm}^{-3} $ and $ e^2 = \hbar c/137 $ gives the standard result

\[ E_{\mathrm{Coul}}/A = 0.76~\mathrm{MeV}~Z^2 A^{-4/3} \]

12/4/14: This doesn't gracefully handle negative values of n0 and n1 as then the neutron and proton densities become negative. This needs to be addressed. For now, there is a fix at line 246 in nucmass_ldrop.cpp .


Designed for Steiner08 based on Lattimer85 and Lattimer91 .

Definition at line 165 of file nucmass_ldrop.h.

Member Function Documentation

◆ drip_binding_energy_d()

virtual double o2scl::nucmass_ldrop::drip_binding_energy_d ( double  Z,
double  N,
double  npout,
double  nnout,
double  chi,
double  T 

This function is currently independent of npout, nnout, and chi.

Reimplemented in o2scl::nucmass_ldrop_pair, o2scl::nucmass_ldrop_skin, and o2scl::nucmass_ldrop_shell.

◆ mass_excess_d()

virtual double o2scl::nucmass_ldrop::mass_excess_d ( double  Z,
double  N 

Implements o2scl::nucmass.

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