16 #ifndef dealii__mg_base_h 17 #define dealii__mg_base_h 24 #include <deal.II/base/config.h> 25 #include <deal.II/base/subscriptor.h> 26 #include <deal.II/base/smartpointer.h> 27 #include <deal.II/lac/vector.h> 30 DEAL_II_NAMESPACE_OPEN
48 template <
typename VectorType>
60 virtual void vmult (
const unsigned int level,
62 const VectorType &src)
const = 0;
67 virtual void vmult_add (
const unsigned int level,
69 const VectorType &src)
const = 0;
74 virtual void Tvmult (
const unsigned int level,
76 const VectorType &src)
const = 0;
81 virtual void Tvmult_add (
const unsigned int level,
83 const VectorType &src)
const = 0;
94 template <
typename VectorType>
106 virtual void operator() (
const unsigned int level,
108 const VectorType &src)
const = 0;
159 template <
typename VectorType>
178 virtual void prolongate (
const unsigned int to_level,
180 const VectorType &src)
const = 0;
197 virtual void restrict_and_add (
const unsigned int from_level,
199 const VectorType &src)
const = 0;
210 template <
typename VectorType>
221 virtual void clear() = 0;
226 virtual void smooth (
const unsigned int level,
228 const VectorType &rhs)
const = 0;
233 DEAL_II_NAMESPACE_CLOSE
virtual void Tvmult(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual void vmult(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual void vmult_add(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual void Tvmult_add(const unsigned int level, VectorType &dst, const VectorType &src) const =0