sn_fermion Class Reference

Equation of state for a relativistic fermion. More...

#include <sn_fermion.h>

Inheritance diagram for sn_fermion:

fermion_T deriv_part fermion part

Detailed Description

Equation of state for a relativistic fermion.

Note:
This class does not work with inc_rest_mass=true.
This implements an equation of state for a relativistic fermion using direct integration. After subtracting the rest mass from the chemical potentials, the distribution function is

\[ \left\{1+\exp[(\sqrt{k^2+m^{* 2}}-m-\nu)/T]\right\}^{-1} \]

where $ k $ is the momentum, $ \nu $ is the effective chemical potential, $ m $ is the rest mass, and $ m^{*} $ is the effective mass. For later use, we define $ E^{*} = \sqrt{k^2 + m^{*2}} $ . The degeneracy parameter is

\[ \psi=(\nu+(m-m^{*}))/T \]

For $ \psi $ greater than deg_limit (degenerate regime), a finite interval integrator is used and for $ \psi $ less than deg_limit (non-degenerate regime), an integrator over the interval from $ [0,\infty) $ is used. Typical choices are Gauss-Legendre integration for the degenerate regime and Gauss-Laguerre integration for the non-degenerate regime. The upper limit on the degenerate integration is given by the solution of

\[ (\sqrt{k^2+m^{*,2}}-m-\nu)/T=\mathrm{f{l}imit} \]

which is

\[ \sqrt{(m+{\cal L})^2-m^{*2}} \]

where $ {\cal L}\equiv\mathrm{f{l}imit}\times T+\nu $ .

In the non-degenerate regime, we make the substitution $ u=k/T $ to ensure that the variable of integration does not have units.

Uncertainties are given in unc.

Todo:
This needs to be corrected to calculate $ \sqrt{k^2+m^{* 2}}-m $ gracefully when $ m^{*}\approx m $ .
Todo:
Call error handler if inc_rest_mass is true or update to properly treat the case when inc_rest_mass is true.
Evaluation of the derivatives

The relevant derivatives of the distribution function are

\[ \frac{\partial f}{\partial T}= f(1-f)\frac{E^{*}-m-\nu}{T^2} \]

\[ \frac{\partial f}{\partial \nu}= f(1-f)\frac{1}{T} \]

\[ \frac{\partial f}{\partial k}= -f(1-f)\frac{k}{E^{*} T} \]

\[ \frac{\partial f}{\partial m^{*}}= -f(1-f)\frac{m^{*}}{E^{*} T} \]

We also need the derivative of the entropy integrand w.r.t. the distribution function, which is

\[ {\cal S}\equiv f \ln f +(1-f) \ln (1-f) \qquad \frac{\partial {\cal S}}{\partial f} = \ln \left(\frac{f}{1-f}\right) = \left(\frac{\nu-E^{*}+m}{T}\right) \]

where the entropy density is

\[ s = - \frac{g}{2 \pi^2} \int_0^{\infty} {\cal S} k^2 d k \]

The derivatives can be integrated directly (method = direct) or they may be converted to integrals over the distribution function through an integration by parts (method = byparts)

\[ \int_a^b f(k) \frac{d g(k)}{dk} dk = \left.f(k) g(k)\right|_{k=a}^{k=b} - \int_a^b g(k) \frac{d f(k)}{dk} dk \]

using the distribution function for $ f(k) $ and 0 and $ \infty $ as the limits, we have

\[ \frac{g}{2 \pi^2} \int_0^{\infty} \frac{d g(k)}{dk} f dk = \frac{g}{2 \pi^2} \int_0^{\infty} g(k) f (1-f) \frac{k}{E^{*} T} dk \]

as long as $ g(k) $ vanishes at $ k=0 $ . Rewriting,

\[ \frac{g}{2 \pi^2} \int_0^{\infty} h(k) f (1-f) dk = \frac{g}{2 \pi^2} \int_0^{\infty} f \frac{T}{k} \left[ h^{\prime} E^{*}-\frac{h E^{*}}{k}+\frac{h k}{E^{*}} \right] dk \]

as long as $ h(k)/k $ vanishes at $ k=0 $ .

Explicit forms

1) The derivative of the density wrt the chemical potential

\[ \left(\frac{d n}{d \mu}\right)_T = \frac{g}{2 \pi^2} \int_0^{\infty} \frac{k^2}{T} f (1-f) dk \]

Using $ h(k)=k^2/T $ we get

\[ \left(\frac{d n}{d \mu}\right)_T = \frac{g}{2 \pi^2} \int_0^{\infty} \left(\frac{k^2+E^{*2}}{E^{*}}\right) f dk \]

2) The derivative of the density wrt the temperature

\[ \left(\frac{d n}{d T}\right)_{\mu} = \frac{g}{2 \pi^2} \int_0^{\infty} \frac{k^2(E^{*}-m-\nu)}{T^2} f (1-f) dk \]

Using $ h(k)=k^2(E^{*}-\nu)/T^2 $ we get

\[ \left(\frac{d n}{d T}\right)_{\mu} = \frac{g}{2 \pi^2} \int_0^{\infty} \frac{f}{T} \left[2 k^2+E^{*2}-E^{*}\left(\nu+m\right)- k^2 \left(\frac{\nu+m}{E^{*}}\right)\right] dk \]

3) The derivative of the entropy wrt the chemical potential

\[ \left(\frac{d s}{d \mu}\right)_T = \frac{g}{2 \pi^2} \int_0^{\infty} k^2 f (1-f) \frac{(E^{*}-m-\nu)}{T^2} dk \]

This verifies the Maxwell relation

\[ \left(\frac{d s}{d \mu}\right)_T = \left(\frac{d n}{d T}\right)_{\mu} \]

4) The derivative of the entropy wrt the temperature

\[ \left(\frac{d s}{d T}\right)_{\mu} = \frac{g}{2 \pi^2} \int_0^{\infty} k^2 f (1-f) \frac{(E^{*}-m-\nu)^2}{T^3} dk \]

Using $ h(k)=k^2 (E^{*}-\nu)^2/T^3 $

\[ \left(\frac{d s}{d T}\right)_{\mu} = \frac{g}{2 \pi^2} \int_0^{\infty} \frac{f(E^{*}-m-\nu)}{E^{*}T^2} \left[E^{* 3}+3 E^{*} k^2- (E^{* 2}+k^2)(\nu+m)\right] d k \]

5) The derivative of the density wrt the effective mass

\[ \left(\frac{d n}{d m^{*}}\right)_{T,\mu} = -\frac{g}{2 \pi^2} \int_0^{\infty} \frac{k^2 m^{*}}{E^{*} T} f (1-f) dk \]

Using $ h(k)=-(k^2 m^{*})/(E^{*} T) $ we get

\[ \left(\frac{d n}{d m^{*}}\right)_{T,\mu} = -\frac{g}{2 \pi^2} \int_0^{\infty} m^{*} f dk \]

Note:
The dsdT integration doesn't work well if the system is very degenerate. When method is byparts, the integral involves a large cancellation between the regions from $ k \in (0, \mathrm{ulimit/2}) $ and $ k \in (\mathrm{ulimit/2}, \mathrm{ulimit}) $. Switching to method=direct and setting the lower limit to $ \mathrm{llimit} $, may help, but recent testing on this gave negative values for dsdT. For very degenerate systems, an expansion is probably better than trying to perform the integration.
Idea for future:
This class will have difficulty with extremely degenerate or extremely non-degnerate systems. Fix this.
Idea for future:
Create a more intelligent method for dealing with bad initial guesses for the chemical potential in calc_density().

Definition at line 225 of file sn_fermion.h.


Method of computing derivatives

int method
 Method (default is byparts).
static const int direct = 1
 In the form containing $ f(1-f) $ .
static const int byparts = 2
 Integrate by parts.

Public Member Functions

 sn_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< const double, funct< const double > > &unit, inte< const double, funct< const double > > &udit)
 Set inte objects.
int set_density_root (root< const double, funct< const double > > &rp)
 Set the solver for use in calculating the chemical potential from the density.
virtual const char * type ()
 Return string denoting type ("sn_fermion").

Data Fields

double deg_limit
 The critical degeneracy at which to switch integration techniques (default 2.0).
double flimit
 The limit for the Fermi functions (default 20.0).
fermion unc
 Storage for the most recently calculated uncertainties.
deriv_part dunc
 Storage for the most recently calculated uncertainties.
gsl_inte_qagiu< const double,
funct< const double > > 
def_nit
 The default integrator for the non-degenerate regime.
gsl_inte_qag< const double,
funct< const double > > 
def_dit
 The default integrator for the degenerate regime.
cern_mroot_root< const double,
funct< const double > > 
def_density_root
 The default solver for npen_density() and pair_density().

Member Function Documentation

int set_inte ( inte< const double, funct< const double > > &  unit,
inte< const double, funct< const double > > &  udit 
)

Set inte objects.

The first integrator is used for non-degenerate integration and should integrate from 0 to $ \infty $ (like gsl_inte_qagiu). The second integrator is for the degenerate case, and should integrate between two finite values.


Field Documentation

double flimit

The limit for the Fermi functions (default 20.0).

sn_fermion will ignore corrections smaller than about $ \exp(-\mathrm{f{l}imit}) $ .

Definition at line 244 of file sn_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.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page