00001 // timestepping 00002 00003 #ifndef timestepping2_hh 00004 #define timestepping2_hh 00005 00006 #include "basics/outputOperator.hh" 00007 #include "basics/typedefs.hh" 00008 00009 namespace concepts { 00010 template<typename F> 00011 class Vector; 00012 } 00013 00014 namespace timestepping { 00015 00016 using concepts::Real; 00017 00018 class TimeStepStrategy; 00019 00020 // ********************************************************** Timestepping ** 00021 00039 class TimeStepping : public concepts::OutputOperator { 00040 public: 00044 TimeStepping(TimeStepStrategy& timeStepStrategy); 00052 void operator()(concepts::Vector<Real>& sol, uint n); 00053 uint operator()(concepts::Vector<Real>& sol); 00055 Real time() const; 00056 protected: 00057 virtual std::ostream& info(std::ostream& os) const; 00058 private: 00060 uint n_; 00062 TimeStepStrategy& timeStepStrategy_; 00063 }; 00064 00065 } 00066 00067 #endif // timestepping2_hh