From: kanschat Date: Mon, 18 Oct 2010 16:23:08 +0000 (+0000) Subject: Add access to level matrices X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35dc8d8b5084ab249b7ab6e7cee5dc445f897239;p=dealii-svn.git Add access to level matrices git-svn-id: https://svn.dealii.org/trunk@22369 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/multigrid/mg_matrix.h b/deal.II/deal.II/include/multigrid/mg_matrix.h index c9c7b12086..4750b7b1e7 100644 --- a/deal.II/deal.II/include/multigrid/mg_matrix.h +++ b/deal.II/deal.II/include/multigrid/mg_matrix.h @@ -63,6 +63,11 @@ namespace mg template void initialize(const MGLevelObject& M); + + /** + * Access matrix on a level. + */ + const PointerMatrixBase& operator[] (unsigned int level) const; virtual void vmult (const unsigned int level, VECTOR& dst, const VECTOR& src) const; virtual void vmult_add (const unsigned int level, VECTOR& dst, const VECTOR& src) const; @@ -260,7 +265,8 @@ namespace mg { template template - inline void + inline + void Matrix::initialize (const MGLevelObject& p) { matrices.resize(p.min_level(), p.max_level()); @@ -271,6 +277,7 @@ namespace mg template template + inline Matrix::Matrix (const MGLevelObject& p) { initialize(p); @@ -278,9 +285,19 @@ namespace mg template + inline Matrix::Matrix () {} + + template + inline + const PointerMatrixBase& + Matrix::operator[] (unsigned int level) const + { + return *matrices[level]; + } + template void @@ -325,6 +342,7 @@ namespace mg template + inline unsigned int Matrix::memory_consumption () const {