#ifndef TH_HH #define TH_HH #include #include #include #include #include #include "defs.hh" #include "gh.hh" using namespace std; // Forward declaration class th; // Input istream& operator>> (istream& is, th& t); // Output ostream& operator<< (ostream& os, const th& t); // The time hierarchy (information about the current time) class th { static set allth; public: // should be readonly // Fields gh& h; // hierarchy bool const time_interpolation_during_regridding; int timelevels; // const private: vector reffacts; // const vector > > times; // current times [ml][rl][tl] vector > deltas; // time steps [ml][rl] public: // Constructors th (gh& h, bool time_interpolation_during_regridding); th (gh& h, int timelevels, vector const& reffacts, bool time_interpolation_during_regridding); // Destructors ~th (); // Modifiers void regrid (); void regrid_free (); // Time management void set_time (int const ml, int const rl, int const tl, CCTK_REAL const& t) { assert (ml>=0 and ml=0 and rl=0 and tl=0 and ml=0 and rl=0 and tl=0 and ml=0 and rl=0 and ml=0 and rl> (istream& is, th& t) { return t.input(is); } inline ostream& operator<< (ostream& os, const th& t) { return t.output(os); } #endif // TH_HH