From 35dc8d8b5084ab249b7ab6e7cee5dc445f897239 Mon Sep 17 00:00:00 2001 From: kanschat Date: Mon, 18 Oct 2010 16:23:08 +0000 Subject: [PATCH] Add access to level matrices git-svn-id: https://svn.dealii.org/trunk@22369 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/multigrid/mg_matrix.h | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) 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 { -- 2.39.5