From 66e1ca029b16aeb421b0f5c5ac6b76f27e960f91 Mon Sep 17 00:00:00 2001
From: hartmann <hartmann@0785d39b-7218-0410-832d-ea1e28bc413d>
Date: Fri, 23 Apr 2004 07:44:26 +0000
Subject: [PATCH] Unify interface of reinit_vector functions: all vector
 arguments are called by const reference. Copy vector within function where
 necessary.

git-svn-id: https://svn.dealii.org/trunk@9095 0785d39b-7218-0410-832d-ea1e28bc413d
---
 .../deal.II/include/multigrid/mg_dof_tools.h  |  8 +++---
 .../deal.II/source/multigrid/mg_dof_tools.cc  | 27 ++++++++++---------
 2 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/deal.II/deal.II/include/multigrid/mg_dof_tools.h b/deal.II/deal.II/include/multigrid/mg_dof_tools.h
index b5dc3bd530..0cbb82b462 100644
--- a/deal.II/deal.II/include/multigrid/mg_dof_tools.h
+++ b/deal.II/deal.II/include/multigrid/mg_dof_tools.h
@@ -180,10 +180,10 @@ class MGTools
 				      */
     template <int dim, typename number>
       static void
-      reinit_vector (const MGDoFHandler<dim>& mg_dof,
-		     MGLevelObject<BlockVector<number> >& v,
-		     const std::vector<bool> selected = std::vector<bool>(),
-		     const std::vector<unsigned int> target_component
+      reinit_vector (const MGDoFHandler<dim> &mg_dof,
+		     MGLevelObject<BlockVector<number> > &v,
+		     const std::vector<bool> &selected = std::vector<bool>(),
+		     const std::vector<unsigned int> &target_component
 		     = std::vector<unsigned int>());
 				     /**
 				      * Adjust vectors on all levels
diff --git a/deal.II/deal.II/source/multigrid/mg_dof_tools.cc b/deal.II/deal.II/source/multigrid/mg_dof_tools.cc
index b989337108..53d52c834e 100644
--- a/deal.II/deal.II/source/multigrid/mg_dof_tools.cc
+++ b/deal.II/deal.II/source/multigrid/mg_dof_tools.cc
@@ -392,9 +392,11 @@ template<int dim, typename number>
 void
 MGTools::reinit_vector (const MGDoFHandler<dim>& mg_dof,
                         MGLevelObject<BlockVector<number> >& v,
-                        std::vector<bool> selected,
-			std::vector<unsigned int> target_component)
+                        const std::vector<bool> &sel,
+			const std::vector<unsigned int> &target_comp)
 {
+  std::vector<bool> selected=sel;
+  std::vector<unsigned int> target_component=target_comp;
   const unsigned int ncomp = mg_dof.get_fe().n_components();
   
 				   // If the selected and
@@ -403,8 +405,9 @@ MGTools::reinit_vector (const MGDoFHandler<dim>& mg_dof,
 				   // values.
 				   //
 				   // Since we already made copies
-				   // when this function was called,
-				   // we use the arguments directly.
+				   // directly after this function was
+				   // called, we use the arguments
+				   // directly.
   if (target_component.size() == 0)
     {
       target_component.resize(ncomp);
@@ -456,10 +459,10 @@ MGTools::reinit_vector (const MGDoFHandler<dim>& mg_dof,
 
 template<int dim, typename number>
 void
-MGTools::reinit_vector (const MGDoFHandler<dim>& mg_dof,
-                        MGLevelObject<Vector<number> >& v,
-                        const std::vector<bool>& selected,
-			const std::vector<unsigned int>& target_component)
+MGTools::reinit_vector (const MGDoFHandler<dim> &mg_dof,
+                        MGLevelObject<Vector<number> > &v,
+                        const std::vector<bool> &selected,
+			const std::vector<unsigned int> &target_component)
 {
   Assert (selected.size() == target_component.size(),
 	  ExcDimensionMismatch(selected.size(), target_component.size()));
@@ -595,13 +598,13 @@ template void MGTools::reinit_vector<deal_II_dimension> (
 template void MGTools::reinit_vector<deal_II_dimension> (
   const MGDoFHandler<deal_II_dimension>&,
   MGLevelObject<BlockVector<double> >&,
-  const std::vector<bool>,
-  const std::vector<unsigned int>);
+  const std::vector<bool> &,
+  const std::vector<unsigned int> &);
 template void MGTools::reinit_vector<deal_II_dimension> (
   const MGDoFHandler<deal_II_dimension>&,
   MGLevelObject<BlockVector<float> >&,
-  const std::vector<bool>,
-  const std::vector<unsigned int>);
+  const std::vector<bool> &,
+  const std::vector<unsigned int> &);
 
 template void MGTools::reinit_vector<deal_II_dimension> (
   const MGDoFHandler<deal_II_dimension>&,
-- 
2.39.5