00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _ODESOLUTION_HPP_
00031 #define _ODESOLUTION_HPP_
00032
00033 #include <fstream>
00034 #include <sstream>
00035 #include "ColumnDataWriter.hpp"
00036 #include "AbstractOdeSystem.hpp"
00037
00041 class OdeSolution
00042 {
00043 private:
00044
00046 unsigned mNumberOfTimeSteps;
00047
00049 std::vector<double> mTimes;
00050
00052 std::vector<std::vector<double> > mSolutions;
00053
00054 public:
00055
00061 unsigned GetNumberOfTimeSteps();
00062
00068 void SetNumberOfTimeSteps(unsigned numTimeSteps);
00069
00076 std::vector<double> GetVariableAtIndex(unsigned index);
00077
00083 std::vector<double>& rGetTimes();
00084
00090 std::vector<std::vector<double> >& rGetSolutions();
00091
00104 void WriteToFile(std::string directoryName,
00105 std::string baseResultsFilename,
00106 AbstractOdeSystem* pOdeSystem,
00107 std::string timeUnits,
00108 unsigned stepsPerRow=1,
00109 bool cleanDirectory=true);
00110 };
00111
00112 #endif //_ODESOLUTION_HPP_