dune-pdelab  2.7-git
coarsespace.hh
Go to the documentation of this file.
1 #ifndef DUNE_PDELAB_BACKEND_ISTL_GENEO_COARSESPACE_HH
2 #define DUNE_PDELAB_BACKEND_ISTL_GENEO_COARSESPACE_HH
3 
7 template <class X>
8 class CoarseSpace {
9 
10 public:
11  typedef Dune::BlockVector<Dune::FieldVector<double,1> > COARSE_V;
12  typedef Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1> > COARSE_M;
13 
18  virtual void restrict (const X& fine, COARSE_V& restricted) const = 0;
19 
24  virtual void prolongate (const COARSE_V& coarse, X& prolongated) const = 0;
25 
29  virtual std::shared_ptr<COARSE_M> get_coarse_system () = 0;
30 
34  virtual int basis_size() = 0;
35 };
36 
37 #endif //DUNE_PDELAB_BACKEND_ISTL_GENEO_COARSESPACE_HH
CoarseSpace
Representation of a coarse space intended for two-level Schwarz preconditioners.
Definition: coarsespace.hh:8
CoarseSpace::prolongate
virtual void prolongate(const COARSE_V &coarse, X &prolongated) const =0
Prolongates a vector defined on the coarse space to the subdomain.
CoarseSpace::COARSE_V
Dune::BlockVector< Dune::FieldVector< double, 1 > > COARSE_V
Definition: coarsespace.hh:11
CoarseSpace::get_coarse_system
virtual std::shared_ptr< COARSE_M > get_coarse_system()=0
Returns the matrix representing the coarse basis.
CoarseSpace::restrict
virtual void restrict(const X &fine, COARSE_V &restricted) const =0
Restricts a vector defined on a subdomain to the coarse space.
CoarseSpace::COARSE_M
Dune::BCRSMatrix< Dune::FieldMatrix< double, 1, 1 > > COARSE_M
Definition: coarsespace.hh:12
CoarseSpace::basis_size
virtual int basis_size()=0
Returns the size of the coarse basis.