OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
BottomSolver.h
Go to the documentation of this file.
1 #ifndef BOTTOM_SOLVER_H
2 #define BOTTOM_SOLVER_H
3 
4 #include "AmrMultiGridDefs.h"
5 
7 template <class Matrix, class Vector, class Level>
8 class BottomSolver {
9 
10 public:
11 
12  BottomSolver() : isInitialized_m(false) { };
13 
14  virtual ~BottomSolver() { };
15 
24  virtual void solve(const Vector& x,
25  const Vector& b) = 0;
26 
31  virtual void setOperator(const Matrix& A,
32  Level* level_p = nullptr) = 0;
33 
34 
38  virtual std::size_t getNumIters() = 0;
39 
40  bool hasOperator() const;
41 
42 
43 protected:
45 };
46 
47 
48 template <class Matrix, class Vector, class Level>
50  return isInitialized_m;
51 }
52 
53 #endif
virtual void solve(const Vector &x, const Vector &b)=0
bool isInitialized_m
Definition: BottomSolver.h:44
Abstract base class for all base level solvers.
Definition: BottomSolver.h:8
virtual ~BottomSolver()
Definition: BottomSolver.h:14
virtual void setOperator(const Matrix &A, Level *level_p=nullptr)=0
virtual std::size_t getNumIters()=0
Matrix.
Definition: Matrix.h:38
Vector.
bool hasOperator() const
Definition: BottomSolver.h:49