Class fermion_nonrel_tl (o2scl)¶
-
template<class
fermion_t
= fermion_tl<double>, classfd_inte_t
= fermi_dirac_integ_gsl, classbe_inte_t
= bessel_K_exp_integ_gsl, classroot_t
= root_cern<>, classfunc_t
= funct, classfp_t
= double>
classo2scl
::
fermion_nonrel_tl
: public o2scl::fermion_thermo_tl<fermion_tl<double>, fermi_dirac_integ_gsl, bessel_K_exp_integ_gsl, root_cern<>, funct, double>¶ Nonrelativistic fermion class.
The effective mass computed by this class and stored in part_tl::ms is the Landau mass, not the Dirac mass, as computed by o2scl::fermion_rel_tl .
This class works with both true and false values for either part_tl::non_interacting or part_tl::inc_rest_mass.
Pressure is computed with
\[ P = 2 \varepsilon/3 \]and entropy density with\[ s = \frac{5 \varepsilon}{3 T} - \frac{n \mu}{T} \]These relations can be verified with an integration by parts. See, e.g. [Callen85] pg. 403 or [Landau80].
The functions pair_density() and pair_mu() have not been implemented and just call the error handler.
- Idea for Future:
Implement o2scl::fermion_nonrel_tl::pair_density() and o2scl::fermion_nonrel_tl::pair_mu(). [AWS, 1/23/19: it is not entirely clear to me that antiparticles will be useful.]
- Note
The function calc_density() calls the error handler at zero density and finite temperature, because the correct answer implies \( \mu = - \infty \) . At zero density and zero temperature the function calc_density() calls calc_density_zerot() which gives the proper chemical potential of \( mu = m \) without calling the error handler.
- Idea for Future:
This could be improved by performing a Chebyshev approximation (for example) to invert the density integral so that we don’t need to use a solver.
Public Functions
-
fermion_nonrel_tl
()¶ Create a nonrelativistic fermion with mass ‘m’ and degeneracy ‘g’.
-
~fermion_nonrel_tl
()¶
-
int
calc_density
(fermion_t &f, fp_t temper)¶ Calculate properties as function of density.
If the density is zero, this function just sets part::mu, part::nu, part::ed, part::pr, and part::en to zero and returns without calling the error handler (even though at zero density and finite temperature, the chemical potentials formally are equal to \( -\infty \)).
-
void
pair_mu
(fermion_t &f, fp_t temper)¶ Compute thermodynamics with antiparticles at fixed chemical potential (unimplemented)
-
int
pair_density
(fermion_t &f, fp_t temper)¶ Compute thermodynamics with antiparticles at fixed density (unimplemented)
-
void
set_density_root
(root<> &rp)¶ Set the solver for use in calculating the chemical potential from the density.
-
const char *
type
()¶ Return string denoting type (“fermion_nonrel”)
Public Members
-
root_cern
def_density_root
¶ The default solver for calc_density().
Protected Attributes
-
root *
density_root
¶ Solver to compute chemical potential from density.
Private Functions
-
fermion_nonrel_tl
(const fermion_nonrel_tl&)¶
-
fermion_nonrel_tl &
operator=
(const fermion_nonrel_tl&)¶