From b1837b2c0e7199d38704b1d039584cdac880681e Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Thu, 30 Mar 2006 20:57:13 +0000 Subject: [PATCH] add initialization with VectorSlice git-svn-id: https://svn.dealii.org/trunk@12781 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/include/lac/sparsity_pattern.h | 18 ++++++++-- deal.II/lac/source/sparsity_pattern.cc | 40 +++++++++++++++------- 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/deal.II/lac/include/lac/sparsity_pattern.h b/deal.II/lac/include/lac/sparsity_pattern.h index 137e2fe719..3b866aae9f 100644 --- a/deal.II/lac/include/lac/sparsity_pattern.h +++ b/deal.II/lac/include/lac/sparsity_pattern.h @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors +// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -25,6 +25,8 @@ class SparsityPattern; template class FullMatrix; template class SparseMatrix; +template class VectorSlice; + class CompressedSparsityPattern; @@ -485,7 +487,7 @@ class SparsityPattern : public Subscriptor */ SparsityPattern (const unsigned int m, const unsigned int n, - const std::vector &row_lengths, + const std::vector& row_lengths, const bool optimize_diagonal = true); /** @@ -519,7 +521,7 @@ class SparsityPattern : public Subscriptor * see optimize_diagonal(). */ SparsityPattern (const unsigned int m, - const std::vector &row_lengths, + const std::vector& row_lengths, const bool optimize_diagonal = true); /** @@ -624,6 +626,16 @@ class SparsityPattern : public Subscriptor * optimized access in relaxation * methods of SparseMatrix. */ + void reinit (const unsigned int m, + const unsigned int n, + const VectorSlice > &row_lengths, + const bool optimize_diagonal = true); + + /** + * Wrapper since the conversion + * of std::vector to const + * VectorSlice does not work. + */ void reinit (const unsigned int m, const unsigned int n, const std::vector &row_lengths, diff --git a/deal.II/lac/source/sparsity_pattern.cc b/deal.II/lac/source/sparsity_pattern.cc index 52dd27a4ca..a180b864a4 100644 --- a/deal.II/lac/source/sparsity_pattern.cc +++ b/deal.II/lac/source/sparsity_pattern.cc @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors +// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -11,7 +11,7 @@ // //--------------------------------------------------------------------------- - +#include #include #include #include @@ -84,10 +84,11 @@ SparsityPattern::SparsityPattern (const unsigned int m, -SparsityPattern::SparsityPattern (const unsigned int m, - const unsigned int n, - const std::vector &row_lengths, - const bool optimize_diag) +SparsityPattern::SparsityPattern ( + const unsigned int m, + const unsigned int n, + const std::vector& row_lengths, + const bool optimize_diag) : max_dim(0), max_vec_len(0), @@ -112,9 +113,10 @@ SparsityPattern::SparsityPattern (const unsigned int n, -SparsityPattern::SparsityPattern (const unsigned int m, - const std::vector &row_lengths, - const bool optimize_diag) +SparsityPattern::SparsityPattern ( + const unsigned int m, + const std::vector& row_lengths, + const bool optimize_diag) : max_dim(0), max_vec_len(0), @@ -271,10 +273,11 @@ SparsityPattern::reinit (const unsigned int m, void -SparsityPattern::reinit (const unsigned int m, - const unsigned int n, - const std::vector &row_lengths, - const bool optimize_diag) +SparsityPattern::reinit ( + const unsigned int m, + const unsigned int n, + const VectorSlice >&row_lengths, + const bool optimize_diag) { Assert (row_lengths.size() == m, ExcInvalidNumber (m)); @@ -588,6 +591,17 @@ void SparsityPattern::copy_from (const FullMatrix &matrix, } +void +SparsityPattern::reinit ( + const unsigned int m, + const unsigned int n, + const std::vector& row_lengths, + const bool optimize_diag) +{ + reinit(m, n, make_slice(row_lengths), optimize_diag); +} + + bool SparsityPattern::empty () const -- 2.39.5