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.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page