quark_eos.h

00001 /*
00002   -------------------------------------------------------------------
00003   
00004   Copyright (C) 2006, 2007, Andrew W. Steiner
00005   
00006   This file is part of O2scl.
00007   
00008   O2scl is free software; you can redistribute it and/or modify
00009   it under the terms of the GNU General Public License as published by
00010   the Free Software Foundation; either version 3 of the License, or
00011   (at your option) any later version.
00012   
00013   O2scl is distributed in the hope that it will be useful,
00014   but WITHOUT ANY WARRANTY; without even the implied warranty of
00015   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016   GNU General Public License for more details.
00017   
00018   You should have received a copy of the GNU General Public License
00019   along with O2scl. If not, see <http://www.gnu.org/licenses/>.
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       \brief Quark matter equation of state base
00038   */
00039   class quark_eos : public eos {
00040   public:
00041     quark_eos();
00042 
00043     virtual ~quark_eos() {};
00044 
00045     /// Calculate equation of state as a function of chemical potentials
00046     virtual int calc_p(quark &u, quark &d, quark &s, thermo &th);
00047 
00048     /// Calculate equation of state as a function of density
00049     virtual int calc_e(quark &u, quark &d, quark &s, thermo &th);
00050 
00051     /// Calculate equation of state as a function of chemical potentials
00052     virtual int calc_temp_p(quark &u, quark &d, quark &s, 
00053                             const double temper, thermo &th);
00054   
00055     /// Calculate equation of state as a function of density
00056     virtual int calc_temp_e(quark &u, quark &d, quark &s, 
00057                             const double temper, thermo &th);
00058   
00059     /// Return string denoting type ("quark_eos")
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 

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.