23 #ifndef O2SCL_FERMION_DERIV_REL_H 24 #define O2SCL_FERMION_DERIV_REL_H 34 #include <o2scl/constants.h> 35 #include <o2scl/root_cern.h> 36 #include <o2scl/inte.h> 37 #include <o2scl/inte_qag_gsl.h> 38 #include <o2scl/inte_qagiu_gsl.h> 40 #include <o2scl/part_deriv.h> 42 #ifndef DOXYGEN_NO_O2NS 356 virtual const char *
type() {
return "fermion_deriv_rel"; };
373 std::string fname=
"");
377 #ifndef DOXYGEN_NO_O2NS 408 double deg_density_fun(
double u,
fermion_deriv &f,
double T);
410 double deg_entropy_fun(
double u,
fermion_deriv &f,
double T);
411 double deg_density_T_fun(
double k,
fermion_deriv &f,
double T);
412 double deg_density_mu_fun(
double k,
fermion_deriv &f,
double T);
413 double deg_entropy_T_fun(
double k,
fermion_deriv &f,
double T);
414 double deg_density_ms_fun(
double k,
fermion_deriv &f,
double T);
431 #ifndef DOXYGEN_NO_O2NS inte * nit
The integrator for non-degenerate fermions.
void set_inte(inte<> &unit, inte<> &udit)
Set inte objects.
fermion_deriv unc
Storage for the most recently calculated uncertainties.
root * density_root
The solver for calc_density() and pair_density()
inte * dit
The integrator for degenerate fermions.
bool err_nonconv
If true, call the error handler when convergence fails (default true)
static const int by_parts
Integrate by parts.
double upper_limit_fac
The limit for the Fermi functions (default 20.0)
virtual int pair_mu(fermion_deriv &f, double temper)
Calculate properties with antiparticles as function of chemical potential.
A fermion with derivative information.
Compute properties of a fermion including derivatives [abstract base].
root_cern def_density_root
The default solver for npen_density() and pair_density()
inte_qag_gsl def_dit
The default integrator for the degenerate regime.
int intl_method
The internal integration method.
inte_qagiu_gsl def_nit
The default integrator for the non-degenerate regime.
fermion_deriv_rel()
Create a fermion with mass m and degeneracy g.
double deg_limit
The critical degeneracy at which to switch integration techniques (default 2.0)
static const int automatic
Automatically choose method.
virtual int nu_from_n(fermion_deriv &f, double temper)
Calculate effective chemical potential from density.
static const int direct
In the form containing .
virtual int calc_mu(fermion_deriv &f, double temper)
Calculate properties as function of chemical potential.
int method
Method (default is automatic)
double solve_fun(double x, fermion_deriv &f, double T)
Solve for the chemical potential from the density for calc_density()
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")
double exp_limit
Limit of arguments of exponentials for Fermi functions (default 200.0)
Equation of state for a relativistic fermion.
virtual int calc_density(fermion_deriv &f, double temper)
Calculate properties as function of density.
virtual int pair_density(fermion_deriv &f, double temper)
Calculate properties with antiparticles as function of density.
double deriv_calibrate(fermion_deriv &f, int verbose, std::string fname="")
Calibrate with more accurate tabulated results.
double pair_fun(double x, fermion_deriv &f, double T)
Solve for the chemical potential from the density for pair_density()