apr_eos Class Reference

EOS from Akmal, Pandharipande, and Ravenhall. More...

#include <apr_eos.h>

Inheritance diagram for apr_eos:

hadronic_eos_temp_eden hadronic_eos_temp hadronic_eos eos apr4_eos

Detailed Description

EOS from Akmal, Pandharipande, and Ravenhall.

Taken from Akmal98.

The chemical potentials include the rest mass energy and the energy density includes the rest mass energy density.

Note that 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.

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( 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 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 Prakash97 are used in testing.

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.
Idea for future:
There might be room to improve the testing of the finite temperature part a bit.
Idea for future:
There is some repetition between calc_e() and calc_e_temp() that possibly could be removed.

Definition at line 119 of file apr_eos.h.


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).
int pion
 Choice of phase (default best).
int last_phase ()
 Return the phase of the most recent call to calc_e().

Public Member Functions

virtual int calc_e (fermion &n, fermion &p, thermo &th)
 Equation of state as a function of density.
virtual int calc_temp_e (fermion_T &n, fermion_T &pr, const double temper, thermo &th)
 Equation of state as a function of densities.
double fcomp (double nb)
 Compute the compressibility.
double fesym_diff (double nb)
 Calculate symmetry energy of matter as energy of neutron matter minus the energy of nuclear matter.
void select (int model_index)
 Select model.
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.
double get_par (int n)
 Get the value of one of the parameters.
int set_par (int n, double x)
 Set the value of one of the parameters.
virtual const char * type ()
 Return string denoting type ("apr_eos").

Data Fields

nonrel_fermion def_nr_neutron
 Default nonrelativistic neutron.
nonrel_fermion def_nr_proton
 Default nonrelativistic proton.
bool parent_method
 If true, use the methods from hadronic_eos for fcomp().

Protected Attributes

double * par
 Storage for the parameters.
int lp
 An integer to indicate which phase was used in calc_e().
int choice
 The variable indicating which parameter set is to be used.

Member Function Documentation

double fcomp ( double  nb  )  [virtual]

Compute the compressibility.

See general notes at hadronic_eos::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 hadronic_eos::fcomp().

Reimplemented from hadronic_eos.

double fesym_diff ( double  nb  )  [virtual]

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.

Reimplemented from hadronic_eos.

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 hadronic_eos::qs().

For APR, we set $ x_1=x_2=0 $ so that $ Q_i=P_i/2 $ and then

\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*}

This gives

\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*}

See the Mathematica notebook apr_eos.nb, and apr_eos.ps.

void select ( int  model_index  ) 

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, A18+UIX*+deltav is assumed.


Field Documentation

If true, use the methods from hadronic_eos for fcomp().

This can be set to true to check the difference in the compressibility wbetween the exact expressions and the numerical values from class hadronic_eos.

Definition at line 276 of file apr_eos.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page