From 03e2846197ca4c095cd7cd1c7c6945673362e45f Mon Sep 17 00:00:00 2001 From: bangerth Date: Wed, 13 Feb 2013 14:01:34 +0000 Subject: [PATCH] Fix a bug introduced yesterday. git-svn-id: https://svn.dealii.org/trunk@28367 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/include/deal.II/lac/full_matrix.h | 2 +- tests/lac/copy_transposed.cc | 55 +++++++++++++++++++++++ tests/lac/copy_transposed/cmp/generic | 6 +++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 tests/lac/copy_transposed.cc create mode 100644 tests/lac/copy_transposed/cmp/generic diff --git a/deal.II/include/deal.II/lac/full_matrix.h b/deal.II/include/deal.II/lac/full_matrix.h index e4cf4d500d..c2a22dd377 100644 --- a/deal.II/include/deal.II/lac/full_matrix.h +++ b/deal.II/include/deal.II/lac/full_matrix.h @@ -1545,7 +1545,7 @@ FullMatrix::copy_transposed (const MATRIX &M) // loop over the elements of the argument matrix row by row, as suggested // in the documentation of the sparse matrix iterator class, and // copy them into the current object - for (unsigned int row = 0; row < M.n(); ++row) + for (unsigned int row = 0; row < M.m(); ++row) { const typename MATRIX::const_iterator end_row = M.end(row); for (typename MATRIX::const_iterator entry = M.begin(row); diff --git a/tests/lac/copy_transposed.cc b/tests/lac/copy_transposed.cc new file mode 100644 index 0000000000..cb24aeb1d5 --- /dev/null +++ b/tests/lac/copy_transposed.cc @@ -0,0 +1,55 @@ +//---------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2005, 2013 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------------------------------------------------------- + +// Test FullMatrix::copy_transposed + +#include "../tests.h" + +#include + +#include +#include +#include +#include + +#include + +int main() +{ + std::ofstream logfile("copy_transposed/output"); + logfile.setf(std::ios::fixed); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + SparseMatrixEZ ez(5,4); + ez.set(0,0,2.); + ez.set(0,2,3.); + ez.set(0,3,4.); + ez.set(1,0,5.); + ez.set(1,1,6.); + ez.set(1,3,7.); + ez.set(2,0,8.); + ez.set(2,1,9.); + ez.set(2,2,10.); + ez.set(2,3,11.); + ez.set(4,0,12.); + ez.set(4,2,13.); + ez.set(4,3,14.); + + deallog << "FullMatrix::copy_transposed SparseMatrixEZ" + << std::endl; + FullMatrix ff; + ff.copy_transposed(ez); + ff.print_formatted(logfile, 0, false, 5, "~"); +} diff --git a/tests/lac/copy_transposed/cmp/generic b/tests/lac/copy_transposed/cmp/generic new file mode 100644 index 0000000000..bd73872a61 --- /dev/null +++ b/tests/lac/copy_transposed/cmp/generic @@ -0,0 +1,6 @@ + +DEAL::FullMatrix::copy_transposed SparseMatrixEZ +2. 5. 8. ~ 12. +~ 6. 9. ~ ~ +3. ~ 10. ~ 13. +4. 7. 11. ~ 14. -- 2.39.5