BIE |
/home/weinberg/src/BIE/include/CacheGalaxyModel.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef CacheGalaxyModel_h 00004 #define CacheGalaxyModel_h 00005 00006 #include <iostream> 00007 #include <iomanip> 00008 00009 using namespace std; 00010 00011 #include <Histogram1D.h> 00012 #include <BIEconfig.h> 00013 #include "coord.h" 00014 #include "hash_map.h" 00015 00016 #include "Serializable.h" 00017 00018 00019 namespace BIE { 00020 00021 typedef vector<double> dvector; 00022 typedef vector<real> rvector; 00023 00025 class CacheGalaxyModel: public Serializable 00026 { 00027 public: 00028 00030 double L; 00031 00033 double B; 00034 00036 vector<double> bins; 00037 00039 vector<real> R; 00040 00042 vector<real> z; 00043 00045 vector<real> fac; 00046 00048 vector<rvector> work; 00049 00051 CacheGalaxyModel(double ll, double bb) 00052 { 00053 L = ll; 00054 B = bb; 00055 } 00056 00060 virtual void info(ostream& out, unsigned ctr); 00061 00062 // AUTO GENERATED BY ../persistence/autopersist.py 00063 protected: 00064 CacheGalaxyModel() {} 00065 private: 00066 friend class boost::serialization::access; 00067 template<class Archive> 00068 void serialize(Archive & ar, const unsigned int version) { 00069 this->pre_serialize(ar, version); 00070 try { 00071 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable); 00072 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00073 } 00074 try { 00075 ar & BOOST_SERIALIZATION_NVP(L); 00076 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00077 } 00078 try { 00079 ar & BOOST_SERIALIZATION_NVP(B); 00080 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00081 } 00082 try { 00083 ar & BOOST_SERIALIZATION_NVP(bins); 00084 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00085 } 00086 try { 00087 ar & BOOST_SERIALIZATION_NVP(R); 00088 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00089 } 00090 try { 00091 ar & BOOST_SERIALIZATION_NVP(z); 00092 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00093 } 00094 try { 00095 ar & BOOST_SERIALIZATION_NVP(fac); 00096 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00097 } 00098 try { 00099 ar & BOOST_SERIALIZATION_NVP(work); 00100 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00101 } 00102 this->post_serialize(ar, version); 00103 } 00104 00105 }; 00106 00108 class CacheGalaxyModelGrid : public CacheGalaxyModel 00109 { 00110 public: 00111 00113 vector<dvector> grid; 00114 00116 CacheGalaxyModelGrid(double ll, double bb) : CacheGalaxyModel(ll, bb) {} 00117 00121 virtual void info(ostream& out, unsigned ctr); 00122 00123 // AUTO GENERATED BY ../persistence/autopersist.py 00124 protected: 00125 CacheGalaxyModelGrid() {} 00126 private: 00127 friend class boost::serialization::access; 00128 template<class Archive> 00129 void serialize(Archive & ar, const unsigned int version) { 00130 this->pre_serialize(ar, version); 00131 try { 00132 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(CacheGalaxyModel); 00133 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00134 } 00135 try { 00136 ar & BOOST_SERIALIZATION_NVP(grid); 00137 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00138 } 00139 this->post_serialize(ar, version); 00140 } 00141 ; 00142 }; 00143 00145 typedef hashers<coordPair, CacheGalaxyModel*, 00146 hash<coordPair>, eqcoord>::MapType mmapGalCM; 00147 00149 typedef hashers<coordPair, CacheGalaxyModelGrid*, 00150 hash<coordPair>, eqcoord>::MapType mmapGalCMG; 00151 00155 00156 extern void CacheGalaxyModelDump(mmapGalCM& cache, ostream& out); 00158 extern void CacheGalaxyModelDump(mmapGalCMG& cache, ostream& out); 00160 } 00161 00162 BIE_CLASS_TYPE_INFO(BIE::CacheGalaxyModel) 00163 BIE_CLASS_TYPE_INFO(BIE::CacheGalaxyModelGrid) 00164 BIE_CLASS_EXPORT_KEY(BIE::CacheGalaxyModel) 00165 BIE_CLASS_EXPORT_KEY(BIE::CacheGalaxyModelGrid) 00166 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|