#include "latlib/paraq.h"
#include "latlib/writeout.h"
+#include "latlib/hypercache.h"
using namespace std;
class o815 {
public:
+
class obs {
public:
- obs(const string& obsid, o815 *_O815);
+ obs(const string& _obsid, const string& _datadesc, o815 *_O815, const int& _obsmemSize);
void finish();
- void meas();
+ void meas(bool loadedobs);
+ void start();
+ string getDataDesc() { return datadesc; };
+ int ocid;
+ string obsid;
private:
virtual void _meas(bool loadedobs)=0;
virtual void _finish()=0;
+ virtual void _start()=0;
protected:
o815 *O815;
char *obsMem;
- ostream *oout;
- ostream *olog;
- string obsid;
+ string simid, datadesc;
+ ostream *out, *log;
+ void printParas();
+ paraq* paraQ;
+ };
+
+ class sim {
+ public:
+ sim(o815 *_O815, const int& _confmemSize);
+ void nextConfig();
+ bool toEquilibrate;
+ char *confMem;
+ private:
+ virtual void _reset()=0;
+ virtual void _makeSweep(int nsweep)=0;
+ protected:
+ o815 *O815;
+ ostream *log;
+ int nequi, nskip;
};
struct {
} comargs;
o815(int argc, char **argv, const string& programid);
+ ~o815();
paraq *paraQ;
writeout *out;
vector<obs*> observables;
+ sim* Sim;
+ void mainLoop();
+ string headMaster();
+ void addPara(const string& paraid, const double& paraDefault);
private:
MPI_Status mpiStatus;
static void listArg(int *target, int tlen, char *listarg);
void parseArgs(int argc, char **argv);
string programid;
- string headMaster();
+ int nextParas();
};
#endif