Class nucmass_ldrop (o2scl)¶
-
class nucmass_ldrop : public o2scl::nucmass_densmat¶
Simple liquid drop mass formula.
This class includes bulk, surface and Coulomb contributions to the energy. There is no pairing, no neutron skin, and no isospin contribution to the surface energy.
The NRAPR equation of state from [Steiner05b] is used for the bulk energy by default.
Definition of \( \chi \) and \( n_L \)
The variable \( \chi \) is defined as the fractional volume occupied by and \( n_L \) is the density of nucleons inside the nucleus. If \( V \) is the total volume of the nucleus plus the surrounding Wigner-Seitz cell, then we have
\[ A = V n_L \chi \]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} = n_L (1 - \delta)/2 \) and \( n_{n} = n_L (1 + \delta)/2 \) .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 \). See also nucmass_ldrop_skin .
Nuclear radius
The nuclear radius is determined by
\[\begin{eqnarray*} R &=& \left( \frac{3 A}{4 \pi n_L} \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{1}{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
\[ \varepsilon_{\mathrm{surf}} = \frac{3 \sigma \chi}{R} \]where \( \sigma \) is the surface tension. To compute the surface energy per baryon, using \( A = V n_L \chi \), we find\[ E_{\mathrm{surf}}/A = \frac{3 \sigma}{n_n + n_p} \left[ \frac{3 A}{ 4 (n_n+n_p) \pi} \right]^{-1/3} \]or\[ E_{\mathrm{surf}}/A = \frac{\sigma}{n_L} \left(\frac{36 \pi n_L}{A} \right)^{1/3} \]where the surface tension \( \sigma \) (in \( \mathrm{MeV}/\mathrm{fm}^2 \)) is given in surften.Taking a typical value, \( \sigma =1.1~\mathrm{MeV}/\mathrm{fm}^2 \) and \( n_L = 0.16~\mathrm{fm}^{-3} \), gives the standard result, \( E_{\mathrm{surf}}/A = 18~\mathrm{MeV}~A^{-1/3} \) (see nucmass_semi_empirical::Ss in nucmass_semi_empirical).
See also [Ravenhall83].
Coulomb energy contribution
The Coulomb energy density is
\[ \varepsilon_{\mathrm{Coul}} = {\cal{C}} \frac{4 \pi}{5} \chi n_p^2 e^2 R^2 \]where the extra coefficient \( {\cal{C}} \) is stored in coul_coeff and defaults to a value of 1. The energy per baryon is\[ E_{\mathrm{Coul}}/A = {\cal{C}} \frac{4 \pi}{5 n_L} n_p^2 e^2 R^2 \]This is the expression used in the code.Taking \( {\cal{C}} =1 \) and using \( 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} \]References
This class is based on [Steiner08], which was originally based on [Lattimer85] and [Lattimer91].
Note
This class sets part::inc_rest_mass to true for the particle objects specified in set_n_and_p().
Note
The input parameter T (for the temperature) should be given in units of inverse femtometers. This is a bit confusing, since the binding energy is returned in MeV.
Note
This class ignores the values specified in the variables
npout
,nnout
,dim
, andchi
.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 \( \mathrm{MeV}/\mathrm{fm}^2 \) (default 1.1 \( \mathrm{MeV}/\mathrm{fm}^2 \))
-
double coul_coeff¶
Coulomb coefficient (default 1.0)
Output quantities
-
double nn¶
Internal average neutron density in \( \mathrm{fm}^{-3} \).
-
double np¶
Internal average proton density in \( \mathrm{fm}^{-3} \).
-
double Rn¶
Neutron radius (in \( \mathrm{fm} \) )
-
double Rp¶
Proton radius (in \( \mathrm{fm} \) )
-
double bulk¶
Bulk energy per baryon in \( \mathrm{MeV} \).
-
double surf¶
Surface energy per baryon in \( \mathrm{MeV} \).
-
double coul¶
Coulomb energy per baryon in \( \mathrm{MeV} \).
Other settings
-
bool large_vals_unphys¶
If true, then return large mass excesses when unphysical parameters are selected (default false)
EOS and particle parameters
-
eos_had_skyrme def_had_eos¶
The default hadronic EOS.
-
fermion def_neutron¶
Default neutron.
-
fermion def_proton¶
Default proton.
-
thermo th¶
Energy and pressure.
-
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.
Base objects [protected]
-
fermion *n¶
Pointer to neutron.
-
fermion *p¶
Pointer to proton.
-
eos_had_temp_base *heos¶
The base EOS for bulk matter.
Main functions
-
nucmass_ldrop()¶
Default constructor.
-
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 binding_energy_densmat(double Z, double N, double npout = 0.0, double nnout = 0.0, double ne = 0.0, double T = 0.0)¶
Given
Z
andN
, the external densities, and the temperature, return the binding energy of the nucleus in MeV.In this class, this function is currently independent of
npout
,nnout
,dim
, andchi
.
-
inline virtual void binding_energy_densmat_derivs(double Z, double N, double npout, double nnout, double nneg, double T, double &E, double &dEdnp, double &dEdnn, double &dEdnneg, double &dEdT)¶
Given
Z
andN
, the external densities, and the temperature, compute the binding energy and the derivatives.
-
inline virtual const char *type()¶
Return the type,
"nucmass_ldrop"
.
-
double n1¶