BIE |
/home/weinberg/src/BIE/include/RunOneSimulation.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef RunOneSimulation_h 00004 #define RunOneSimulation_h 00005 00006 #include "RunSimulation.h" 00007 #include "Distribution.h" 00008 #include "Ensemble.h" 00009 #include "Tile.h" 00010 #include "Model.h" 00011 #include "Integration.h" 00012 #include "PostMixturePrior.h" 00013 #include "InitialMixturePrior.h" 00014 #include "DataTree.h" 00015 #include "CountConverge.h" 00016 #include "SubsampleConverge.h" 00017 #include "MappedGrid.h" 00018 #include "KdTessellation.h" 00019 #include "QuadGrid.h" 00020 #include "CountConverge.h" 00021 #include "SubsampleConverge.h" 00022 #include "LikelihoodComputation.h" 00023 00024 #include "BIEmpi.h" 00025 #include "TemperedSimulation.h" 00026 #include "ReversibleJump.h" 00027 #include "MetropolisHastings.h" 00028 #include "gvariable.h" 00029 00030 #include <map> 00031 00032 #include "Serializable.h" 00033 00034 00035 namespace BIE { 00036 //+ CLICLASS RunOneSimulation SUPER RunSimulation 00040 class RunOneSimulation : public RunSimulation 00041 { 00042 public: 00043 00044 //+ CLICONSTR int double Ensemble* MixturePrior* Simulation* 00051 RunOneSimulation(int nsteps, double wscale, 00052 Ensemble *sstat, MixturePrior *prior, 00053 Simulation *sim); 00054 00056 RunOneSimulation() : enslaved(false) {} 00057 00059 ~RunOneSimulation(); 00060 00061 //+ CLIMETHOD void Run 00063 void Run(); 00064 00065 //+ CLIMETHOD void Resume 00067 void Resume(); 00068 00069 //+ CLIMETHOD void ResumeLog 00071 void ResumeLog() { resumelog = true; } 00072 00073 //+ CLIMETHOD void SetTessTool TessToolSender* 00075 void SetTessTool(TessToolSender *tt); 00076 00077 //+ CLIMETHOD void SampleNext 00079 void SampleNext(); 00080 00081 //+ CLIMETHOD void SwitchOnCLI 00083 void SwitchOnCLI(); 00084 00085 //+ CLIMETHOD void SetNewSteps int 00089 void SetNewSteps( int n ) { nsteps = n; } 00090 00091 //+ CLIMETHOD void SuspendSimulation 00093 virtual void SuspendSimulation(); 00094 00095 //+ CLIMETHOD void ResumeSimulation 00097 virtual void ResumeSimulation(); 00098 00099 //+ CLIMETHOD void SetAutoTessTool int 00101 virtual void SetAutoTessTool(int freq); 00102 00103 private: 00104 00105 // Frontier * @autopersist(lastFrontier); 00106 Ensemble * sstat; 00107 MixturePrior * prior; 00108 Simulation * sim; 00109 00110 int ttfreq; 00111 00112 string prefixed_metfile; 00113 00114 bool enslaved; 00115 bool resumelog; 00116 int nsteps; 00117 int level; 00118 double wscale; 00119 int nmix; // Two component mixture 00120 int ndim; // Two model parameters 00121 00123 bool ordered; 00124 00125 void initial(); 00126 void resumeLog(); 00127 00128 int steps; 00129 int clev; 00130 00131 // print useful info to let the user know where we are 00132 template<class Archive> 00133 void post_load(Archive &ar, const unsigned int file_version) { 00134 ostream cout(checkTable("simulation_output")); 00135 /* 00136 cout << "On Level " << clev 00137 << ", starting from Step : " << steps << endl; 00138 */ 00139 } 00140 00141 // AUTO GENERATED BY ../persistence/autopersist.py 00142 private: 00143 friend class boost::serialization::access; 00144 BOOST_SERIALIZATION_SPLIT_MEMBER(); 00145 00146 template<class Archive> 00147 void save(Archive & ar, const unsigned int version) const { 00148 this->pre_save(ar, version); 00149 try { 00150 ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(RunSimulation); 00151 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00152 } 00153 try { 00154 ar << BOOST_SERIALIZATION_NVP(sstat); 00155 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00156 } 00157 try { 00158 ar << BOOST_SERIALIZATION_NVP(prior); 00159 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00160 } 00161 try { 00162 ar << BOOST_SERIALIZATION_NVP(sim); 00163 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00164 } 00165 try { 00166 ar << BOOST_SERIALIZATION_NVP(ttfreq); 00167 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00168 } 00169 try { 00170 ar << BOOST_SERIALIZATION_NVP(prefixed_metfile); 00171 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00172 } 00173 try { 00174 ar << BOOST_SERIALIZATION_NVP(resumelog); 00175 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00176 } 00177 try { 00178 ar << BOOST_SERIALIZATION_NVP(nsteps); 00179 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00180 } 00181 try { 00182 ar << BOOST_SERIALIZATION_NVP(level); 00183 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00184 } 00185 try { 00186 ar << BOOST_SERIALIZATION_NVP(wscale); 00187 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00188 } 00189 try { 00190 ar << BOOST_SERIALIZATION_NVP(nmix); 00191 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00192 } 00193 try { 00194 ar << BOOST_SERIALIZATION_NVP(ndim); 00195 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00196 } 00197 try { 00198 ar << BOOST_SERIALIZATION_NVP(ordered); 00199 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00200 } 00201 try { 00202 ar << BOOST_SERIALIZATION_NVP(steps); 00203 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00204 } 00205 try { 00206 ar << BOOST_SERIALIZATION_NVP(clev); 00207 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00208 } 00209 this->post_save(ar, version); 00210 } 00211 00212 template<class Archive> 00213 void load(Archive & ar, const unsigned int version) { 00214 this->pre_load(ar, version); 00215 try { 00216 ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(RunSimulation); 00217 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00218 } 00219 try { 00220 ar >> BOOST_SERIALIZATION_NVP(sstat); 00221 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00222 } 00223 try { 00224 ar >> BOOST_SERIALIZATION_NVP(prior); 00225 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00226 } 00227 try { 00228 ar >> BOOST_SERIALIZATION_NVP(sim); 00229 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00230 } 00231 try { 00232 ar >> BOOST_SERIALIZATION_NVP(ttfreq); 00233 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00234 } 00235 try { 00236 ar >> BOOST_SERIALIZATION_NVP(prefixed_metfile); 00237 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00238 } 00239 try { 00240 ar >> BOOST_SERIALIZATION_NVP(resumelog); 00241 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00242 } 00243 try { 00244 ar >> BOOST_SERIALIZATION_NVP(nsteps); 00245 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00246 } 00247 try { 00248 ar >> BOOST_SERIALIZATION_NVP(level); 00249 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00250 } 00251 try { 00252 ar >> BOOST_SERIALIZATION_NVP(wscale); 00253 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00254 } 00255 try { 00256 ar >> BOOST_SERIALIZATION_NVP(nmix); 00257 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00258 } 00259 try { 00260 ar >> BOOST_SERIALIZATION_NVP(ndim); 00261 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00262 } 00263 try { 00264 ar >> BOOST_SERIALIZATION_NVP(ordered); 00265 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00266 } 00267 try { 00268 ar >> BOOST_SERIALIZATION_NVP(steps); 00269 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00270 } 00271 try { 00272 ar >> BOOST_SERIALIZATION_NVP(clev); 00273 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00274 } 00275 this->post_load(ar, version); 00276 } 00277 00278 }; 00279 00280 } 00281 00282 BIE_CLASS_TYPE_INFO(BIE::RunOneSimulation) 00283 BIE_CLASS_EXPORT_KEY(BIE::RunOneSimulation) 00284 #endif 00285 Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|