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"; }
139 void kf_from_density(
fermion &f);
149 void energy_density_zerot(
fermion &f);
158 void pressure_zerot(
fermion &f);
163 virtual void calc_mu_zerot(
fermion &f);
167 virtual void calc_density_zerot(
fermion &f);
275 virtual bool calc_mu_ndeg(
fermion &f,
double temper,
276 double prec=1.0e-18,
bool inc_antip=
false);
295 virtual bool calc_mu_deg(
fermion &f,
double temper,
296 double prec=1.0e-18);
300 virtual void calc_mu(
fermion &f,
double temper)=0;
307 virtual int calc_density(
fermion &f,
double temper)=0;
312 virtual void pair_mu(
fermion &f,
double temper)=0;
320 virtual int pair_density(
fermion &f,
double temper)=0;
325 virtual void massless_calc_mu(
fermion &f,
double temper);
328 virtual void massless_calc_density(
fermion &f,
double temper);
332 virtual void massless_pair_mu(
fermion &f,
double temper);
384 virtual void massless_pair_density(
fermion &f,
double temper);
401 virtual const char *
type() {
return "fermion_eval_thermo"; }
421 virtual double calibrate(
fermion &f,
int verbose=0,
bool test_pair=
false,
422 std::string fname=
"");
424 #ifndef DOXYGEN_NO_O2NS 432 double massless_solve_fun(
double x,
fermion &f,
double temper);
438 #ifndef DOXYGEN_NO_O2NS fermion & operator=(const fermion &f)
Copy construction with operator=()
double nu
Effective chemical potential.
Fermion properties at zero temperature.
root_cern def_massless_root
The default solver for massless_calc_density()
fermion(double mass=0, double dof=0)
Create a fermion with mass mass and degeneracy dof.
double en
Entropy density.
Fermion with finite-temperature thermodynamics [abstract base].
fermion(const fermion &f)
Copy constructor.
virtual const char * type()
Return string denoting type ("fermion_eval_thermo")
root * massless_root
A pointer to the solver for massless fermions.
double mu
Chemical potential.
double ms
Effective mass (Dirac unless otherwise specified)
bool non_interacting
True if the particle is non-interacting (default true)
bool inc_rest_mass
If true, include the mass in the energy density and chemical potential (default true) ...
double g
Degeneracy (e.g. spin and color if applicable)
void set_massless_root(root<> &rp)
Set the solver for use in massless_calc_density()
virtual const char * type()
Return string denoting type ("fermion")