jplus-0.4.6
src/yacts.h
Go to the documentation of this file.
00001 /* -*- mode: c++; indent-tabs-mode:nil -*- */
00002 #ifndef YACTS_H
00003 #define YACTS_H
00004 
00005 #include <istream>
00006 #include <fstream>
00007 #include <string>
00008 #include "jplus.h"
00009 #include "trjfile.h"
00010 
00015 class yacts : public jplus, protected trjfile {
00016 public:
00018   yacts();
00019   
00028   bool init(std::istream &script);
00029   
00031   ~yacts();
00032   
00034   virtual void libInit();
00035 
00039   bool setOut(std::string newOut);
00040 
00043   int REPL();
00044 
00050   std::string getTrajectoryFilenameBase(std::string prefix);
00051 
00056   bool initTrajectory(std::string prefix);
00057 
00060   int size();
00061   
00065   bool setFrame(int iframe);
00066 
00070   bool hasNextFrameStored();
00071 
00075   bool nextFrame();
00076   
00079   std::string process();
00080 
00081   friend int runTests(); // testsuite is also our friend :-)
00082 
00083 private:
00084   void *cvode_mem;   // memory, allocated by sundials CVODE solver
00085   void *nvs;         // current state 
00086   std::string outName; // out variable name
00087 
00089   bool loadFrame();
00091   bool saveFrame();
00092 
00093 };
00094 
00095 #endif