Class nucmass_ldrop (o2scl)¶
-
class
o2scl
::
nucmass_ldrop
: public o2scl::nucmass_fit_base¶ Simple liquid drop mass formula.
Includes bulk 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.
- Warning
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{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 (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} \]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} \).
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} \]- Todo:
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].
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 of energy.
-
double
surf
¶ Surface of energy.
-
double
coul
¶ Coulomb of energy.
-
double
mass_excess_d
(double Z, double N)¶ Given
Z
andN
, return the mass excess in MeV.
-
double
mass_excess
(int Z, int N)¶ Given
Z
andN
, return the mass excess in MeV.
-
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.
-
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.
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.
-
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.
-
const char *
type
()¶ Return the type,
"nucmass_ldrop"
.
Public Functions
-
nucmass_ldrop
()¶