Class nucmass_ldrop (o2scl)¶
-
class nucmass_ldrop : public o2scl::nucmass_fit_base¶
Simple liquid drop mass formula.
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.
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{split}\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*}\end{split}\]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 (Ravenhall et al. (1983))
\[ \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} \]or\[ 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} \).
See also [Ravenhall83].
Coulomb energy contribution
The Coulomb energy density (Ravenhall et al. (1983)) 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} \]Todo
In class nucmass_ldrop, 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 .
References
Designed for [Steiner08] based on [Lattimer85] and [Lattimer91].
Warning
This class sets part::inc_rest_mass to true for the particle objects specified in set_n_and_p().
Subclassed by o2scl::nucmass_ldrop_skin
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.
-
bool large_vals_unphys¶
If true, then return large mass excesses when unphysical parameters are selected (default false)
-
virtual double mass_excess_d(double Z, double N)¶
Given
Z
andN
, return the mass excess in MeV.
-
inline virtual double mass_excess(int Z, int N)¶
Given
Z
andN
, 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
andN
, return the binding energy in MeV.This function is currently independent of
npout
,nnout
, andchi
.
EOS and particle parameters
-
eos_had_rmf def_had_eos¶
The default hadronic EOS.
-
fermion def_neutron¶
Default neutron.
-
fermion def_proton¶
Default proton.
-
inline int set_eos_had_temp_base(eos_had_temp_base &uhe)¶
Change the base hadronic EOS.
-
inline void set_n_and_p(fermion &un, fermion &up)¶
Change neutron and proton objects.
Fitting functions
-
thermo th¶
Energy and pressure.
-
fermion *n¶
Pointer to neutron.
-
fermion *p¶
Pointer to proton.
-
eos_had_temp_base *heos¶
The base EOS for bulk matter.
-
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.
-
inline virtual const char *type()¶
Return the type,
"nucmass_ldrop"
.
Public Functions
-
nucmass_ldrop()¶