00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef O2SCL_QUARK_EOS_H
00024 #define O2SCL_QUARK_EOS_H
00025
00026 #include <iostream>
00027 #include <o2scl/eos.h>
00028 #include <o2scl/quark.h>
00029 #include <o2scl/deriv.h>
00030 #include <o2scl/mroot.h>
00031
00032 #ifndef DOXYGENP
00033 namespace o2scl {
00034 #endif
00035
00036
00037
00038
00039 class quark_eos : public eos {
00040 public:
00041 quark_eos();
00042
00043 virtual ~quark_eos() {};
00044
00045
00046 virtual int calc_p(quark &u, quark &d, quark &s, thermo &th);
00047
00048
00049 virtual int calc_e(quark &u, quark &d, quark &s, thermo &th);
00050
00051
00052 virtual int calc_temp_p(quark &u, quark &d, quark &s,
00053 const double temper, thermo &th);
00054
00055
00056 virtual int calc_temp_e(quark &u, quark &d, quark &s,
00057 const double temper, thermo &th);
00058
00059
00060 virtual const char *type() { return "quark_eos"; }
00061
00062 protected:
00063
00064 #ifndef DOXYGEN_INTERNAL
00065
00066 friend class quark_eos_io;
00067
00068 #endif
00069
00070 };
00071
00072 template<> int io_tlate<quark_eos>::input
00073 (cinput *co, in_file_format *ins, quark_eos *sk);
00074 template<> int io_tlate<quark_eos>::output
00075 (coutput *co, out_file_format *outs, quark_eos *sk);
00076 template<> const char *io_tlate<quark_eos>::type();
00077
00078 typedef io_tlate<quark_eos> quark_eos_io_type;
00079
00080 #ifndef DOXYGENP
00081 }
00082 #endif
00083
00084 #endif
00085
00086
00087