/** * @file interface.hpp * @author Julian Iseringhausen * @date Mon Apr 18 12:56:05 2011 * * @brief VMG::Interface * */ #ifndef INTERFACE_HPP_ #define INTERFACE_HPP_ #include #include "base/object.hpp" #include "grid/grid_indexing.hpp" namespace VMG { class Grid; class Multigrid; class Interface : public Object { public: Interface(BC boundary, int levelMin, int levelMax, vmg_float box_begin, vmg_float box_end, int coarseningSteps=0, vmg_float alpha=1.6); virtual ~Interface() {} virtual void ImportRightHandSide(Multigrid& grid) = 0; virtual void ExportSolution(Grid& grid) = 0; const std::vector& Global() const {return global;} const std::vector& Extent() const {return extent;} const BC& BoundaryConditions() const {return bc;} const int& MinLevel() const {return levelMin;} const int& MaxLevel() const {return levelMax;} private: std::vector global; std::vector extent; BC bc; int levelMin, levelMax; }; } #endif /* INTERFACE_HPP_ */