00001 /* 00002 ------------------------------------------------------------------- 00003 00004 Copyright (C) 2006, 2007, 2008, 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_EOS_H 00024 #define O2SCL_EOS_H 00025 00026 #include <o2scl/part.h> 00027 #include <o2scl/deriv.h> 00028 #include <o2scl/mroot.h> 00029 #include <o2scl/collection.h> 00030 00031 #ifndef DOXYGENP 00032 namespace o2scl { 00033 #endif 00034 00035 /** 00036 \brief Equation of state base 00037 00038 A base class for the computation of an equation of state 00039 00040 */ 00041 class eos { 00042 public: 00043 00044 eos(); 00045 virtual ~eos() {}; 00046 00047 /// Set class thermo object 00048 virtual int set_thermo(thermo &th); 00049 00050 /// Get class thermo object 00051 virtual int get_thermo(thermo *&th); 00052 00053 /// The default thermo object 00054 thermo def_thermo; 00055 00056 /// Return string denoting type ("eos") 00057 virtual const char *type() { return "eos"; } 00058 00059 protected: 00060 00061 #ifndef DOXYGEN_INTERNAL 00062 00063 friend class io_tlate<eos>; 00064 00065 /// A pointer to the thermo object 00066 thermo *eos_thermo; 00067 00068 #endif 00069 00070 }; 00071 00072 template<> int io_tlate<eos>::input 00073 (cinput *co, in_file_format *ins, eos *ep); 00074 template<> int io_tlate<eos>::output 00075 (coutput *co, out_file_format *outs, eos *ep); 00076 template<> const char *io_tlate<eos>::type(); 00077 00078 typedef io_tlate<eos> eos_io_type; 00079 00080 #ifndef DOXYGENP 00081 } 00082 #endif 00083 00084 #endif
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page