#include <rel_fermion.h>
This implements an equation of state for a relativistic fermion using direct integration. Define the degeneracy parameter
where is the effective chemical potential and
is the effective mass. For
greater than deg_limit (degenerate regime), a finite interval integrator is used and for
less than deg_limit (non-degenerate regime), an integrator over the interval from
is used. The upper limit on the degenerate integration is given by
The default integrators are gsl_inte_qag (for degenerate particles) and gsl_inte_qagiu (for non-degenerate particles)
One way to improve the accuracy of the computation is just to decrease the tolerances on the default integration objects. This can be done, using, for example
rel_fermion rf(1.0,2.0); rf.def_dit.tolx/=1.0e2; rf.def_dit.tolf/=1.0e2; rf.def_nit.tolx/=1.0e2; rf.def_nit.tolf/=1.0e2;
rf.def_density_root.tolx/=1.0e2; rf.def_density_root.tolf/=1.0e2;
Definition at line 98 of file rel_fermion.h.
Public Member Functions | |
rel_fermion (double m=0.0, double g=0.0) | |
Create a fermion with mass m and degeneracy g . | |
virtual int | calc_mu (const double temper) |
Calculate properties as function of chemical potential. | |
virtual int | calc_density (const double temper) |
Calculate properties as function of density. | |
virtual int | pair_mu (const double temper) |
Calculate properties with antiparticles as function of chemical potential. | |
virtual int | pair_density (const double temper) |
Calculate properties with antiparticles as function of density. | |
virtual int | nu_from_n (const double temper) |
Calculate effective chemical potential from density. | |
int | set_inte (inte< void *, funct< void * > > &non_it, inte< void *, funct< void * > > °_it) |
Set integrators. | |
int | set_density_root (root< void *, funct< void * > > &rp) |
Set the solver for use in calculating the chemical potential from the density. | |
virtual const char * | type () |
Return string denoting type ("rel_fermion"). | |
Data Fields | |
double | deg_limit |
The critical degeneracy at which to switch integration techniques. | |
fermion | unc |
Storage for the uncertainty. | |
bool | guess_from_nu |
If true, use the present value of the chemical potential as a guess for the new chemical potential. | |
cern_mroot_root< void *, funct < void * > > | def_density_root |
The default solver for calc_density(). | |
gsl_inte_qag< void *, funct < void * > > | def_dit |
The default integrator for degenerate fermions. | |
gsl_inte_qagiu< void *, funct < void * > > | def_nit |
The default integrator for non-degenerate fermions. | |
Protected Member Functions | |
double | density_fun (double u, void *&pa) |
The integrand for the density for non-degenerate fermions. | |
double | energy_fun (double u, void *&pa) |
The integrand for the energy density for non-degenerate fermions. | |
double | entropy_fun (double u, void *&pa) |
The integrand for the entropy density for non-degenerate fermions. | |
double | deg_density_fun (double u, void *&pa) |
The integrand for the density for degenerate fermions. | |
double | deg_energy_fun (double u, void *&pa) |
The integrand for the energy density for degenerate fermions. | |
double | deg_entropy_fun (double u, void *&pa) |
The integrand for the entropy density for degenerate fermions. | |
int | solve_fun (double x, double &yy, void *&pa) |
Solve for the chemical potential given the density. | |
int | pair_fun (double x, double &yy, void *&pa) |
Solve for the chemical potential given the density wiht antiparticles. | |
Protected Attributes | |
inte< void *, funct< void * > > * | nit |
The non-degenerate integrator. | |
inte< void *, funct< void * > > * | dit |
The degenerate integrator. | |
root< void *, funct< void * > > * | density_root |
The solver for calc_density(). |
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