source: src/level/level_operator.hpp@ dfed1c

Last change on this file since dfed1c was dfed1c, checked in by Julian Iseringhausen <isering@…>, 14 years ago

Major vmg update.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1136 5161e1c8-67bf-11de-9fd5-51895aff932f

  • Property mode set to 100644
File size: 1021 bytes
Line 
1/**
2 * @file level_operator.hpp
3 * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
4 * @date Mon Apr 18 12:59:28 2011
5 *
6 * @brief VMG::LevelOperator
7 *
8 */
9
10#ifndef LEVEL_OPERATOR_HPP_
11#define LEVEL_OPERATOR_HPP_
12
13#include "base/object.hpp"
14#include "base/stencil.hpp"
15
16namespace VMG
17{
18
19class Grid;
20class Multigrid;
21
22class LevelOperator : public Object
23{
24public:
25 LevelOperator(const Stencil& operatorRestrict_, const Stencil& operatorProlongate_) :
26 operatorRestrict(operatorRestrict_),
27 operatorProlongate(operatorProlongate_)
28 {}
29
30 void Restrict(Multigrid& sol, Multigrid& rhs);
31 void Prolongate(Multigrid& sol, Multigrid& rhs);
32
33protected:
34 virtual void Restrict(Grid& sol_f, Grid& rhs_f, Grid& sol_c, Grid& rhs_c) = 0;
35 virtual void Prolongate(Grid& sol_f, Grid& rhs_f, Grid& sol_c, Grid& rhs_c) = 0;
36
37 Stencil& OperatorRestrict() {return operatorRestrict;}
38 Stencil& OperatorProlongate() {return operatorProlongate;}
39
40private:
41 Stencil operatorRestrict, operatorProlongate;
42};
43
44}
45
46#endif
Note: See TracBrowser for help on using the repository browser.