From 34b6150a28ef452ba23ab393baba7852121357e4 Mon Sep 17 00:00:00 2001
From: Timo Heister <timo.heister@gmail.com>
Date: Sun, 16 Jun 2013 20:04:27 +0000
Subject: [PATCH] fix BlockSparsityPattern::column_number

git-svn-id: https://svn.dealii.org/branches/branch_unify_linear_algebra@29825 0785d39b-7218-0410-832d-ea1e28bc413d
---
 deal.II/include/deal.II/lac/block_sparsity_pattern.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/deal.II/include/deal.II/lac/block_sparsity_pattern.h b/deal.II/include/deal.II/lac/block_sparsity_pattern.h
index ce4208355d..810d913f19 100644
--- a/deal.II/include/deal.II/lac/block_sparsity_pattern.h
+++ b/deal.II/include/deal.II/lac/block_sparsity_pattern.h
@@ -1350,12 +1350,14 @@ BlockCompressedSimpleSparsityPattern::column_number (const size_type row,
   Assert(index<row_length(row), ExcIndexRange(index, 0, row_length(row)));
 
   size_type c = 0;
+  size_type block_columns = 0; //sum of n_cols for all blocks to the left
   for (unsigned int b=0; b<columns; ++b)
     {
       unsigned int rowlen = sub_objects[row_index.first][b]->row_length (row_index.second);
       if (index<c+rowlen)
-        return c+sub_objects[row_index.first][b]->column_number(row_index.second, index-c);
+        return block_columns+sub_objects[row_index.first][b]->column_number(row_index.second, index-c);
       c += rowlen;
+      block_columns += sub_objects[row_index.first][b]->n_cols();
     }
 
   Assert(false, ExcInternalError());
-- 
2.39.5