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_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
00037
00038
00039
00040
00041 class eos {
00042 public:
00043
00044 eos();
00045 virtual ~eos() {};
00046
00047
00048 virtual int set_thermo(thermo &th);
00049
00050
00051 virtual int get_thermo(thermo *&th);
00052
00053
00054 thermo def_thermo;
00055
00056
00057 virtual const char *type() { return "eos"; }
00058
00059 protected:
00060
00061 #ifndef DOXYGEN_INTERNAL
00062
00063 friend class io_tlate<eos>;
00064
00065
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