23 #ifndef O2SCL_FERMION_H
24 #define O2SCL_FERMION_H
35 #include <gsl/gsl_specfunc.h>
37 #include <o2scl/constants.h>
38 #include <o2scl/funct.h>
39 #include <o2scl/root.h>
40 #include <o2scl/root_cern.h>
41 #include <o2scl/part.h>
43 #ifndef DOXYGEN_NO_O2NS
62 fermion(
double mass=0,
double dof=0);
68 virtual const char *
type() {
return "fermion"; }
239 double prec=1.0e-18);
259 double prec=1.0e-18);
364 virtual const char *
type() {
return "fermion_eval_thermo"; }
386 #ifndef DOXYGEN_NO_O2NS
400 #ifndef DOXYGEN_NO_O2NS
virtual void massless_calc_mu(fermion &f, double temper)
Finite temperature massless fermions.
Fermion properties at zero temperature.
virtual double calibrate(fermion &f, int verbose=0, std::string fname="")
Test the thermodynamics of calc_density() and calc_mu()
virtual void calc_density_zerot(fermion &f)
Zero temperature fermions from part::n and part::ms.
virtual void massless_pair_density(fermion &f, double temper)
Finite temperature massless fermions and antifermions.
virtual void calc_mu_zerot(fermion &f)
Zero temperature fermions from part::mu or part::nu and part::ms.
root_cern def_massless_root
The default solver for massless_calc_density()
void kf_from_density(fermion &f)
Calculate the Fermi momentum from the density.
double massless_solve_fun(double x, fermion &f, double temper)
Desc.
virtual void massless_calc_density(fermion &f, double temper)
Finite temperature massless fermions.
virtual bool calc_mu_ndeg(fermion &f, double temper, double prec=1.0e-18)
Non-degenerate expansion for fermions.
fermion(double mass=0, double dof=0)
Create a fermion with mass mass and degeneracy dof.
Fermion with finite-temperature thermodynamics [abstract base].
virtual int calc_density(fermion &f, double temper)=0
Calculate properties as function of density.
virtual const char * type()
Return string denoting type ("fermion_eval_thermo")
root * massless_root
A pointer to the solver for massless fermions.
void pressure_zerot(fermion &f)
Pressure at T=0 from fermion::kf and part::ms.
virtual void massless_pair_mu(fermion &f, double temper)
Finite temperature massless fermions and antifermions.
virtual bool calc_mu_deg(fermion &f, double temper, double prec=1.0e-18)
Degenerate expansion for fermions.
virtual void calc_mu(fermion &f, double temper)=0
Calculate properties as function of chemical potential.
virtual int pair_density(fermion &f, double temper)=0
Calculate properties with antiparticles as function of density.
void energy_density_zerot(fermion &f)
Energy density at T=0 from fermion::kf and part::ms.
virtual void pair_mu(fermion &f, double temper)=0
Calculate properties with antiparticles as function of chemical potential.
void set_massless_root(root<> &rp)
Set the solver for use in massless_calc_density()
virtual const char * type()
Return string denoting type ("fermion")