// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/gf.hh,v 1.11 2004/01/25 14:57:30 schnetter Exp $ #ifndef GF_HH #define GF_HH #include #include #include #include #include "bbox.hh" #include "bboxset.hh" #include "data.hh" #include "defs.hh" #include "dh.hh" #include "ggf.hh" #include "th.hh" #include "vect.hh" using namespace std; // A real grid function template class gf: public ggf { // Types typedef vect ivect; typedef bbox ibbox; typedef bboxset ibset; typedef list iblist; typedef vector iblistvect; typedef data* tdata; // data ... typedef vector mdata; // ... for each multigrid level typedef vector cdata; // ... for each component typedef vector rdata; // ... for each refinement level typedef vector fdata; // ... for each time level public: // Constructors // VGF gf (const int varindex, const operator_type transport_operator, th& t, dh& d, const int tmin, const int tmax, const int prolongation_order_time); // Destructors virtual ~gf (); // Helpers protected: virtual gdata* typed_data() { return new data(this->varindex, this->transport_operator); } // Access to the data public: virtual const data* operator() (int tl, int rl, int c, int ml) const; virtual data* operator() (int tl, int rl, int c, int ml); // Output virtual ostream& output (ostream& os) const; }; #endif // GF_HH