sn_classical.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_SN_CLASSICAL_H
00024 #define O2SCL_SN_CLASSICAL_H
00025 
00026 #include <string>
00027 #include <iostream>
00028 #include <fstream>
00029 #include <cmath>
00030 #include <o2scl/constants.h>
00031 #include <o2scl/deriv_part.h>
00032 
00033 #ifndef DOXYGENP
00034 namespace o2scl {
00035 #endif
00036 
00037   /** 
00038       \brief Equation of state for a classical particle with derivatives
00039 
00040       \todo This does not work with inc_rest_mass=true
00041   */
00042   class sn_classical : public deriv_classical {
00043 
00044   public:
00045 
00046     /// Create a fermion with mass \c m and degeneracy \c g
00047     sn_classical(double m=0.0, double g=0.0);
00048     virtual ~sn_classical();
00049     
00050     virtual int calc_mu(const double temper);
00051     virtual int calc_density(const double temper);
00052 
00053     virtual int pair_mu(const double temper);
00054     virtual int pair_density(const double temper);
00055 
00056     /// Return string denoting type ("sn_classical")
00057     virtual const char *type() { return "sn_classical"; };
00058 
00059   };
00060 
00061   template<> int io_tlate<sn_classical>::input
00062     (cinput *co, in_file_format *ins, sn_classical *f);
00063   template<> int io_tlate<sn_classical>::output
00064     (coutput *co, out_file_format *ins, sn_classical *f);
00065   template<> const char *io_tlate<sn_classical>::type();
00066 
00067   typedef io_tlate<sn_classical> sn_classical_io_type;
00068 
00069 #ifndef DOXYGENP
00070 }
00071 #endif
00072 
00073 #endif

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