16#ifndef dealii_mg_base_h
17#define dealii_mg_base_h
46template <
typename VectorType>
61 const VectorType & src)
const = 0;
69 const VectorType & src)
const = 0;
77 const VectorType & src)
const = 0;
85 const VectorType & src)
const = 0;
106template <
typename VectorType>
121 const VectorType & src)
const = 0;
170template <
typename VectorType>
192 const VectorType & src)
const = 0;
207 const VectorType & src)
const;
226 const VectorType & src)
const = 0;
250template <
typename VectorType>
272 const VectorType & rhs)
const = 0;
293 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