#include <fermion.h>
This is a base class for the computation of fermionic thermodynamics. This class includes the computations of zero-temperature (possibly massive) and massless fermions at zero or finite temperature. The more general case of fermions with both finite mass and a finite temperature are taken care of by the functions calc_mu(), calc_density(), pair_mu(), and pair_density(). These are not implemented in this class (see eff_fermion, rel_fermion, nonrel_fermion, sn_fermion, and sn_nr_fermion).
The function massless_calc_density() uses a root object to solve for the chemical potential as a function of the density. The default is an object of type cern_mroot_root. massless_pair_density() doesn't need to use the root object because of the simplification afforded by the inclusion of antiparticles.
Definition at line 86 of file fermion.h.
Public Member Functions | |
fermion (double mass=0, double dof=0) | |
Create a fermion with mass mass and degeneracy dof . | |
virtual | ~fermion () |
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. | |
int | set_massless_root (root< void *, funct< void * > > &rp) |
Set the solver for use in massless_root_density(). | |
double | deg_specific_heat (double T) |
Degenerate expansion for specific heat. | |
virtual const char * | type () |
Return string denoting type ("fermion"). | |
Zero-temperature fermions | |
int | kffromden () |
Calculate the Fermi momentum from the density. | |
int | sden () |
Scalar number density at T=0 from kf and ms. | |
int | eden () |
Energy density at T=0 from kf and ms. | |
int | pres () |
Pressure at T=0 from kf and ms. | |
virtual int | calc_mu_zerot () |
Zero temperature fermions from nu and ms. | |
virtual int | calc_density_zerot () |
Zero temperature fermions from n and ms. | |
Massless fermions | |
virtual int | massless_calc_mu (const double temper) |
Finite temperature massless fermions. | |
virtual int | massless_calc_density (const double temper) |
Finite temperature massless fermions. | |
int | massless_pair_mu (const double temper) |
Finite temperature massless fermions and antifermions. | |
int | massless_pair_density (const double temper) |
Finite temperature massless fermions and antifermions. | |
Data Fields | |
double | kf |
Fermi momentum. | |
double | del |
Gap. | |
cern_mroot_root < void *, funct < void * > > | def_massless_root |
The default solver for massless_calc_mu(). |
int kffromden | ( | ) |
Calculate the Fermi momentum from the density.
Uses the relation
virtual int calc_mu_zerot | ( | ) | [virtual] |
Zero temperature fermions from nu and ms.
This function always returns gsl_success
.
Reimplemented in nonrel_fermion.
virtual int calc_density_zerot | ( | ) | [virtual] |
Zero temperature fermions from n and ms.
This function always returns gsl_success
.
Reimplemented in nonrel_fermion.
int massless_pair_density | ( | const double | temper | ) |
Finite temperature massless fermions and antifermions.
In the cases and
, expansions are used instead of the exact formulas to avoid loss of precision.
double deg_specific_heat | ( | double | T | ) | [inline] |
cern_mroot_root<void *,funct<void *> > def_massless_root |
The default solver for massless_calc_mu().
We default to cern_mroot_root here since we don't have a bracket or a derivative.