26 #ifndef O2SCL_RMF_EOS_H 27 #define O2SCL_RMF_EOS_H 31 #include <o2scl/lib_settings.h> 32 #include <o2scl/constants.h> 33 #include <o2scl/mm_funct.h> 35 #include <o2scl/part.h> 36 #include <o2scl/eos_had_base.h> 37 #include <o2scl/fermion.h> 39 #ifndef DOXYGEN_NO_O2NS 362 double cs, cw, cr, b, c;
372 double a1, a2, a3, a4, a5, a6, b1, b2, b3;
439 double ome,
double rho,
double &f1,
440 double &f2,
double &f3,
thermo &th);
448 double sig,
double ome,
double rho,
double &f1,
449 double &f2,
double &f3,
thermo &th);
485 double guess_b=0.001,
double guess_c=-0.001);
534 double &k,
double &
kprime);
563 virtual int set_fields(
double sig,
double ome,
double lrho) {
586 virtual const char *
type() {
return "eos_had_rmf"; }
709 re.cs=0.5/cs/cs/mnuc/
mnuc;
710 re.cw=0.5/cw/cw/mnuc/
mnuc;
711 re.cr=0.125/cr/cr/mnuc/
mnuc;
719 re.b2=b2/pow(gw,4.0)/4.0*mnuc*
mnuc;
720 re.b3=b3/pow(gw,6.0)/4.0*pow(mnuc,4.0);
722 re.a1=a1/gs/4.0/
mnuc;
723 re.a2=a2/pow(gs,2.0)/4.0;
724 re.a3=a3/pow(gs,3.0)/4.0*
mnuc;
725 re.a4=a4/pow(gs,4.0)/4.0*mnuc*
mnuc;
726 re.a5=a5/pow(gs,5.0)/4.0*pow(mnuc,3.0);
727 re.a6=a6/pow(gs,6.0)/4.0*pow(mnuc,4.0);
746 re.cs=value*2.0*mnuc*
mnuc;
747 re.cw=value*2.0*mnuc*
mnuc;
748 re.cr=value*8.0*mnuc*
mnuc;
755 re.b1=value*gw*gw*4.0;
756 re.b2=value*pow(gw,4.0)*4.0/mnuc/
mnuc;
757 re.b3=value*pow(gw,6.0)*4.0/pow(mnuc,4.0);
759 re.a1=value*gs*4.0*
mnuc;
760 re.a2=value*pow(gs,2.0)*4.0;
761 re.a3=value*pow(gs,3.0)*4.0/
mnuc;
762 re.a4=value*pow(gs,4.0)*4.0/mnuc/
mnuc;
763 re.a5=value*pow(gs,5.0)*4.0/pow(mnuc,3.0);
764 re.a6=value*pow(gs,6.0)*4.0/pow(mnuc,4.0);
770 #ifndef DOXYGEN_INTERNAL 786 double sigma, omega, rho;
824 int calc_cr(
double sig,
double ome,
double nb);
833 #ifndef DOXYGEN_NO_O2NS mroot< mm_funct, ubvector, jac_funct > * sat_mroot
The solver to compute saturation properties.
virtual int calc_eq_temp_p(fermion &ne, fermion &pr, double temper, double sig, double ome, double rho, double &f1, double &f2, double &f3, thermo &th)
Equation of state and meson field equations as a function of chemical potentials at finite temperatur...
virtual int calc_p(fermion &ne, fermion &pr, thermo <h)
Equation of state as a function of chemical potential.
void check_naturalness(eos_had_rmf &re)
Set the coefficients of a eos_had_rmf object to their limits from naturalness.
bool guess_set
True if a guess for the fields has been given.
mroot_hybrids def_sat_mroot
The default solver for calculating the saturation density.
virtual int set_fields(double sig, double ome, double lrho)
Set a guess for the fields for the next call to calc_e(), calc_p(), or saturation() ...
bool ce_prot_matter
For calc_e(), if true, then solve for proton matter.
double fesym_fields(double sig, double ome, double nb)
Calculate symmetry energy assuming the field equations have already been solved.
virtual int calc_eq_p(fermion &neu, fermion &p, double sig, double ome, double rho, double &f1, double &f2, double &f3, thermo &th)
Equation of state and meson field equations as a function of chemical potentials. ...
double fe_temp
Temperature for solving field equations at finite temperature.
bool zm_mode
Modifies method of calculating effective masses (default false)
double n_baryon
Temporary baryon density.
Relativistic mean field theory EOS.
A hadronic EOS at finite temperature based on a function of the chemical potentials [abstract base]...
size_t calc_e_steps
The number of separate calls to the solver that the calc_e functions take (default 20) ...
virtual int saturation()
Calculate properties of nuclear matter at the saturation density.
bool ce_neut_matter
For calc_e(), if true, then solve for neutron matter.
bool calc_e_relative
If true, solve for relative densities rather than absolute densities (default false) ...
virtual int calc_e(fermion &ne, fermion &pr, thermo <h)
Equation of state as a function of density.
int fix_saturation(double guess_cs=4.0, double guess_cw=3.0, double guess_b=0.001, double guess_c=-0.001)
Calculate cs, cw, cr, b, and c from the saturation properties.
void fkprime_fields(double sig, double ome, double nb, double &k, double &kprime)
Calculate compressibilty and kprime assuming the field equations have already been solved...
virtual int zero_pressure(size_t nv, const ubvector &ex, ubvector &ey)
Compute matter at zero pressure (for saturation())
int calc_temp_e(fermion &ne, fermion &pr, double T, thermo <h)
Equation of state as a function of densities at finite temperature.
virtual int calc_temp_e_solve_fun(size_t nv, const ubvector &ex, ubvector &ey)
The function for calc_temp_e()
double ce_temp
Temperature storage for calc_temp_e()
virtual int calc_temp_p(fermion &ne, fermion &pr, double T, thermo <h)
Equation of state as a function of chemical potential.
virtual int calc_e_solve_fun(size_t nv, const ubvector &ex, ubvector &ey)
The function for calc_e()
double kprime
Skewness in .
bool err_nonconv
If true, throw exceptions when the function calc_e() does not converge (default true) ...
int calc_cr(double sig, double ome, double nb)
Calculate the cr coupling given sig and ome at the density 'nb'.
double fcomp_fields(double sig, double ome, double nb)
Calculate the compressibility assuming the field equations have already been solved.
int field_eqsT(size_t nv, const ubvector &x, ubvector &y)
A function for solving the field equations at finite temperature.
int field_eqs(size_t nv, const ubvector &x, ubvector &y)
A function for solving the field equations.
int fix_saturation_fun(size_t nv, const ubvector &x, ubvector &y)
The function for fix_saturation()
virtual int set_sat_mroot(mroot< mm_funct, ubvector, jac_funct > &mrx)
Set class mroot object for use calculating saturation density.
virtual const char * type()
Return string denoting type ("eos_had_rmf")
double n_charge
Temporary charge density.
void naturalness_limits(double value, eos_had_rmf &re)
Provide the maximum values of the couplings assuming a limit on naturalness.
int get_fields(double &sig, double &ome, double &lrho)
Return the most recent values of the meson fields.
int verbose
Verbosity parameter.