From 0f1c211fc3dec7242c26c8deb5643a20e4ac0de9 Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Wed, 23 Jul 2003 13:36:26 +0000 Subject: [PATCH] Make inverse public git-svn-id: https://svn.dealii.org/trunk@7888 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/include/lac/precondition_block.h | 27 ++++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/deal.II/lac/include/lac/precondition_block.h b/deal.II/lac/include/lac/precondition_block.h index 7d0e26ee1f..d52a21bec5 100644 --- a/deal.II/lac/include/lac/precondition_block.h +++ b/deal.II/lac/include/lac/precondition_block.h @@ -293,7 +293,6 @@ class PreconditionBlock : public virtual Subscriptor */ DeclException0 (ExcDiagonalsNotStored); - protected: /** * Access to the inverse diagonal * blocks. @@ -306,6 +305,7 @@ class PreconditionBlock : public virtual Subscriptor */ const FullMatrix& diagonal (unsigned int i) const; + protected: /** * Size of the blocks. Each * diagonal block is assumed to @@ -448,16 +448,6 @@ class PreconditionBlockJacobi : public virtual Subscriptor, */ unsigned int a_block; - /** - * Current block for extracting data. - * - * This is either - * @p{a_block} or zero, - * depending on - * @p{same_diagonal}. - */ - unsigned int u_block; - /** * Iterator inside block. */ @@ -573,6 +563,10 @@ class PreconditionBlockJacobi : public virtual Subscriptor, * Make function public. */ PreconditionBlock::n_blocks; + /** + * Make function accessible to iterator. + */ + PreconditionBlock::inverse; /** * Execute block Jacobi @@ -651,6 +645,9 @@ class PreconditionBlockJacobi : public virtual Subscriptor, void do_vmult (Vector&, const Vector&, bool adding) const; + + friend class Accessor; + friend class const_iterator; }; @@ -970,10 +967,8 @@ Accessor (const PreconditionBlockJacobi* matrix, const unsigned int r = row % bs; - u_block = (matrix->same_diagonal()) ? 0 : a_block; - - b_iterator = matrix->inverse(u_block).begin(r); - b_end = matrix->inverse(u_block).end(); + b_iterator = matrix->inverse(a_block).begin(r); + b_end = matrix->inverse(a_block).end(); Assert (a_block < matrix->n_blocks(), ExcIndexRange(a_block, 0, matrix->n_blocks())); @@ -1037,8 +1032,6 @@ PreconditionBlockJacobi::const_iterator::operator++ () if (accessor.b_iterator == accessor.b_end) { ++accessor.a_block; - if (!accessor.matrix->same_diagonal()) - ++accessor.u_block; if (accessor.a_block < accessor.matrix->n_blocks()) { -- 2.39.5