#include <eff_fermion.h>
Based on the fitting method of Johns96 which is an update of the method from Eggleton73 . This method is approximate, but very fast. For a more accurate (but slower) method, use rel_fermion.
Given the chemical potential and the temperature the functions calc_mu() and pair_mu() work by solving the equation
for given
. If
, then the alternative expression
is used. The pressure, energy density, and entropy, are determined as polynomials in with a set of precomputed coefficients as done in Johns96 .
If is too small (less than about -200), the above procedure fails. To handle this, this class uses the classical result if
< min_psi, where min_psi defaults to -200.
When the density and temperature is given instead (calc_density() and pair_density()), then there are two ways to proceed.
Because the density is a complicated polynomial in , the former procedure does not work very well even though it might be less time consuming. In this class, the density is solved for the effective chemical potential instead. The initial guess is just taken from the present value of part::nu .
Definition at line 93 of file eff_fermion.h.
Coefficients for finite-temperature approximation | |
static const int | cf_fermilat3 = 1 |
A set of coefficients from Jim Lattimer. | |
static const int | cf_fermijel2 = 2 |
The smaller set of coefficients from Johns96. | |
static const int | cf_fermijel3 = 3 |
The larger set of coefficients from Johns96. | |
static const int | cf_fermijel3cons = 4 |
The set of coefficients from Johns96 which retains better thermodynamic consistency. | |
static int | load_coefficients (int ctype) |
Load coefficients. | |
Public Member Functions | |
eff_fermion (double mass=0.0, double dof=0.0) | |
Create a fermion with mass mass and degeneracy dof . | |
virtual int | calc_mu (const double temper) |
Calculate thermodynamic properties as function of chemical potential. | |
virtual int | calc_density (const double temper) |
Calculate thermodynamic properties as function of density. | |
virtual int | pair_mu (const double temper) |
Calculate thermodynamic properties with antiparticles as function of chemical potential. | |
virtual int | pair_density (const double temper) |
Calculate thermodynamic properties with antiparticles as function of density. | |
int | set_psi_root (root< double, funct< double > > &rp) |
Set the solver for use in calculating ![]() | |
int | set_density_root (root< double, funct< double > > &rp) |
Set the solver for use in calculating the chemical potential from the density. | |
virtual const char * | type () |
Return string denoting type ("eff_fermion"). | |
Data Fields | |
double | tlimit |
If the temperature is less than tlimit then the zero-temperature functions are used (default 0). | |
cern_mroot_root< double, funct < double > > | def_psi_root |
The default solver for ![]() | |
cern_mroot_root< double, funct < double > > | def_density_root |
The default solver for calc_density() and pair_density(). | |
double | min_psi |
The minimum value of ![]() | |
Protected Member Functions | |
int | solve_fun (double x, double &y, double &psi) |
The function which solves for ![]() ![]() | |
int | density_fun (double x, double &y, double &temper) |
Fix density for calc_density(). | |
int | pair_density_fun (double x, double &y, double &temper) |
Fix density for pair_density(). | |
Protected Attributes | |
root< double, funct< double > > * | psi_root |
The solver for ![]() | |
root< double, funct< double > > * | density_root |
The other solver for calc_density(). | |
Static Protected Attributes | |
static double ** | Pmnf |
The matrix of coefficients. | |
static double | parma |
The parameter ![]() | |
static int | sizem |
The array row size. | |
static int | sizen |
The array column size. |
virtual int calc_density | ( | const double | temper | ) | [virtual] |
virtual int calc_mu | ( | const double | temper | ) | [virtual] |
Calculate thermodynamic properties as function of chemical potential.
If the quantity (or
in the case of interacting particles) is less than -200, then this quietly sets the density, the scalar density, the energy density, the pressure and the entropy to zero and exits.
Implements fermion_T.
Reimplemented in eff_quark.
static int load_coefficients | ( | int | ctype | ) | [static] |
Load coefficients.
The argument ctype
Should be one of the constants below.
virtual int pair_mu | ( | const double | temper | ) | [virtual] |
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page