]> https://gitweb.dealii.org/ - dealii.git/commitdiff
add initialization with VectorSlice
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Thu, 30 Mar 2006 20:57:13 +0000 (20:57 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Thu, 30 Mar 2006 20:57:13 +0000 (20:57 +0000)
git-svn-id: https://svn.dealii.org/trunk@12781 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/sparsity_pattern.h
deal.II/lac/source/sparsity_pattern.cc

index 137e2fe7191c85326faa06576b33e17782d4145c..3b866aae9f80baeb463fd1aa32037ca41b7f6d56 100644 (file)
@@ -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 <typename number> class FullMatrix;
 template <typename number> class SparseMatrix;
+template <class VECTOR> class VectorSlice;
+
 class CompressedSparsityPattern;
 
 
@@ -485,7 +487,7 @@ class SparsityPattern : public Subscriptor
                                      */
     SparsityPattern (const unsigned int               m,
                     const unsigned int               n,
-                    const std::vector<unsigned int> &row_lengths,
+                    const std::vector<unsigned int>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<unsigned int> &row_lengths,
+                    const std::vector<unsigned int>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<const std::vector<unsigned int> > &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<unsigned int> &row_lengths,
index 52dd27a4ca878cfe78613aa4099906d4e10066ec..a180b864a4229173b8933482d3c5041d14e2a1c6 100644 (file)
@@ -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 <base/vector_slice.h>
 #include <lac/sparsity_pattern.h>
 #include <lac/full_matrix.h>
 #include <lac/compressed_sparsity_pattern.h>
@@ -84,10 +84,11 @@ SparsityPattern::SparsityPattern (const unsigned int m,
 
 
 
-SparsityPattern::SparsityPattern (const unsigned int               m,
-                                 const unsigned int               n,
-                                 const std::vector<unsigned int> &row_lengths,
-                                 const bool optimize_diag) 
+SparsityPattern::SparsityPattern (
+  const unsigned int m,
+  const unsigned int n,
+  const std::vector<unsigned int>& 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<unsigned int> &row_lengths,
-                                 const bool optimize_diag) 
+SparsityPattern::SparsityPattern (
+  const unsigned int               m,
+  const std::vector<unsigned int>& 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<unsigned int> &row_lengths,
-                        const bool optimize_diag)
+SparsityPattern::reinit (
+  const unsigned int m,
+  const unsigned int n,
+  const VectorSlice<const std::vector<unsigned int> >&row_lengths,
+  const bool optimize_diag)
 {
   Assert (row_lengths.size() == m, ExcInvalidNumber (m));
          
@@ -588,6 +591,17 @@ void SparsityPattern::copy_from (const FullMatrix<number> &matrix,
 }
 
 
+void
+SparsityPattern::reinit (
+  const unsigned int m,
+  const unsigned int n,
+  const std::vector<unsigned int>& row_lengths,
+  const bool optimize_diag)
+{
+  reinit(m, n, make_slice(row_lengths), optimize_diag);
+}
+
+
 
 bool
 SparsityPattern::empty () const

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.