16 #ifndef dealii_mg_matrix_h 17 #define dealii_mg_matrix_h 43 template <
typename VectorType = Vector<
double>>
56 template <
typename MatrixType>
63 template <
typename MatrixType>
79 vmult(
const unsigned int level,
87 Tvmult(
const unsigned int level,
120 template <
typename MatrixType,
typename number>
129 const unsigned int col = 0,
143 select_block(
const unsigned int row,
const unsigned int col);
165 Tvmult(
const unsigned int level,
199 template <
typename VectorType>
200 template <
typename MatrixType>
219 template <
typename VectorType>
228 template <
typename VectorType>
229 template <
typename MatrixType>
237 template <
typename VectorType>
246 template <
typename VectorType>
257 template <
typename VectorType>
268 template <
typename VectorType>
279 template <
typename VectorType>
290 template <
typename VectorType>
299 template <
typename VectorType>
308 template <
typename VectorType>
319 template <
typename MatrixType,
typename number>
321 const unsigned int col,
323 :
matrix(p, typeid(*this).name())
330 template <
typename MatrixType,
typename number>
339 template <
typename MatrixType,
typename number>
342 const unsigned int bcol)
350 template <
typename MatrixType,
typename number>
364 template <
typename MatrixType,
typename number>
378 template <
typename MatrixType,
typename number>
392 template <
typename MatrixType,
typename number>
unsigned int max_level() const
MGMatrixSelect(const unsigned int row=0, const unsigned int col=0, MGLevelObject< MatrixType > *matrix=0)
Contents is actually a matrix.
virtual void vmult_add(const unsigned int level, Vector< number > &dst, const Vector< number > &src) const
virtual void Tvmult(const unsigned int level, Vector< number > &dst, const Vector< number > &src) const
virtual void Tvmult(const unsigned int level, VectorType &dst, const VectorType &src) const override
T & get_underlying_value(T &p)
void select_block(const unsigned int row, const unsigned int col)
void set_matrix(MGLevelObject< MatrixType > *M)
static ::ExceptionBase & ExcNotInitialized()
void resize(const unsigned int new_minlevel, const unsigned int new_maxlevel, Args &&... args)
std::size_t memory_consumption() const
unsigned int min_level() const
const LinearOperator< VectorType > & operator[](unsigned int level) const
virtual void vmult(const unsigned int level, VectorType &dst, const VectorType &src) const override
MGLevelObject< LinearOperator< VectorType > > matrices
#define Assert(cond, exc)
#define DEAL_II_NAMESPACE_CLOSE
void initialize(const MGLevelObject< MatrixType > &M)
virtual unsigned int get_maxlevel() const override
#define DEAL_II_NAMESPACE_OPEN
SmartPointer< MGLevelObject< MatrixType >, MGMatrixSelect< MatrixType, number > > matrix
virtual unsigned int get_minlevel() const override
virtual void vmult_add(const unsigned int level, VectorType &dst, const VectorType &src) const override
virtual void Tvmult_add(const unsigned int level, VectorType &dst, const VectorType &src) const override
virtual void vmult(const unsigned int level, Vector< number > &dst, const Vector< number > &src) const
virtual void Tvmult_add(const unsigned int level, Vector< number > &dst, const Vector< number > &src) const
std::size_t memory_consumption() const