jplus-0.4.6
|
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