26 #ifndef O2SCL_HADRONIC_EOS_H
27 #define O2SCL_HADRONIC_EOS_H
32 #include <boost/numeric/ublas/vector.hpp>
34 #include <o2scl/deriv_gsl.h>
35 #include <o2scl/mroot.h>
36 #include <o2scl/mroot_hybrids.h>
37 #include <o2scl/mm_funct.h>
38 #include <o2scl/eos_base.h>
39 #include <o2scl/fermion_eff.h>
40 #include <o2scl/part.h>
41 #include <o2scl/lib_settings.h>
43 #ifndef DOXYGEN_NO_O2NS
360 virtual double fcomp(
double nb,
double delta=0.0);
367 virtual double fcomp_err(
double nb,
double delta,
double &unc);
376 virtual double feoa(
double nb,
double delta=0.0);
392 virtual double fesym(
double nb,
double delta=0.0);
402 virtual double fesym_err(
double nb,
double delta,
double &unc);
411 virtual double fesym_slope(
double nb,
double delta=0.0);
415 virtual double fesym_curve(
double nb,
double delta=0.0);
419 virtual double fesym_skew(
double nb,
double delta=0.0);
435 virtual double feta(
double nb);
451 virtual double fkprime(
double nb,
double delta=0.0);
463 virtual double fmsom(
double nb,
double delta=0.0);
467 virtual double f_effm_neut(
double nb,
double delta=0.0);
470 virtual double f_effm_prot(
double nb,
double delta=0.0);
504 virtual double fn0(
double delta,
double &leoa);
559 double &dednb_pf,
double &dPdnb_pf);
598 double nn0,
double np0);
614 double mun0,
double mup0);
783 double &qnn,
double &qnp,
double &qpp,
784 double &dqnndnn,
double &dqnndnp,
785 double &dqnpdnn,
double &dqnpdnp,
786 double &dqppdnn,
double &dqppdnp);
789 virtual const char *
type() {
return "eos_had_base"; }
792 #ifndef DOXYGEN_INTERNAL
797 double t1_fun(
double barn);
800 double t2_fun(
double barn);
857 #ifndef DOXYGEN_INTERNAL
866 ubvector &y,
double nn0,
double np0,
double T);
870 ubvector &y,
double mun0,
double mup0,
double T);
886 double Ye0,
double T,
895 double nB0,
double T,
921 virtual int calc_e(fermion &n, fermion &p, thermo &th)=0;
926 virtual int calc_temp_e(fermion &n, fermion &p,
double T,
931 virtual int calc_p(fermion &n, fermion &p, thermo &th)=0;
936 virtual int calc_temp_p(fermion &n, fermion &p,
double T,
981 double nB,
double Ye,
double T,
thermo &th1,
thermo &th2,
999 double &Ye,
double &chi);
1006 virtual double fesym_T(
double nb,
double T,
double delta=0.0);
1010 virtual double fsyment_T(
double nb,
double T,
double delta=0.0);
1078 #ifndef DOXYGEN_NO_O2NS
root_cern def_sat_root
The default solver for calculating the saturation density.
virtual double fesym_skew(double nb, double delta=0.0)
The skewness of the symmetry energy.
virtual void set_sat_deriv(deriv_base<> &de)
Set deriv_base object to use to find saturation properties.
virtual void set_fermion_eval_thermo(fermion_eval_thermo &f)
Computing finite-temperature integrals.
virtual int calc_liqgas_beta_temp_e(fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB, double T, thermo &th1, thermo &th2, double &Ye, double &chi)
Compute the liquid-gas phase transition in beta-equilibrium using eos_had_temp_base::calc_temp_e() ...
int nuc_matter_temp_p(size_t nv, const ubvector &x, ubvector &y, double mun0, double mup0, double T)
Solve for nuclear matter at finite temperature given mu.
int liqgas_solve(size_t nv, const ubvector &x, ubvector &y, fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB0, double Ye0, double T, thermo &th1, thermo &th2)
Solve for the liquid-gas phase transition at fixed baryon density and electron fraction.
virtual double feta_prime(double nb)
The derivative of the strength parameter for quartic terms in the symmetry energy.
double calc_dmu_delta_T(double delta, double nb, double T)
Compute the difference between the neutron and proton chemical potentials.
int liqgas_beta_solve(size_t nv, const ubvector &x, ubvector &y, fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB0, double T, thermo &th1, thermo &th2, fermion &e)
Solve for the liquid-gas phase transition in beta-equilibrium.
fermion_eval_thermo * fet
Fermion thermodynamics (default is def_fet)
Equation of state base class.
virtual int calc_e(fermion &n, fermion &p, thermo &th)
Equation of state as a function of density.
double comp
Compression modulus.
virtual double fkprime(double nb, double delta=0.0)
Calculate skewness of nuclear matter using calc_e()
deriv_gsl def_deriv
The default object for derivatives.
virtual double f_effm_neut(double nb, double delta=0.0)
Neutron effective mass.
double t1_fun(double barn)
Compute t1 for gradient_qij().
virtual int calc_e(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of density.
void const_pf_derivs(double nb, double pf, double &dednb_pf, double &dPdnb_pf)
Compute derivatives at constant proton fraction.
virtual double fmsom(double nb, double delta=0.0)
Calculate reduced neutron effective mass using calc_e()
double calc_pressure_nb(double nb, double delta=0.0)
Compute the pressure as a function of baryon density at fixed isospin asymmetry.
mroot * eos_mroot
The EOS solver.
virtual double fcomp(double nb, double delta=0.0)
Calculate the incompressibility in using calc_e()
virtual double f_effm_scalar(double nb, double delta=0.0)
Scalar effective mass.
virtual double fn0(double delta, double &leoa)
Calculate saturation density using calc_e()
virtual int calc_p(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of the chemical potentials.
virtual int calc_e(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of density.
virtual int calc_liqgas_dens_temp_e(fermion &n1, fermion &p1, fermion &n2, fermion &p2, double T, thermo &th1, thermo &th2)
Compute liquid-gas phase transition densities using eos_had_temp_base::calc_temp_e() ...
double esym
Symmetry energy.
virtual double fesym_diff(double nb)
Calculate symmetry energy of matter as energy of neutron matter minus the energy of nuclear matter...
A hadronic EOS at finite temperature based on a function of the densities [abstract base]...
virtual int calc_temp_p(fermion &n, fermion &p, double T, thermo &th)
Equation of state as a function of the chemical potentials at finite temperature. ...
virtual int calc_liqgas_temp_e(fermion &n1, fermion &p1, fermion &n2, fermion &p2, double nB, double Ye, double T, thermo &th1, thermo &th2, double &chi)
Compute the liquid-gas phase transition using eos_had_temp_base::calc_temp_e() .
A finite temperature hadronic EOS [abstract base].
virtual const char * type()
Return string denoting type ("eos_had_base")
deriv_base * sat_deriv
The derivative object for saturation properties.
virtual int calc_p(fermion &n, fermion &p, thermo &th)
Equation of state as a function of the chemical potentials.
virtual double f_effm_vector(double nb, double delta=0.0)
Vector effective mass.
double n0
Saturation density.
double calc_press_over_den2(double nb, double delta=0.0)
Calculate pressure / baryon density squared in nuclear matter as a function of baryon density at fixe...
virtual int calc_e(fermion &n, fermion &p, thermo &th)
Equation of state as a function of density.
int nuc_matter_temp_e(size_t nv, const ubvector &x, ubvector &y, double nn0, double np0, double T)
Solve for nuclear matter at finite temperature given density.
root * sat_root
The solver to compute saturation properties.
int liqgas_dens_solve(size_t nv, const ubvector &x, ubvector &y, fermion &n1, fermion &p1, fermion &n2, fermion &p2, double T, thermo &th1, thermo &th2)
Solve for the liquid gas phase transition as a function of the densities.
virtual int calc_p(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of the chemical potentials.
virtual void set_sat_root(root<> &mr)
Set class mroot object for use calculating saturation density.
A hadronic EOS at finite temperature based on a function of the chemical potentials [abstract base]...
void gradient_qij(fermion &n, fermion &p, thermo &th, double &qnn, double &qnp, double &qpp, double &dqnndnn, double &dqnndnp, double &dqnpdnn, double &dqnpdnp, double &dqppdnn, double &dqppdnp)
Calculate coefficients for gradient gradient part part of Hamiltonian.
virtual int calc_e(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of density.
double t2_fun(double barn)
Compute t2 for gradient_qij().
virtual int calc_p(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of the chemical potentials.
fermion * proton
The proton object.
virtual double fesym_T(double nb, double T, double delta=0.0)
Compute the symmetry energy at finite temperature.
deriv_gsl def_deriv2
The second default object for derivatives.
double calc_edensity_delta(double delta, double nb)
Calculate energy density as a function of the isospin asymmetry at fixed baryon density.
A hadronic EOS based on a function of the densities [abstract base].
double calc_musum_delta(double delta, double nb)
Compute the sum of the neutron and proton chemical potentials as a function of the isospin asymmetry...
deriv_base * sat_deriv2
The second derivative object for saturation properties.
int nuc_matter_e(size_t nv, const ubvector &x, ubvector &y, double mun0, double mup0)
Solve for the densities given the chemical potentials.
double calc_entropy_delta(double delta, double nb, double T)
Compute the entropy.
Hadronic equation of state [abstract base].
A hadronic EOS based on a function of the chemical potentials [abstract base].
virtual double fcomp_err(double nb, double delta, double &unc)
Compute the incompressibility and its uncertainty.
double calc_edensity_nb(double nb, double delta=0.0)
Compute the energy density as a function of baryon density at fixed isospin asymmetry.
virtual int calc_temp_p(fermion &n, fermion &p, double T, thermo &th)=0
Equation of state as a function of the chemical potentials at finite temperature. ...
virtual int calc_e(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of density.
virtual int calc_temp_e(fermion &n, fermion &p, double T, thermo &th)=0
Equation of state as a function of densities at finite temperature.
fermion def_proton
The defaut proton.
virtual int calc_temp_e(fermion &n, fermion &p, double T, thermo &th)=0
Equation of state as a function of densities at finite temperature.
virtual double feta(double nb)
The strength parameter for quartic terms in the symmetry energy.
virtual double fesym(double nb, double delta=0.0)
Calculate symmetry energy of matter in using calc_dmu_delta() .
virtual int calc_p(fermion &n, fermion &p, thermo &th)=0
Equation of state as a function of the chemical potentials.
virtual double fesym_err(double nb, double delta, double &unc)
Calculate symmetry energy of matter and its uncertainty.
virtual double f_effm_prot(double nb, double delta=0.0)
Proton effective mass.
virtual double fesym_slope(double nb, double delta=0.0)
The symmetry energy slope parameter.
int nuc_matter_p(size_t nv, const ubvector &x, ubvector &y, double nn0, double np0)
Solve for the chemical potentials given the densities.
virtual int calc_temp_p(fermion &n, fermion &p, double T, thermo &th)=0
Equation of state as a function of the chemical potentials at finite temperature. ...
fermion * neutron
The neutron object.
mroot_hybrids def_mroot
The default solver.
virtual double fsyment_T(double nb, double T, double delta=0.0)
Compute the symmetry entropy at finite temperature.
virtual double feoa(double nb, double delta=0.0)
Calculate the energy per baryon in using calc_e()
double msom
Effective mass (neutron)
double calc_dmu_delta(double delta, double nb)
Compute the difference between neutron and proton chemical potentials as a function of the isospin as...
virtual int calc_p(fermion &n, fermion &p, thermo &th)
Equation of state as a function of the chemical potentials.
virtual void saturation()
Calculates some of the EOS properties at the saturation density.
double eoa
Binding energy.
fermion_eff def_fet
Default fermion thermodynamics object.
virtual double fesym_curve(double nb, double delta=0.0)
The curvature of the symmetry energy.
virtual void set_sat_deriv2(deriv_base<> &de)
Set the second deriv_base object to use to find saturation properties.
virtual void set_mroot(mroot<> &mr)
Set class mroot object for use in calculating chemical potentials from densities. ...
virtual void set_n_and_p(fermion &n, fermion &p)
Set neutron and proton.
fermion def_neutron
The defaut neutron.
virtual int calc_temp_e(fermion &n, fermion &p, double T, thermo &th)
Equation of state as a function of densities at finite temperature.