Equation of state for a relativistic fermion. More...
#include <fermion_deriv_rel.h>
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
where is the momentum,
is the effective chemical potential,
is the rest mass, and
is the effective mass. For later use, we define
. The degeneracy parameter is
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 value of the momentum
which is the solution of
which is
where .
For the entropy integration, we set the lower limit to
since the only contribution to the entropy is at the Fermi surface.
In the non-degenerate regime, we make the substitution to help ensure that the variable of integration scales properly.
Uncertainties are given in unc.
Evaluation of the derivatives
The relevant derivatives of the distribution function are
We also need the derivative of the entropy integrand w.r.t. the distribution function, which is
where the entropy density is
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 = by_parts)
using the distribution function for and 0 and
as the limits, we have
as long as vanishes at
. Rewriting,
as long as vanishes at
.
Explicit forms
1) The derivative of the density wrt the chemical potential
Using we get
2) The derivative of the density wrt the temperature
Using we get
3) The derivative of the entropy wrt the chemical potential
This verifies the Maxwell relation
4) The derivative of the entropy wrt the temperature
Using
5) The derivative of the density wrt the effective mass
Using we get
Definition at line 251 of file fermion_deriv_rel.h.
Public Member Functions | |
fermion_deriv_rel_tl () | |
Create a fermion with mass m and degeneracy g . | |
![]() | |
virtual int | calc_mu (fermion_deriv &f, double temper)=0 |
Calculate properties as function of chemical potential. | |
virtual int | calc_density (fermion_deriv &f, double temper)=0 |
Calculate properties as function of density. | |
virtual int | pair_mu (fermion_deriv &f, double temper)=0 |
Calculate properties with antiparticles as function of chemical potential. | |
virtual int | pair_density (fermion_deriv &f, double temper)=0 |
Calculate properties with antiparticles as function of density. | |
virtual int | nu_from_n (fermion_deriv &f, double temper)=0 |
Calculate effective chemical potential from density. | |
virtual bool | calc_mu_deg (fermion_deriv &f, double temper, double prec) |
Calculate properties as a function of chemical potential using a degenerate expansion. More... | |
virtual bool | calc_mu_ndeg (fermion_deriv &f, double temper, double prec, bool inc_antip=false) |
Calculate properties as a function of chemical potential using a nondegenerate expansion. More... | |
![]() | |
double | heat_cap_ppart_const_vol (part_deriv_t &p, double temper) |
The heat capacity per particle at constant volume (unitless) More... | |
double | heat_cap_ppart_const_press (part_deriv_t &p, double temper) |
The heat capacity per particle at constant pressure (unitless) More... | |
double | compress_adiabatic (part_deriv_t &p, double temper) |
The adiabatic compressibility. More... | |
double | compress_const_tptr (part_deriv_t &p, double temper) |
The isothermal compressibility. More... | |
double | coeff_thermal_exp (part_deriv_t &p, double temper) |
The coefficient of thermal expansion. More... | |
double | squared_sound_speed (part_deriv_t &p, double temper) |
The squared sound speed (unitless) More... | |
Public Attributes | |
fp_t | exp_limit |
Limit of arguments of exponentials for Fermi functions (default 200.0) | |
fp_t | deg_limit |
The critical degeneracy at which to switch integration techniques (default 2.0) | |
fp_t | upper_limit_fac |
The limit for the Fermi functions (default 20.0) More... | |
fermion_deriv | unc |
Storage for the most recently calculated uncertainties. | |
fermion_rel | fr |
Object for computing non-derivative quantities. | |
Protected Member Functions | |
The integrands, as a function of \f$ u=k/T \f$, for | |
non-degenerate integrals | |
fp_t | density_T_fun (fp_t u, fermion_deriv &f, fp_t T) |
fp_t | density_mu_fun (fp_t u, fermion_deriv &f, fp_t T) |
fp_t | entropy_T_fun (fp_t u, fermion_deriv &f, fp_t T) |
fp_t | density_ms_fun (fp_t u, fermion_deriv &f, fp_t T) |
The integrands, as a function of momentum, for the | |
degenerate integrals | |
fp_t | deg_density_T_fun (fp_t k, fermion_deriv &f, fp_t T) |
fp_t | deg_density_mu_fun (fp_t k, fermion_deriv &f, fp_t T) |
fp_t | deg_entropy_T_fun (fp_t k, fermion_deriv &f, fp_t T) |
fp_t | deg_density_ms_fun (fp_t k, fermion_deriv &f, fp_t T) |
Method of computing derivatives | |
int | method |
Method (default is automatic) | |
int | last_method |
An integer indicating the last numerical method used. More... | |
bool | err_nonconv |
If true, call the error handler when convergence fails (default true) | |
inte_qagiu_gsl | def_nit |
The default integrator for the non-degenerate regime. | |
inte_qag_gsl | def_dit |
The default integrator for the degenerate regime. | |
root_cern | def_density_root |
The default solver for npen_density() and pair_density() | |
static const int | automatic =0 |
Automatically choose method. | |
static const int | direct =1 |
In the form containing ![]() | |
static const int | by_parts =2 |
Integrate by parts. | |
int | intl_method |
The internal integration method. | |
inte * | nit |
The integrator for non-degenerate fermions. | |
inte * | dit |
The integrator for degenerate fermions. | |
root * | density_root |
The solver for calc_density() and pair_density() | |
virtual int | calc_mu (fermion_deriv &f, fp_t temper) |
Calculate properties as function of chemical potential. | |
virtual int | calc_density (fermion_deriv &f, fp_t temper) |
Calculate properties as function of density. | |
virtual int | pair_mu (fermion_deriv &f, fp_t temper) |
Calculate properties with antiparticles as function of chemical potential. | |
virtual int | pair_density (fermion_deriv &f, fp_t temper) |
Calculate properties with antiparticles as function of density. | |
virtual int | nu_from_n (fermion_deriv &f, fp_t temper) |
Calculate effective chemical potential from density. | |
void | set_inte (inte<> &unit, inte<> &udit) |
Set inte objects. More... | |
void | set_density_root (root<> &rp) |
Set the solver for use in calculating the chemical potential from the density. | |
virtual const char * | type () |
Return string denoting type ("fermion_deriv_rel") | |
Additional Inherited Members | |
![]() | |
fermion_rel | fr |
A fermion_thermo object. More... | |
double | pi |
Desc. | |
double | pi2 |
Desc. | |
|
inline |
The first integrator is used for non-degenerate integration and should integrate from 0 to (like o2scl::inte_qagiu_gsl). The second integrator is for the degenerate case, and should integrate between two finite values.
Definition at line 643 of file fermion_deriv_rel.h.
int o2scl::fermion_deriv_rel_tl< fp_t >::last_method |
The function calc_mu() sets this integer to a two-digit number. It is equal to 10 times the value reported by o2scl::fermion_rel::calc_mu_tlate() plus a value from the list below corresponding to the method used for the derivatives
The function nu_from_n() sets this value equal to 100 times the value reported by o2scl::fermion_rel_tl::nu_from_n_tlate() .
The function calc_density() sets this value equal to the value from o2scl::fermion_deriv_rel_tl::nu_from_n() plus the value from o2scl::fermion_deriv_rel_tl::calc_mu() .
Definition at line 340 of file fermion_deriv_rel.h.
fp_t o2scl::fermion_deriv_rel_tl< fp_t >::upper_limit_fac |
fermion_deriv_rel will ignore corrections smaller than about .
Definition at line 293 of file fermion_deriv_rel.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).