Class eos_had_apr (o2scl)¶
-
class eos_had_apr : public o2scl::eos_had_temp_eden_base¶
EOS from Akmal, Pandharipande, and Ravenhall.
The EOS of Akmal, Pandharipande, and Ravenhall, from [Akmal98eo] (APR).
The Hamiltonian is:
\[ {\cal H}_{APR} = {\cal H}_{kin} + {\cal H}_{pot} \]\[ {\cal H}_{kin} = \left\{ \frac{\hbar^2}{2 m} + \left[ p_3 + \left( 1 - x \right) p_5 \right] n e^{-p_4 n} \right\} \tau_n + \left\{ \frac{\hbar^2}{2 m} + \left[ p_3 + x p_5 \right] n e^{-p_4 n} \right\} \tau_p \]\[ {\cal H}_{pot} = g_1 \left[ 1 - \left( 1 - 2 x \right)^2 \right] + g_2 \left( 1 - 2 x \right)^2 \]The following are definitions for \( g_i \) in the low-density phase (LDP) or the high-density phase (HDP):
\[ g_{1,LDP} = -n^2 \left[ p_1 + p_2 n + p_6 n^2 + \left( p_{10} + p_{11} n \right) e^{-p_9^2 n^2} \right] \]\[ g_{2,LDP} = -n^2 \left[ \frac{p_{12}}{n} + p_7 + p_8 n + p_{13} e^{-p_9^2 n^2} \right] \]\[ g_{1,HDP} = g_{1,LDP} -n^2 \left[ p_{17} \left( n - p_{19} \right) + p_{21} \left( n - p_{19} \right)^2 e^{p_{18} \left( n - p_{19} \right) } \right] \]\[ g_{2,HDP} = g_{2,LDP} -n^2 \left[ p_{15} \left( n - p_{20} \right) + p_{14} \left( n - p_{20} \right)^2 e^{p_{16} \left( n - p_{20} \right)} \right] \]The variables \( \nu_n\) and \( \nu_p\) contain the expressions \( (-\mu_n+V_n)/T \) and \( (-\mu_p+V_p)/T \) respectively, where \( V \) is the potential part of the single particle energy for particle i (i.e. the derivative of the Hamiltonian w.r.t. density while energy density held constant). Equivalently, \( \nu_n\) is just \( -k_{F_n}^2/ 2 m^{*} \).
The selection between the LDP and HDP is controlled by the value of pion. The default is to use the LDP at densities below 0.16 \( \mathrm{fm}^{-3} \), and for larger densities to just use whichever minimizes the energy.
The finite temperature approximations from [Prakash97ca] are used in testing.
- Idea for Future:
There might be room to improve the testing of the finite temperature part a bit.
There is some repetition between calc_e() and calc_temp_e() that possibly could be removed.
Include the analytic relations from Constantinou et al.
Note
APR seems to have been designed to be used with non-relativistic neutrons and protons with equal masses of 939 MeV. This gives a saturation density very close to 0.16.
Note
Since this EOS uses the effective masses and chemical potentials in the fermion class, the values of part::non_interacting for neutrons and protons are set to false in many of the functions.
Note
The parameter array is unit indexed, so that
par[0]
is unused. This choice makes the connection between the code and the paper a bit more transparent.Subclassed by o2scl::eos_had_sym4_apr
Choice of phase
-
static const int best = 0¶
use LDP for densities less than 0.16 and for higher densities, use the phase which minimizes energy (default)
-
static const int ldp = 1¶
LDP (no pion condensation)
-
static const int hdp = 2¶
HDP (pion condensation)
-
inline int last_phase()¶
Return the phase of the most recent call to calc_e()
This function always returns either eos_had_apr::ldp or eos_had_apr::hdp .
Model selection
-
static const int a18_uix_deltav = 1¶
With three body forces and relativistic corrections.
-
static const int a18_uix = 2¶
With three body forces.
-
static const int a18_deltav = 3¶
With relativistic corrections.
-
static const int a18 = 4¶
No three body forces or relativistic corrections.
-
void select(int model_index = 1)¶
Select model.
Valid values for
model_index
are:
1 - A18+UIX*+deltav (preferred by Akmal, et. al. - this is the default)
2 - A18+UIX*
3 - A18+deltav
4 - A18
If any other integer is given, the error handler is called.
Note
This cannot be virtual because it is called by the constructor
-
inline double get_par(size_t n)¶
Get the value of one of the model parameters.
-
inline void set_par(size_t n, double x)¶
Set the value of one of the model parameters.
Other functions
-
bool parent_method¶
If true, use the methods from eos_had_base for fcomp() and fesym_diff() (default true)
This can be set to true to check the difference in the compressibility and symmety energy between the exact expressions and the numerical values from class o2scl::eos_had_base.
- Idea for Future:
This variable is probably unnecessary, as the syntax
works just as well.eos_had_apr apr; ccout << apr.eos_had_base::fcomp(0.16) << endl;
-
int gradient_qij2(double nn, double np, double &qnn, double &qnp, double &qpp, double &dqnndnn, double &dqnndnp, double &dqnpdnn, double &dqnpdnp, double &dqppdnn, double &dqppdnp)¶
Calculate Q’s for semi-infinite nuclear matter.
For general discussion, see the documentation to eos_had_base::qs().
For APR, we set \( x_1=x_2=0 \) so that \( Q_i=P_i/2 \) and then
\[\begin{split}\begin{eqnarray*} P_1 &=& \left(\frac{1}{2} p_3-p_5 \right) e^{-p_4 n} \nonumber \\ P_2 &=& \left(\frac{1}{2} p_3+p_5 \right) e^{-p_4 n} \end{eqnarray*}\end{split}\]This gives
\[\begin{split}\begin{eqnarray*} Q_{nn}&=&\frac{1}{4} e^{-p_4 \rho} \left[ -6 p_5 - p_4 (p_3 - 2 p_5) (n_n + 2 n_p) \right] \nonumber \\ Q_{np}&=&\frac{1}{8} e^{-p_4 \rho} \left[ 4 (p_3 - 4 p_5) - 3 p_4 (p_3 - 2 p_5) (n_n + n_p)\right] \nonumber \\ Q_{pp}&=&\frac{1}{4} e^{-p_4 \rho} \left[ -6 p_5 - p_4 (p_3 - 2 p_5) (n_p + 2 n_n) \right] \end{eqnarray*}\end{split}\]
-
inline virtual const char *type()¶
Return string denoting type (“eos_had_apr”)
Basic usage
-
virtual int calc_e(fermion &n, fermion &p, thermo &th)¶
Equation of state as a function of density.
-
virtual int calc_temp_e(fermion &n, fermion &pr, double temper, thermo &th)¶
Equation of state as a function of densities.
-
double fcomp_nuc(double nb)¶
Compute the compressibility in nuclear (isospin-symmetric matter)
See general notes at eos_had_base::fcomp(). This computes the compressibility (at fixed proton fraction = 0.5) exactly, unless parent_method is true in which case the derivative is taken numerically in eos_had_base::fcomp().
-
virtual double fesym_diff(double nb)¶
Calculate symmetry energy of matter as energy of neutron matter minus the energy of nuclear matter.
This function returns the energy per baryon of neutron matter minus the energy per baryon of nuclear matter. This will deviate significantly from the results from fesym() only if the dependence of the symmetry energy on \( \delta \) is not quadratic.