![]() |
Equation of State Sub-Library: Version 0.910
|
EOS from Akmal, Pandharipande, and Ravenhall. More...
#include <apr_eos.h>
The EOS of Akmal, Pandharipande, and Ravenhall, from Akmal98 (APR).
The Hamiltonian is:
The following are definitions for in the low-density phase (LDP) or the high-density phase (HDP):
The chemical potentials include the rest mass energy and the energy density includes the rest mass energy density.
The variables and
contain the expressions
and
respectively, where
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,
is just
.
The selection between the LDP and HDP is controlled by pion. The default is to use the LDP at densities below 0.16 , and for larger densities to just use whichever minimizes the energy.
The finite temperature approximations from Prakash97 are used in testing.
par[0]
is unused.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.
Public Member Functions | |
apr_eos () | |
Create an EOS object with the default parameter set ( ![]() | |
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 (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 | |
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() | |
nonrel_fermion | nrf |
Desc. | |
int | choice |
The variable indicating which parameter set is to be used. | |
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() |
double apr_eos::fcomp | ( | double | nb | ) |
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().
double apr_eos::fesym_diff | ( | double | nb | ) | [virtual] |
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 is not quadratic.
Reimplemented from hadronic_eos.
void apr_eos::select | ( | int | model_index | ) |
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.
int apr_eos::gradient_qij2 | ( | double | nn, |
double | np, | ||
double & | qnn, | ||
double & | qnp, | ||
double & | qpp, | ||
double & | dqnndnn, | ||
double & | dqnndnp, | ||
double & | dqnpdnn, | ||
double & | dqnpdnp, | ||
double & | dqppdnn, | ||
double & | dqppdnp | ||
) |
For general discussion, see the documentation to hadronic_eos::qs().
For APR, we set so that
and then
This gives
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.
apr_eos apr; ccout << apr.hadronic_eos::fcomp(0.16) << endl;
works just as well.
Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).