16 #ifndef dealii_mg_base_h 17 #define dealii_mg_base_h 24 #include <deal.II/base/config.h> 26 #include <deal.II/base/smartpointer.h> 27 #include <deal.II/base/subscriptor.h> 29 #include <deal.II/lac/vector.h> 32 DEAL_II_NAMESPACE_OPEN
48 template <
typename VectorType>
61 vmult(
const unsigned int level,
63 const VectorType & src)
const = 0;
71 const VectorType & src)
const = 0;
77 Tvmult(
const unsigned int level,
79 const VectorType & src)
const = 0;
87 const VectorType & src)
const = 0;
110 template <
typename VectorType>
123 operator()(
const unsigned int level,
125 const VectorType & src)
const = 0;
176 template <
typename VectorType>
196 prolongate(
const unsigned int to_level,
198 const VectorType & src)
const = 0;
216 restrict_and_add(
const unsigned int from_level,
218 const VectorType & src)
const = 0;
244 template <
typename VectorType>
264 smooth(
const unsigned int level,
266 const VectorType & rhs)
const = 0;
287 apply(
const unsigned int level, VectorType &u,
const VectorType &rhs)
const;
292 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 unsigned int get_maxlevel() const =0
virtual void Tvmult_add(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual unsigned int get_minlevel() const =0