sn_fermion Class Reference

#include <sn_fermion.h>

Inheritance diagram for sn_fermion:

deriv_fermion fermion deriv_part 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 \]

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.

Todo:
This class will have difficulty with extremely degenerate or extremely non-degnerate systems.
Todo:
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< void *, funct< void * > > &unit, inte< void *, funct< void * > > &udit)
 Set inte objects.
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 ("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).
deriv_fermion unc
 Storage for the most recently calculated uncertainties.
gsl_inte_qagiu< void *,
funct< void * > > 
def_nit
 The default integrator for the non-degenerate regime.
gsl_inte_qag< void *,
funct< void * > > 
def_dit
 The default integrator for the degenerate regime.
cern_mroot_root
< void *, funct
< void * > > 
def_density_root
 The default solver for npen_density() and pair_density().

Member Function Documentation

int set_inte ( inte< void *, funct< void * > > &  unit,
inte< void *, funct< void * > > &  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