eos_had_rmf_hyp.h
1 /*
2  -------------------------------------------------------------------
3 
4  Copyright (C) 2006-2020, Andrew W. Steiner
5 
6  This file is part of O2scl.
7 
8  O2scl is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 3 of the License, or
11  (at your option) any later version.
12 
13  O2scl is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with O2scl. If not, see <http://www.gnu.org/licenses/>.
20 
21  -------------------------------------------------------------------
22 */
23 
24 #ifndef O2SCL_EOS_HAD_RMF_H
25 #define O2SCL_EOS_HAD_RMF_H
26 
27 #include <string>
28 #include <cmath>
29 #include <o2scl/lib_settings.h>
30 #include <o2scl/constants.h>
31 #include <o2scl/mm_funct.h>
32 #include <o2scl/part.h>
33 #include <o2scl/eos_had_rmf.h>
34 #include <o2scl/fermion.h>
35 
36 #ifndef DOXYGENP
37 namespace o2scl {
38 #endif
39 
40  /** \brief Relativistic mean field theory EOS with hyperons
41 
42  Based on \ref Glendenning91ro, but generalized for higher-order
43  couplings as in \ref eos_had_rmf .
44  */
45  class eos_had_rmf_hyp : public eos_had_rmf {
46 
47  protected:
48 
49  /// The neutron object
50  fermion *lambda;
51 
52  /// The proton object
53  fermion *sigma_p;
54 
55  /// The neutron object
56  fermion *sigma_z;
57 
58  /// The proton object
59  fermion *sigma_m;
60 
61  /// The neutron object
62  fermion *cascade_z;
63 
64  /// The proton object
65  fermion *cascade_m;
66 
67  /// The function for calc_e()
68  virtual int calc_e_solve_fun(size_t nv, const ubvector &ex,
69  ubvector &ey);
70 
71  public:
72 
74 
75  /// \name Hyperon objects
76  //@{
77  /// The default Lambda hyperon
78  fermion def_lambda;
79 
80  /// The default Sigma plus hyperon
81  fermion def_sigma_p;
82 
83  /// The default Sigma zero hyperon
84  fermion def_sigma_z;
85 
86  /// The default Sigma minus hyperon
87  fermion def_sigma_m;
88 
89  /// The default Xi zero hyperon
90  fermion def_cascade_z;
91 
92  /// The default Xi minus hyperon
93  fermion def_cascade_m;
94  //@}
95 
96  /// \name Hyperon-meson couplings
97  //@{
98  double xs;
99  double xw;
100  double xr;
101  //@}
102 
103  /// If true, include cascade hyperons (default true)
105 
106  /** \brief Equation of state and meson field equations
107  as a function of chemical potentials
108  */
109  virtual int calc_eq_p
110  (fermion &ne, fermion &pr, fermion &lam, fermion &sigp, fermion &sigz,
111  fermion &sigm, fermion &casz, fermion &casm, double sig, double ome,
112  double lrho, double &f1, double &f2, double &f3, thermo &lth);
113 
114  /** \brief Compute xs assuming a fixed value of the \f$ \Lambda \f$
115  binding energy in nuclear matter in \f$ \mathrm{fm}^{-1} \f$
116  */
117  void calc_xs(double lam_be);
118 
119  /** \brief Compute xs assuming a fixed value of the \f$ \Lambda \f$
120  binding energy in nuclear matter in \f$ \mathrm{fm}^{-1} \f$
121  */
122  void calc_xw(double lam_be);
123 
124  /** \brief Equation of state as a function of density
125 
126  Initial guesses for the chemical potentials are taken
127  from the user-given values. Initial guesses for the fields
128  can be set by set_fields(), or default values will be used.
129  After the call to calc_e(), the final values of the fields
130  can be accessed through get_fields().
131  */
132  virtual int calc_e(fermion &ne, fermion &pr, thermo &lth);
133 
134 #ifndef DOXYGEN_INTERNAL
135 
136  protected:
137 
138 #endif
139 
140  };
141 
142 #ifndef DOXYGENP
143 }
144 #endif
145 
146 #endif
o2scl::eos_had_rmf_hyp::sigma_z
fermion * sigma_z
The neutron object.
Definition: eos_had_rmf_hyp.h:56
o2scl::eos_had_rmf_hyp::def_cascade_m
fermion def_cascade_m
The default Xi minus hyperon.
Definition: eos_had_rmf_hyp.h:93
boost::numeric::ublas::vector< double >
o2scl::eos_had_rmf_hyp::cascade_m
fermion * cascade_m
The proton object.
Definition: eos_had_rmf_hyp.h:65
o2scl::eos_had_rmf_hyp::calc_e_solve_fun
virtual int calc_e_solve_fun(size_t nv, const ubvector &ex, ubvector &ey)
The function for calc_e()
o2scl::eos_had_rmf_hyp::def_sigma_p
fermion def_sigma_p
The default Sigma plus hyperon.
Definition: eos_had_rmf_hyp.h:81
o2scl::eos_had_rmf_hyp::calc_xw
void calc_xw(double lam_be)
Compute xs assuming a fixed value of the binding energy in nuclear matter in .
o2scl::eos_had_rmf
Relativistic mean field theory EOS.
Definition: eos_had_rmf.h:298
o2scl::eos_had_rmf_hyp::def_sigma_m
fermion def_sigma_m
The default Sigma minus hyperon.
Definition: eos_had_rmf_hyp.h:87
o2scl::eos_had_rmf_hyp::cascade_z
fermion * cascade_z
The neutron object.
Definition: eos_had_rmf_hyp.h:62
thermo_tl< double >
o2scl::eos_had_rmf_hyp::lambda
fermion * lambda
The neutron object.
Definition: eos_had_rmf_hyp.h:50
o2scl::eos_had_rmf_hyp::calc_xs
void calc_xs(double lam_be)
Compute xs assuming a fixed value of the binding energy in nuclear matter in .
o2scl::eos_had_rmf_hyp::def_cascade_z
fermion def_cascade_z
The default Xi zero hyperon.
Definition: eos_had_rmf_hyp.h:90
o2scl::eos_had_rmf_hyp::calc_eq_p
virtual int calc_eq_p(fermion &ne, fermion &pr, fermion &lam, fermion &sigp, fermion &sigz, fermion &sigm, fermion &casz, fermion &casm, double sig, double ome, double lrho, double &f1, double &f2, double &f3, thermo &lth)
Equation of state and meson field equations as a function of chemical potentials.
o2scl::eos_had_rmf_hyp::calc_e
virtual int calc_e(fermion &ne, fermion &pr, thermo &lth)
Equation of state as a function of density.
o2scl::eos_had_rmf_hyp
Relativistic mean field theory EOS with hyperons.
Definition: eos_had_rmf_hyp.h:45
o2scl::eos_had_rmf_hyp::inc_cascade
bool inc_cascade
If true, include cascade hyperons (default true)
Definition: eos_had_rmf_hyp.h:104
o2scl::eos_had_rmf_hyp::def_lambda
fermion def_lambda
The default Lambda hyperon.
Definition: eos_had_rmf_hyp.h:78
o2scl::eos_had_rmf_hyp::def_sigma_z
fermion def_sigma_z
The default Sigma zero hyperon.
Definition: eos_had_rmf_hyp.h:84
o2scl::eos_had_rmf_hyp::sigma_m
fermion * sigma_m
The proton object.
Definition: eos_had_rmf_hyp.h:59
o2scl::eos_had_rmf_hyp::sigma_p
fermion * sigma_p
The proton object.
Definition: eos_had_rmf_hyp.h:53

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).