fermion Class Reference

#include <fermion.h>

Inheritance diagram for fermion:

part classical deriv_fermion eff_fermion nonrel_fermion quark rel_fermion deriv_classical nucleus sn_fermion sn_nr_fermion eff_quark eff_quark sn_classical

Detailed Description

Fermion class.

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.

Todo:
Consider putting a parent version of calc_e and calc_p, or in part or fermion which automatically solves like eff_fermion::calc_density()?
The Mathematica notebook contains the derivations of the series expansions and some algebra for the massless_pair() functions. fermion.nb, and fermion.ps.

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().

Member Function Documentation

int kffromden (  ) 

Calculate the Fermi momentum from the density.

Uses the relation $ k_F = ( 6 \pi^2 n /g )^{1/3} $

int sden (  ) 

Scalar number density at T=0 from kf and ms.

Calculates the integral

\[ n_s=\frac{g}{2 \pi^2} \int_0^{k_F} k^2 \frac{m^{*}}{\sqrt{k^2+m^{* 2}}} d k \]

int eden (  ) 

Energy density at T=0 from kf and ms.

Calculates the integral

\[ \varepsilon = \frac{g}{2 \pi^2} \int_0^{k_F} k^2 \ sqrt{k^2+m^{* 2}} d k \]

int pres (  ) 

Pressure at T=0 from kf and ms.

Calculates the integral

\[ P=\frac{g}{6 \pi^2} \int_0^{k_F} \frac{k^4}{\sqrt{k^2+m^{* 2}}} d k \]

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 $ n^3 >> T $ and $ T >> n^3 $ , expansions are used instead of the exact formulas to avoid loss of precision.

Todo:
Comment here about the precision of the expansions and allow the user to control how they are used if necessary.

double deg_specific_heat ( double  T  )  [inline]

Degenerate expansion for specific heat.

This is a temporary location and is also unchecked.

Definition at line 212 of file fermion.h.


Field Documentation

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.

Definition at line 232 of file fermion.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.