17 #ifndef __deal2__mg_base_h
18 #define __deal2__mg_base_h
25 #include <deal.II/base/config.h>
26 #include <deal.II/base/subscriptor.h>
27 #include <deal.II/base/smartpointer.h>
28 #include <deal.II/lac/vector.h>
49 template <
class VECTOR>
62 virtual void vmult (
const unsigned int level,
64 const VECTOR &src)
const = 0;
70 virtual void vmult_add (
const unsigned int level,
72 const VECTOR &src)
const = 0;
79 virtual void Tvmult (
const unsigned int level,
81 const VECTOR &src)
const = 0;
88 virtual void Tvmult_add (
const unsigned int level,
90 const VECTOR &src)
const = 0;
101 template <
class VECTOR>
113 virtual void operator() (
const unsigned int level,
115 const VECTOR &src)
const = 0;
166 template <
class VECTOR>
192 virtual void prolongate (
const unsigned int to_level,
194 const VECTOR &src)
const = 0;
225 const VECTOR &src)
const = 0;
236 template <
class VECTOR>
247 virtual void clear() = 0;
254 virtual void smooth (
const unsigned int level,
256 const VECTOR &rhs)
const = 0;
261 DEAL_II_NAMESPACE_CLOSE
virtual void restrict_and_add(const unsigned int from_level, VECTOR &dst, const VECTOR &src) const =0
virtual void Tvmult_add(const unsigned int level, VECTOR &dst, const VECTOR &src) const =0
virtual void vmult_add(const unsigned int level, VECTOR &dst, const VECTOR &src) const =0
virtual void operator()(const unsigned int level, VECTOR &dst, const VECTOR &src) const =0
virtual ~MGCoarseGridBase()
virtual void vmult(const unsigned int level, VECTOR &dst, const VECTOR &src) const =0
virtual ~MGTransferBase()
virtual void smooth(const unsigned int level, VECTOR &u, const VECTOR &rhs) const =0
virtual void Tvmult(const unsigned int level, VECTOR &dst, const VECTOR &src) const =0
virtual void prolongate(const unsigned int to_level, VECTOR &dst, const VECTOR &src) const =0
virtual ~MGSmootherBase()