Class nucmass_ldrop (o2scl)

O2scl : Class List

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, and chi.

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 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 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 and N, 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, and chi.

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 and N, the external densities, and the temperature, compute the binding energy and the derivatives.

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