]> git.treefish.org Git - phys/latlib.git/blobdiff - o815/o815.h
...
[phys/latlib.git] / o815 / o815.h
index 577691736cddae445bcc207b7691cb0c19042936..242d1e88a1a5631094f151529604f24bb48ba652 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "latlib/paraq.h"
 #include "latlib/writeout.h"
+#include "latlib/hypercache.h"
 
 using namespace std;
 
@@ -18,11 +19,13 @@ class o815 {
 
   class obs {
   public:
-    obs(const string& _obsid, const string& _datadesc, o815 *_O815, char *_obsmem, const int& _obsmemSize);
+    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;
@@ -30,9 +33,25 @@ class o815 {
   protected:
     o815 *O815;
     char *obsMem;
-    ostream *oout;
-    ostream *olog;
-    string obsid, datadesc;
+    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 {
@@ -52,8 +71,10 @@ class 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;
@@ -61,6 +82,7 @@ private:
   static void listArg(int *target, int tlen, char *listarg);
   void parseArgs(int argc, char **argv);
   string programid;
+  int nextParas();
 };
 
 #endif