16#ifndef dealii_mg_base_h
17#define dealii_mg_base_h
47template <
typename VectorType>
62 const VectorType & src)
const = 0;
70 const VectorType & src)
const = 0;
78 const VectorType & src)
const = 0;
86 const VectorType & src)
const = 0;
107template <
typename VectorType>
122 const VectorType & src)
const = 0;
171template <
typename VectorType>
193 const VectorType & src)
const = 0;
208 const VectorType & src)
const;
227 const VectorType & src)
const = 0;
251template <
typename VectorType>
273 const VectorType & rhs)
const = 0;
294 apply(
const unsigned int level, VectorType &u,
const VectorType &rhs)
const;
virtual void operator()(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual ~MGCoarseGridBase() override=default
virtual void vmult_add(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual unsigned int get_maxlevel() const =0
virtual void vmult(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual void Tvmult(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual unsigned int get_minlevel() const =0
virtual void Tvmult_add(const unsigned int level, VectorType &dst, const VectorType &src) const =0
virtual ~MGMatrixBase() override=default
virtual void smooth(const unsigned int level, VectorType &u, const VectorType &rhs) const =0
virtual ~MGSmootherBase() override=default
virtual void apply(const unsigned int level, VectorType &u, const VectorType &rhs) const
virtual void prolongate_and_add(const unsigned int to_level, VectorType &dst, const VectorType &src) const
virtual ~MGTransferBase() override=default
virtual void restrict_and_add(const unsigned int from_level, VectorType &dst, const VectorType &src) const =0
virtual void prolongate(const unsigned int to_level, VectorType &dst, const VectorType &src) const =0
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE