Class nucmass_ldrop (o2scl)

O2scl : Class List

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 and N, return the mass excess in MeV.

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

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

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