From: Martin Kronbichler Date: Wed, 25 Aug 2010 19:12:16 +0000 (+0000) Subject: Fix columns in distribute_local_to_global with rectangular matrices. X-Git-Tag: v8.0.0~5684 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e729af4c0bca0b12de43d1ac6f22d16b592ed865;p=dealii.git Fix columns in distribute_local_to_global with rectangular matrices. git-svn-id: https://svn.dealii.org/trunk@21714 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/lac/include/lac/constraint_matrix.templates.h b/deal.II/lac/include/lac/constraint_matrix.templates.h index 1bf937f70c..042080ceb1 100644 --- a/deal.II/lac/include/lac/constraint_matrix.templates.h +++ b/deal.II/lac/include/lac/constraint_matrix.templates.h @@ -1496,7 +1496,7 @@ namespace internals // resulting values in val_ptr, and the // corresponding column indices in col_ptr. template - static inline + inline void resolve_matrix_row (const GlobalRowsFromLocal&global_rows, const GlobalRowsFromLocal&global_cols, @@ -1516,7 +1516,8 @@ namespace internals // of checks). the only check we actually // need to perform is whether the matrix // element is zero. - if (global_rows.have_indirect_rows() == false) + if (global_rows.have_indirect_rows() == false && + global_cols.have_indirect_rows() == false) { AssertIndexRange(loc_row, local_matrix.m()); const double * matrix_ptr = &local_matrix(loc_row, 0); @@ -1596,7 +1597,7 @@ namespace internals // operations just in place, i.e., in the // respective matrix row template - static inline + inline void resolve_matrix_row (const GlobalRowsFromLocal&global_rows, const unsigned int i, @@ -1748,7 +1749,7 @@ namespace internals // will be added to the given global row // global_rows[i] as before, now for sparsity // pattern - static inline + inline void resolve_matrix_row (const GlobalRowsFromLocal &global_rows, const unsigned int i,