]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Split vector_tools into several files to speed up compilation. vector_tools_integrate...
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 20 Aug 2013 21:33:01 +0000 (21:33 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 20 Aug 2013 21:33:01 +0000 (21:33 +0000)
git-svn-id: https://svn.dealii.org/trunk@30361 0785d39b-7218-0410-832d-ea1e28bc413d

18 files changed:
deal.II/source/numerics/CMakeLists.txt
deal.II/source/numerics/vector_tools.inst.in [deleted file]
deal.II/source/numerics/vector_tools_boundary.cc [new file with mode: 0644]
deal.II/source/numerics/vector_tools_boundary.inst.in [new file with mode: 0644]
deal.II/source/numerics/vector_tools_constraints.cc [new file with mode: 0644]
deal.II/source/numerics/vector_tools_constraints.inst.in [new file with mode: 0644]
deal.II/source/numerics/vector_tools_integrate_difference.cc [new file with mode: 0644]
deal.II/source/numerics/vector_tools_integrate_difference.inst.in [new file with mode: 0644]
deal.II/source/numerics/vector_tools_interpolate.cc [new file with mode: 0644]
deal.II/source/numerics/vector_tools_interpolate.inst.in [new file with mode: 0644]
deal.II/source/numerics/vector_tools_mean_value.cc [new file with mode: 0644]
deal.II/source/numerics/vector_tools_mean_value.inst.in [new file with mode: 0644]
deal.II/source/numerics/vector_tools_point_value.cc [new file with mode: 0644]
deal.II/source/numerics/vector_tools_point_value.inst.in [new file with mode: 0644]
deal.II/source/numerics/vector_tools_project.cc [moved from deal.II/source/numerics/vector_tools.cc with 95% similarity]
deal.II/source/numerics/vector_tools_project.inst.in [new file with mode: 0644]
deal.II/source/numerics/vector_tools_rhs.cc [new file with mode: 0644]
deal.II/source/numerics/vector_tools_rhs.inst.in [new file with mode: 0644]

index 855e2c677791a9510c0abc33c79d5660ee779933..db675fcd7a0d0733fd8f300a4435c1880bf127c2 100644 (file)
@@ -36,7 +36,14 @@ SET(_src
   solution_transfer.cc
   solution_transfer_inst2.cc
   time_dependent.cc
-  vector_tools.cc
+  vector_tools_boundary.cc
+  vector_tools_constraints.cc
+  vector_tools_integrate_difference.cc
+  vector_tools_interpolate.cc
+  vector_tools_mean_value.cc
+  vector_tools_point_value.cc
+  vector_tools_project.cc
+  vector_tools_rhs.cc
   )
 
 SET(_inst
@@ -53,7 +60,14 @@ SET(_inst
   point_value_history.inst.in
   solution_transfer.inst.in
   time_dependent.inst.in
-  vector_tools.inst.in
+  vector_tools_boundary.inst.in
+  vector_tools_constraints.inst.in
+  vector_tools_integrate_difference.inst.in
+  vector_tools_interpolate.inst.in
+  vector_tools_mean_value.inst.in
+  vector_tools_point_value.inst.in
+  vector_tools_project.inst.in
+  vector_tools_rhs.inst.in
   )
 
 DEAL_II_ADD_LIBRARY(obj_numerics OBJECT ${_src} ${_header} ${_inst})
diff --git a/deal.II/source/numerics/vector_tools.inst.in b/deal.II/source/numerics/vector_tools.inst.in
deleted file mode 100644 (file)
index f7bbff3..0000000
+++ /dev/null
@@ -1,703 +0,0 @@
-// ---------------------------------------------------------------------
-// $Id$
-//
-// Copyright (C) 1998 - 2013 by the deal.II authors
-//
-// This file is part of the deal.II library.
-//
-// The deal.II library is free software; you can use it, redistribute
-// it, and/or modify it under the terms of the GNU Lesser General
-// Public License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-// The full text of the license can be found in the file LICENSE at
-// the top level of the deal.II distribution.
-//
-// ---------------------------------------------------------------------
-
-
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
-  {
-#if deal_II_dimension <= deal_II_space_dimension
-    namespace VectorTools \{
-
-      template
-        void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
-        (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
-         const VEC&,
-         const Function<deal_II_space_dimension>&,
-         Vector<float>&,
-         const Quadrature<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_space_dimension>*,
-         const double);
-
-      template
-        void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
-        (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
-         const VEC&,
-         const Function<deal_II_space_dimension>&,
-         Vector<double>&,
-         const Quadrature<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_space_dimension>*,
-         const double);
-
-      template
-        void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
-        (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
-         const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
-         const VEC&,
-         const Function<deal_II_space_dimension>&,
-         Vector<float>&,
-         const Quadrature<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_space_dimension>*,
-         const double);
-
-      template
-        void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
-        (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
-         const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
-         const VEC&,
-         const Function<deal_II_space_dimension>&,
-         Vector<double>&,
-         const Quadrature<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_space_dimension>*,
-         const double);
-
-
-
-      template
-        double compute_mean_value<deal_II_dimension>
-        (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
-         const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
-         const Quadrature<deal_II_dimension>&,
-         const VEC&,
-         const unsigned int);
-
-      template
-        double compute_mean_value<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
-         const Quadrature<deal_II_dimension>&,
-         const VEC&,
-         const unsigned int);
-
-      template
-        void interpolate
-        (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
-         const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
-         const Function<deal_II_space_dimension>&,
-         VEC&);
-
-      template
-        void interpolate
-        (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
-         const Function<deal_II_space_dimension>&,
-         VEC&);
-
-      template
-        void project
-        (const Mapping<deal_II_dimension,deal_II_space_dimension>      &,
-         const DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
-         const ConstraintMatrix                &,
-         const Quadrature<deal_II_dimension>   &,
-         const Function<deal_II_space_dimension>     &,
-         VEC                                   &,
-         const bool,
-         const Quadrature<deal_II_dimension-1> &,
-         const bool);
-
-      template
-        void project
-        (const DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
-         const ConstraintMatrix                &,
-         const Quadrature<deal_II_dimension>   &,
-         const Function<deal_II_space_dimension>     &,
-         VEC                                   &,
-         const bool,
-         const Quadrature<deal_II_dimension-1> &,
-         const bool);
-
-      template
-        void project
-        (const hp::MappingCollection<deal_II_dimension,deal_II_space_dimension>      &,
-         const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
-         const ConstraintMatrix                &,
-         const hp::QCollection<deal_II_dimension>   &,
-         const Function<deal_II_space_dimension>     &,
-         VEC                                   &,
-         const bool,
-         const hp::QCollection<deal_II_dimension-1> &,
-         const bool);
-
-      template
-        void project
-        (const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
-         const ConstraintMatrix                &,
-         const hp::QCollection<deal_II_dimension>   &,
-         const Function<deal_II_space_dimension>     &,
-         VEC                                   &,
-         const bool,
-         const hp::QCollection<deal_II_dimension-1> &,
-         const bool);
-      \}
-#endif
-  }
-
-
-
-//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
-// where applicable and move to codimension cases above also when applicable
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
-  {
-#if deal_II_dimension == deal_II_space_dimension
-
-    namespace VectorTools \{
-
-  template
-    void point_value<deal_II_dimension> (
-      const hp::DoFHandler<deal_II_dimension>&,
-      const VEC&,
-      const Point<deal_II_dimension>&,
-      Vector<double>&);
-
-      template
-        void interpolate
-        (const Mapping<deal_II_dimension>&,
-         const hp::DoFHandler<deal_II_dimension>&,
-         const Function<deal_II_dimension>&,
-         VEC&);
-      template
-        void interpolate
-        (const hp::DoFHandler<deal_II_dimension>&,
-         const Function<deal_II_dimension>&,
-         VEC&);
-
-  template
-    double point_value<deal_II_dimension> (
-      const hp::DoFHandler<deal_II_dimension>&,
-      const VEC&,
-      const Point<deal_II_dimension>&);
-
-  template
-    void point_value<deal_II_dimension> (
-      const hp::MappingCollection<deal_II_dimension>&,
-      const hp::DoFHandler<deal_II_dimension>&,
-      const VEC&,
-      const Point<deal_II_dimension>&,
-      Vector<double>&);
-
-      template
-        void interpolate
-        (const DoFHandler<deal_II_dimension>&,
-         const DoFHandler<deal_II_dimension>&,
-         const FullMatrix<double>&,
-         const VEC&,
-         VEC&);
-
-  template
-    double point_value<deal_II_dimension> (
-      const hp::MappingCollection<deal_II_dimension>&,
-      const hp::DoFHandler<deal_II_dimension>&,
-      const VEC&,
-      const Point<deal_II_dimension>&);
-
-      template
-        void integrate_difference<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension>&,
-         const VEC&,
-         const Function<deal_II_dimension>&,
-         Vector<double>&,
-         const hp::QCollection<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_dimension>*,
-         const double);
-      template
-        void integrate_difference<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension>&,
-         const VEC&,
-         const Function<deal_II_dimension>&,
-         Vector<float>&,
-         const hp::QCollection<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_dimension>*,
-         const double);
-      template
-        void integrate_difference<deal_II_dimension>
-        (const hp::MappingCollection<deal_II_dimension>&,
-         const hp::DoFHandler<deal_II_dimension>&,
-         const VEC&,
-         const Function<deal_II_dimension>&,
-         Vector<double>&,
-         const hp::QCollection<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_dimension>*,
-         const double);
-      template
-        void integrate_difference<deal_II_dimension>
-        (const hp::MappingCollection<deal_II_dimension>&,
-         const hp::DoFHandler<deal_II_dimension>&,
-         const VEC&,
-         const Function<deal_II_dimension>&,
-         Vector<float>&,
-         const hp::QCollection<deal_II_dimension>&,
-         const NormType&,
-         const Function<deal_II_dimension>*,
-         const double);
-
-      template
-        void point_difference<deal_II_dimension> (
-          const DoFHandler<deal_II_dimension>&,
-          const VEC&,
-          const Function<deal_II_dimension>&,
-          Vector<double>&,
-          const Point<deal_II_dimension>&);
-
-      template
-        void point_difference<deal_II_dimension> (
-          const Mapping<deal_II_dimension>&,
-          const DoFHandler<deal_II_dimension>&,
-          const VEC&,
-          const Function<deal_II_dimension>&,
-          Vector<double>&,
-          const Point<deal_II_dimension>&);
-
-      template
-        void point_value<deal_II_dimension> (
-          const DoFHandler<deal_II_dimension>&,
-          const VEC&,
-          const Point<deal_II_dimension>&,
-          Vector<double>&);
-
-      template
-        double point_value<deal_II_dimension> (
-          const DoFHandler<deal_II_dimension>&,
-          const VEC&,
-          const Point<deal_II_dimension>&);
-
-      template
-        void point_value<deal_II_dimension> (
-          const Mapping<deal_II_dimension>&,
-          const DoFHandler<deal_II_dimension>&,
-          const VEC&,
-          const Point<deal_II_dimension>&,
-          Vector<double>&);
-
-      template
-        double point_value<deal_II_dimension> (
-          const Mapping<deal_II_dimension>&,
-          const DoFHandler<deal_II_dimension>&,
-          const VEC&,
-          const Point<deal_II_dimension>&);
-
-      \}
-#endif
-  }
-
-
-for (VEC : SERIAL_VECTORS)
-{
-    namespace VectorTools \{
-      template
-        void subtract_mean_value(VEC &, const std::vector<bool> &);
-    \}
-}
-
-
-for (deal_II_dimension : DIMENSIONS)
-{
-    namespace VectorTools \{
-      template
-        void interpolate_boundary_values (
-          const MGDoFHandler<deal_II_dimension> &,
-          const types::boundary_id,
-          const Function<deal_II_dimension>   &,
-         ConstraintMatrix&,
-          const ComponentMask    &);
-
-      template
-        void interpolate_boundary_values (
-          const MGDoFHandler<deal_II_dimension> &,
-          const types::boundary_id,
-          const Function<deal_II_dimension>   &,
-          std::map<types::global_dof_index,double>       &,
-          const ComponentMask    &);
-    \}
-}
-
-
-for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES)
-  {
-#if deal_II_dimension <= deal_II_space_dimension
-    namespace VectorTools \{
-      template
-        void interpolate_boundary_values
-        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
-         const DH<deal_II_dimension,deal_II_space_dimension> &,
-         const FunctionMap<deal_II_space_dimension>::type &,
-         std::map<types::global_dof_index,double>       &,
-         const ComponentMask    &);
-
-      template
-        void interpolate_boundary_values
-        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
-         const DH<deal_II_dimension,deal_II_space_dimension> &,
-         const types::boundary_id,
-         const Function<deal_II_space_dimension>   &,
-         std::map<types::global_dof_index,double>       &,
-         const ComponentMask    &);
-
-      template
-        void interpolate_boundary_values (
-          const DH<deal_II_dimension,deal_II_space_dimension> &,
-          const types::boundary_id,
-          const Function<deal_II_space_dimension>   &,
-          std::map<types::global_dof_index,double>       &,
-          const ComponentMask    &);
-
-      template
-        void interpolate_boundary_values
-        (const DH<deal_II_dimension,deal_II_space_dimension> &,
-         const FunctionMap<deal_II_space_dimension>::type &,
-         std::map<types::global_dof_index,double>       &,
-         const ComponentMask    &);
-
-      template
-        void interpolate_boundary_values (
-          const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
-          const DH<deal_II_dimension,deal_II_space_dimension> &,
-          const FunctionMap<deal_II_space_dimension>::type   &,
-          ConstraintMatrix                    &,
-          const ComponentMask    &);
-
-      template
-        void interpolate_boundary_values
-        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
-         const DH<deal_II_dimension,deal_II_space_dimension> &,
-         const types::boundary_id,
-         const Function<deal_II_space_dimension>   &,
-         ConstraintMatrix                    &,
-         const ComponentMask             &);
-
-      template
-        void interpolate_boundary_values (
-          const DH<deal_II_dimension,deal_II_space_dimension> &,
-          const types::boundary_id,
-          const Function<deal_II_space_dimension>   &,
-          ConstraintMatrix                    &,
-          const ComponentMask    &);
-
-      template
-        void interpolate_boundary_values (
-          const DH<deal_II_dimension,deal_II_space_dimension> &,
-          const FunctionMap<deal_II_space_dimension>::type   &,
-          ConstraintMatrix                    &,
-          const ComponentMask    &);
-
-      \}
-#endif
-  }
-
-
-for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
-  {
-#if deal_II_dimension <= deal_II_space_dimension
-    namespace VectorTools \{
-      template
-        void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
-        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
-         const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
-         const Quadrature<deal_II_dimension> &,
-         const Function<deal_II_space_dimension>   &,
-         Vector<double>                      &);
-
-      template
-        void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
-        (const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
-         const Quadrature<deal_II_dimension> &,
-         const Function<deal_II_space_dimension>   &,
-         Vector<double>  &);
-
-      \}
-#endif
-  }
-
-//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
-// where applicable and move to codimension cases above also when applicable
-for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
-  {
-    namespace VectorTools \{
-
-#if deal_II_dimension <= deal_II_space_dimension
-      template
-        void project_boundary_values<deal_II_dimension,deal_II_space_dimension>
-        (const hp::MappingCollection<deal_II_dimension,deal_II_space_dimension>  &,
-         const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension>  &,
-         const FunctionMap<deal_II_space_dimension>::type &,
-         const hp::QCollection<deal_II_dimension-1>&,
-         std::map<types::global_dof_index,double>&, 
-         std::vector<unsigned int>);
-
-      template
-        void project_boundary_values<deal_II_dimension,deal_II_space_dimension>
-        (const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension>  &,
-         const FunctionMap<deal_II_space_dimension>::type &,
-         const hp::QCollection<deal_II_dimension-1>&,
-         std::map<types::global_dof_index,double>&, 
-         std::vector<unsigned int>);
-#endif
-
-#if deal_II_dimension == deal_II_space_dimension
-      template
-        void create_right_hand_side<deal_II_dimension>
-        (const hp::MappingCollection<deal_II_dimension>    &,
-         const hp::DoFHandler<deal_II_dimension> &,
-         const hp::QCollection<deal_II_dimension> &,
-         const Function<deal_II_dimension>   &,
-         Vector<double>                      &);
-
-      template
-        void create_right_hand_side<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension> &,
-         const hp::QCollection<deal_II_dimension> &,
-         const Function<deal_II_dimension>   &,
-         Vector<double>                      &);
-
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const Mapping<deal_II_dimension>    &,
-         const DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const hp::MappingCollection<deal_II_dimension>    &,
-         const hp::DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const Mapping<deal_II_dimension>    &,
-         const DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const hp::MappingCollection<deal_II_dimension>    &,
-         const hp::DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-      template
-        void create_point_source_vector<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension> &,
-         const Point<deal_II_dimension>      &,
-         const Point<deal_II_dimension>      &,
-         Vector<double>                      &);
-
-#if deal_II_dimension > 1
-      template
-        void
-        create_boundary_right_hand_side<deal_II_dimension>
-        (const Mapping<deal_II_dimension>    &,
-         const DoFHandler<deal_II_dimension> &,
-         const Quadrature<deal_II_dimension-1> &,
-         const Function<deal_II_dimension>   &,
-         Vector<double>                      &,
-         const std::set<types::boundary_id> &);
-#endif
-
-      template
-        void
-        create_boundary_right_hand_side<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension> &,
-         const Quadrature<deal_II_dimension-1> &,
-         const Function<deal_II_dimension>   &,
-         Vector<double>                      &,
-         const std::set<types::boundary_id> &);
-
-#if deal_II_dimension > 1
-      template
-        void
-        create_boundary_right_hand_side<deal_II_dimension>
-        (const hp::MappingCollection<deal_II_dimension>    &,
-         const hp::DoFHandler<deal_II_dimension> &,
-         const hp::QCollection<deal_II_dimension-1> &,
-         const Function<deal_II_dimension>   &,
-         Vector<double>                      &,
-         const std::set<types::boundary_id> &);
-#endif
-
-      template
-        void
-        create_boundary_right_hand_side<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension> &,
-         const hp::QCollection<deal_II_dimension-1> &,
-         const Function<deal_II_dimension>   &,
-         Vector<double>                      &,
-         const std::set<types::boundary_id> &);
-
-
-
-
-
-      template
-        void project_boundary_values<deal_II_dimension>
-        (const Mapping<deal_II_dimension>     &,
-         const DoFHandler<deal_II_dimension>  &,
-         const FunctionMap<deal_II_dimension>::type &,
-         const Quadrature<deal_II_dimension-1>&,
-         std::map<types::global_dof_index,double>&, std::vector<unsigned int>);
-
-      template
-        void project_boundary_values<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension>  &,
-         const FunctionMap<deal_II_dimension>::type &,
-         const Quadrature<deal_II_dimension-1>&,
-         std::map<types::global_dof_index,double>&, 
-         std::vector<unsigned int>);
-
-      template
-        void project_boundary_values<deal_II_dimension>
-        (const Mapping<deal_II_dimension>     &,
-         const DoFHandler<deal_II_dimension>  &,
-         const FunctionMap<deal_II_dimension>::type &,
-         const Quadrature<deal_II_dimension-1>&,
-         ConstraintMatrix&, std::vector<unsigned int>);
-
-      template
-        void project_boundary_values<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension>  &,
-         const FunctionMap<deal_II_dimension>::type &,
-         const Quadrature<deal_II_dimension-1>&,
-         ConstraintMatrix&, 
-         std::vector<unsigned int>);
-
-
-
-#if deal_II_dimension != 1
-      template
-        void project_boundary_values_curl_conforming<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension>&,
-         const unsigned int,
-         const Function<deal_II_dimension>&,
-         const types::boundary_id,
-         ConstraintMatrix&,
-         const Mapping<deal_II_dimension>&);
-      template
-        void project_boundary_values_curl_conforming<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension>&,
-         const unsigned int,
-         const Function<deal_II_dimension>&,
-         const types::boundary_id,
-         ConstraintMatrix&,
-         const hp::MappingCollection<deal_II_dimension>&);
-      template
-        void project_boundary_values_div_conforming<deal_II_dimension>
-        (const DoFHandler<deal_II_dimension>&,
-         const unsigned int,
-         const Function<deal_II_dimension>&,
-         const types::boundary_id,
-         ConstraintMatrix&,
-         const Mapping<deal_II_dimension>&);
-      template
-        void project_boundary_values_div_conforming<deal_II_dimension>
-        (const hp::DoFHandler<deal_II_dimension>&,
-         const unsigned int,
-         const Function<deal_II_dimension>&,
-         const types::boundary_id,
-         ConstraintMatrix&,
-         const hp::MappingCollection<deal_II_dimension>&);
-      template
-        void
-        compute_no_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
-                                            const unsigned int     first_vector_component,
-                                            const std::set<types::boundary_id> &boundary_ids,
-                                            ConstraintMatrix      &constraints,
-                                            const Mapping<deal_II_dimension>    &mapping);
-      template
-        void
-        compute_no_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
-                                            const unsigned int     first_vector_component,
-                                            const std::set<types::boundary_id> &boundary_ids,
-                                            ConstraintMatrix      &constraints,
-                                            const Mapping<deal_II_dimension>    &mapping);
-#endif
-#endif
-      \}
-  }
-
-
-
-for (deal_II_dimension : DIMENSIONS)
-{
-  namespace VectorTools \{
-
-  template
-    void interpolate_to_different_mesh
-    (const DoFHandler<deal_II_dimension> &,
-     const Vector<float>                 &,
-     const DoFHandler<deal_II_dimension> &,
-     Vector<float>                       &);
-
-  template
-    void interpolate_to_different_mesh
-    (const DoFHandler<deal_II_dimension> &,
-     const Vector<float>                 &,
-     const DoFHandler<deal_II_dimension> &,
-     const ConstraintMatrix              &,
-     Vector<float>                       &);
-
-  template
-    void interpolate_to_different_mesh
-    (const InterGridMap<DoFHandler<deal_II_dimension> > &,
-     const Vector<float>                                &,
-     const ConstraintMatrix                             &,
-     Vector<float>                                      &);
-
-  template
-    void interpolate_to_different_mesh
-    (const DoFHandler<deal_II_dimension> &,
-     const Vector<double>                &,
-     const DoFHandler<deal_II_dimension> &,
-     Vector<double>                      &);
-
-  template
-    void interpolate_to_different_mesh
-    (const DoFHandler<deal_II_dimension> &,
-     const Vector<double>                &,
-     const DoFHandler<deal_II_dimension> &,
-     const ConstraintMatrix              &,
-     Vector<double>                      &);
-
-  template
-    void interpolate_to_different_mesh
-    (const InterGridMap<DoFHandler<deal_II_dimension> > &,
-     const Vector<double>                               &,
-     const ConstraintMatrix                             &,
-     Vector<double>                                     &);
-
-  \}
-}
-
-
diff --git a/deal.II/source/numerics/vector_tools_boundary.cc b/deal.II/source/numerics/vector_tools_boundary.cc
new file mode 100644 (file)
index 0000000..6ecf213
--- /dev/null
@@ -0,0 +1,25 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_boundary.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_boundary.inst.in b/deal.II/source/numerics/vector_tools_boundary.inst.in
new file mode 100644 (file)
index 0000000..813f195
--- /dev/null
@@ -0,0 +1,186 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (deal_II_dimension : DIMENSIONS)
+{
+    namespace VectorTools \{
+      template
+        void interpolate_boundary_values (
+          const MGDoFHandler<deal_II_dimension> &,
+          const types::boundary_id,
+          const Function<deal_II_dimension>   &,
+         ConstraintMatrix&,
+          const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values (
+          const MGDoFHandler<deal_II_dimension> &,
+          const types::boundary_id,
+          const Function<deal_II_dimension>   &,
+          std::map<types::global_dof_index,double>       &,
+          const ComponentMask    &);
+    \}
+}
+
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES)
+  {
+#if deal_II_dimension <= deal_II_space_dimension
+    namespace VectorTools \{
+      template
+        void interpolate_boundary_values
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+         const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const FunctionMap<deal_II_space_dimension>::type &,
+         std::map<types::global_dof_index,double>       &,
+         const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+         const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const types::boundary_id,
+         const Function<deal_II_space_dimension>   &,
+         std::map<types::global_dof_index,double>       &,
+         const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values (
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const types::boundary_id,
+          const Function<deal_II_space_dimension>   &,
+          std::map<types::global_dof_index,double>       &,
+          const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values
+        (const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const FunctionMap<deal_II_space_dimension>::type &,
+         std::map<types::global_dof_index,double>       &,
+         const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values (
+          const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const FunctionMap<deal_II_space_dimension>::type   &,
+          ConstraintMatrix                    &,
+          const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+         const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const types::boundary_id,
+         const Function<deal_II_space_dimension>   &,
+         ConstraintMatrix                    &,
+         const ComponentMask             &);
+
+      template
+        void interpolate_boundary_values (
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const types::boundary_id,
+          const Function<deal_II_space_dimension>   &,
+          ConstraintMatrix                    &,
+          const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values (
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const FunctionMap<deal_II_space_dimension>::type   &,
+          ConstraintMatrix                    &,
+          const ComponentMask    &);
+        \}
+#endif
+}
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
+  {
+    namespace VectorTools \{
+#if deal_II_dimension == deal_II_space_dimension
+
+      template
+        void project_boundary_values<deal_II_dimension>
+        (const Mapping<deal_II_dimension>     &,
+         const DoFHandler<deal_II_dimension>  &,
+         const FunctionMap<deal_II_dimension>::type &,
+         const Quadrature<deal_II_dimension-1>&,
+         std::map<types::global_dof_index,double>&, std::vector<unsigned int>);
+
+      template
+        void project_boundary_values<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension>  &,
+         const FunctionMap<deal_II_dimension>::type &,
+         const Quadrature<deal_II_dimension-1>&,
+         std::map<types::global_dof_index,double>&, 
+         std::vector<unsigned int>);
+
+      template
+        void project_boundary_values<deal_II_dimension>
+        (const Mapping<deal_II_dimension>     &,
+         const DoFHandler<deal_II_dimension>  &,
+         const FunctionMap<deal_II_dimension>::type &,
+         const Quadrature<deal_II_dimension-1>&,
+         ConstraintMatrix&, std::vector<unsigned int>);
+
+      template
+        void project_boundary_values<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension>  &,
+         const FunctionMap<deal_II_dimension>::type &,
+         const Quadrature<deal_II_dimension-1>&,
+         ConstraintMatrix&, 
+         std::vector<unsigned int>);
+
+
+
+#if deal_II_dimension != 1
+      template
+        void project_boundary_values_curl_conforming<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension>&,
+         const unsigned int,
+         const Function<deal_II_dimension>&,
+         const types::boundary_id,
+         ConstraintMatrix&,
+         const Mapping<deal_II_dimension>&);
+      template
+        void project_boundary_values_curl_conforming<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension>&,
+         const unsigned int,
+         const Function<deal_II_dimension>&,
+         const types::boundary_id,
+         ConstraintMatrix&,
+         const hp::MappingCollection<deal_II_dimension>&);
+      template
+        void project_boundary_values_div_conforming<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension>&,
+         const unsigned int,
+         const Function<deal_II_dimension>&,
+         const types::boundary_id,
+         ConstraintMatrix&,
+         const Mapping<deal_II_dimension>&);
+      template
+        void project_boundary_values_div_conforming<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension>&,
+         const unsigned int,
+         const Function<deal_II_dimension>&,
+         const types::boundary_id,
+         ConstraintMatrix&,
+         const hp::MappingCollection<deal_II_dimension>&);
+#endif
+#endif
+      \}
+  }
diff --git a/deal.II/source/numerics/vector_tools_constraints.cc b/deal.II/source/numerics/vector_tools_constraints.cc
new file mode 100644 (file)
index 0000000..1ec77ec
--- /dev/null
@@ -0,0 +1,25 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_constraints.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_constraints.inst.in b/deal.II/source/numerics/vector_tools_constraints.inst.in
new file mode 100644 (file)
index 0000000..19f2df6
--- /dev/null
@@ -0,0 +1,43 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+    namespace VectorTools \{
+
+#if deal_II_dimension == deal_II_space_dimension
+#if deal_II_dimension != 1
+      template
+        void
+        compute_no_normal_flux_constraints (const DoFHandler<deal_II_dimension> &dof_handler,
+                                            const unsigned int     first_vector_component,
+                                            const std::set<types::boundary_id> &boundary_ids,
+                                            ConstraintMatrix      &constraints,
+                                            const Mapping<deal_II_dimension>    &mapping);
+      template
+        void
+        compute_no_normal_flux_constraints (const hp::DoFHandler<deal_II_dimension> &dof_handler,
+                                            const unsigned int     first_vector_component,
+                                            const std::set<types::boundary_id> &boundary_ids,
+                                            ConstraintMatrix      &constraints,
+                                            const Mapping<deal_II_dimension>    &mapping);
+#endif
+#endif
+      \}
+  }
diff --git a/deal.II/source/numerics/vector_tools_integrate_difference.cc b/deal.II/source/numerics/vector_tools_integrate_difference.cc
new file mode 100644 (file)
index 0000000..4e6e8e6
--- /dev/null
@@ -0,0 +1,25 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_integrate_difference.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_integrate_difference.inst.in b/deal.II/source/numerics/vector_tools_integrate_difference.inst.in
new file mode 100644 (file)
index 0000000..08cf8b9
--- /dev/null
@@ -0,0 +1,127 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension <= deal_II_space_dimension
+    namespace VectorTools \{
+
+      template
+        void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
+        (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+         const VEC&,
+         const Function<deal_II_space_dimension>&,
+         Vector<float>&,
+         const Quadrature<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_space_dimension>*,
+         const double);
+
+      template
+        void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
+        (const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+         const VEC&,
+         const Function<deal_II_space_dimension>&,
+         Vector<double>&,
+         const Quadrature<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_space_dimension>*,
+         const double);
+
+      template
+        void integrate_difference<deal_II_dimension, VEC, Vector<float>, deal_II_space_dimension>
+        (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
+         const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+         const VEC&,
+         const Function<deal_II_space_dimension>&,
+         Vector<float>&,
+         const Quadrature<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_space_dimension>*,
+         const double);
+
+      template
+        void integrate_difference<deal_II_dimension, VEC, Vector<double>, deal_II_space_dimension >
+        (const Mapping<deal_II_dimension, deal_II_space_dimension>&,
+         const DoFHandler<deal_II_dimension, deal_II_space_dimension>&,
+         const VEC&,
+         const Function<deal_II_space_dimension>&,
+         Vector<double>&,
+         const Quadrature<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_space_dimension>*,
+         const double);
+
+      \}
+#endif
+  }
+
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension == deal_II_space_dimension
+
+    namespace VectorTools \{
+
+      template
+        void integrate_difference<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension>&,
+         const VEC&,
+         const Function<deal_II_dimension>&,
+         Vector<double>&,
+         const hp::QCollection<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_dimension>*,
+         const double);
+      template
+        void integrate_difference<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension>&,
+         const VEC&,
+         const Function<deal_II_dimension>&,
+         Vector<float>&,
+         const hp::QCollection<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_dimension>*,
+         const double);
+      template
+        void integrate_difference<deal_II_dimension>
+        (const hp::MappingCollection<deal_II_dimension>&,
+         const hp::DoFHandler<deal_II_dimension>&,
+         const VEC&,
+         const Function<deal_II_dimension>&,
+         Vector<double>&,
+         const hp::QCollection<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_dimension>*,
+         const double);
+      template
+        void integrate_difference<deal_II_dimension>
+        (const hp::MappingCollection<deal_II_dimension>&,
+         const hp::DoFHandler<deal_II_dimension>&,
+         const VEC&,
+         const Function<deal_II_dimension>&,
+         Vector<float>&,
+         const hp::QCollection<deal_II_dimension>&,
+         const NormType&,
+         const Function<deal_II_dimension>*,
+         const double);
+      \}
+#endif
+  }
diff --git a/deal.II/source/numerics/vector_tools_interpolate.cc b/deal.II/source/numerics/vector_tools_interpolate.cc
new file mode 100644 (file)
index 0000000..3d57d88
--- /dev/null
@@ -0,0 +1,25 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_interpolate.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_interpolate.inst.in b/deal.II/source/numerics/vector_tools_interpolate.inst.in
new file mode 100644 (file)
index 0000000..5eba56a
--- /dev/null
@@ -0,0 +1,199 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension <= deal_II_space_dimension
+    namespace VectorTools \{
+
+      template
+        void interpolate
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
+         const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+         const Function<deal_II_space_dimension>&,
+         VEC&);
+
+      template
+        void interpolate
+        (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+         const Function<deal_II_space_dimension>&,
+         VEC&);
+      \}
+#endif
+  }
+
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension == deal_II_space_dimension
+
+    namespace VectorTools \{
+
+      template
+        void interpolate
+        (const Mapping<deal_II_dimension>&,
+         const hp::DoFHandler<deal_II_dimension>&,
+         const Function<deal_II_dimension>&,
+         VEC&);
+      template
+        void interpolate
+        (const hp::DoFHandler<deal_II_dimension>&,
+         const Function<deal_II_dimension>&,
+         VEC&);
+
+      template
+        void interpolate
+        (const DoFHandler<deal_II_dimension>&,
+         const DoFHandler<deal_II_dimension>&,
+         const FullMatrix<double>&,
+         const VEC&,
+         VEC&);
+      \}
+#endif
+  }
+
+
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES)
+  {
+#if deal_II_dimension <= deal_II_space_dimension
+    namespace VectorTools \{
+      template
+        void interpolate_boundary_values
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+         const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const FunctionMap<deal_II_space_dimension>::type &,
+         std::map<types::global_dof_index,double>       &,
+         const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+         const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const types::boundary_id,
+         const Function<deal_II_space_dimension>   &,
+         std::map<types::global_dof_index,double>       &,
+         const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values (
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const types::boundary_id,
+          const Function<deal_II_space_dimension>   &,
+          std::map<types::global_dof_index,double>       &,
+          const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values
+        (const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const FunctionMap<deal_II_space_dimension>::type &,
+         std::map<types::global_dof_index,double>       &,
+         const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values (
+          const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const FunctionMap<deal_II_space_dimension>::type   &,
+          ConstraintMatrix                    &,
+          const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+         const DH<deal_II_dimension,deal_II_space_dimension> &,
+         const types::boundary_id,
+         const Function<deal_II_space_dimension>   &,
+         ConstraintMatrix                    &,
+         const ComponentMask             &);
+
+      template
+        void interpolate_boundary_values (
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const types::boundary_id,
+          const Function<deal_II_space_dimension>   &,
+          ConstraintMatrix                    &,
+          const ComponentMask    &);
+
+      template
+        void interpolate_boundary_values (
+          const DH<deal_II_dimension,deal_II_space_dimension> &,
+          const FunctionMap<deal_II_space_dimension>::type   &,
+          ConstraintMatrix                    &,
+          const ComponentMask    &);
+
+      \}
+#endif
+  }
+
+
+
+for (deal_II_dimension : DIMENSIONS)
+{
+  namespace VectorTools \{
+
+  template
+    void interpolate_to_different_mesh
+    (const DoFHandler<deal_II_dimension> &,
+     const Vector<float>                 &,
+     const DoFHandler<deal_II_dimension> &,
+     Vector<float>                       &);
+
+  template
+    void interpolate_to_different_mesh
+    (const DoFHandler<deal_II_dimension> &,
+     const Vector<float>                 &,
+     const DoFHandler<deal_II_dimension> &,
+     const ConstraintMatrix              &,
+     Vector<float>                       &);
+
+  template
+    void interpolate_to_different_mesh
+    (const InterGridMap<DoFHandler<deal_II_dimension> > &,
+     const Vector<float>                                &,
+     const ConstraintMatrix                             &,
+     Vector<float>                                      &);
+
+  template
+    void interpolate_to_different_mesh
+    (const DoFHandler<deal_II_dimension> &,
+     const Vector<double>                &,
+     const DoFHandler<deal_II_dimension> &,
+     Vector<double>                      &);
+
+  template
+    void interpolate_to_different_mesh
+    (const DoFHandler<deal_II_dimension> &,
+     const Vector<double>                &,
+     const DoFHandler<deal_II_dimension> &,
+     const ConstraintMatrix              &,
+     Vector<double>                      &);
+
+  template
+    void interpolate_to_different_mesh
+    (const InterGridMap<DoFHandler<deal_II_dimension> > &,
+     const Vector<double>                               &,
+     const ConstraintMatrix                             &,
+     Vector<double>                                     &);
+
+  \}
+}
+
+
diff --git a/deal.II/source/numerics/vector_tools_mean_value.cc b/deal.II/source/numerics/vector_tools_mean_value.cc
new file mode 100644 (file)
index 0000000..a907916
--- /dev/null
@@ -0,0 +1,25 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_mean_value.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_mean_value.inst.in b/deal.II/source/numerics/vector_tools_mean_value.inst.in
new file mode 100644 (file)
index 0000000..89e5be1
--- /dev/null
@@ -0,0 +1,50 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension <= deal_II_space_dimension
+    namespace VectorTools \{
+
+      template
+        double compute_mean_value<deal_II_dimension>
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>&,
+         const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+         const Quadrature<deal_II_dimension>&,
+         const VEC&,
+         const unsigned int);
+
+      template
+        double compute_mean_value<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension,deal_II_space_dimension>&,
+         const Quadrature<deal_II_dimension>&,
+         const VEC&,
+         const unsigned int);
+
+      \}
+#endif
+  }
+
+
+
+for (VEC : SERIAL_VECTORS)
+{
+    namespace VectorTools \{
+      template
+        void subtract_mean_value(VEC &, const std::vector<bool> &);
+    \}
+}
diff --git a/deal.II/source/numerics/vector_tools_point_value.cc b/deal.II/source/numerics/vector_tools_point_value.cc
new file mode 100644 (file)
index 0000000..e5a0c30
--- /dev/null
@@ -0,0 +1,25 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_point_value.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_point_value.inst.in b/deal.II/source/numerics/vector_tools_point_value.inst.in
new file mode 100644 (file)
index 0000000..8dd47f7
--- /dev/null
@@ -0,0 +1,165 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension == deal_II_space_dimension
+
+    namespace VectorTools \{
+
+  template
+    void point_value<deal_II_dimension> (
+      const hp::DoFHandler<deal_II_dimension>&,
+      const VEC&,
+      const Point<deal_II_dimension>&,
+      Vector<double>&);
+
+  template
+    double point_value<deal_II_dimension> (
+      const hp::DoFHandler<deal_II_dimension>&,
+      const VEC&,
+      const Point<deal_II_dimension>&);
+
+  template
+    void point_value<deal_II_dimension> (
+      const hp::MappingCollection<deal_II_dimension>&,
+      const hp::DoFHandler<deal_II_dimension>&,
+      const VEC&,
+      const Point<deal_II_dimension>&,
+      Vector<double>&);
+
+  template
+    double point_value<deal_II_dimension> (
+      const hp::MappingCollection<deal_II_dimension>&,
+      const hp::DoFHandler<deal_II_dimension>&,
+      const VEC&,
+      const Point<deal_II_dimension>&);
+
+      template
+        void point_difference<deal_II_dimension> (
+          const DoFHandler<deal_II_dimension>&,
+          const VEC&,
+          const Function<deal_II_dimension>&,
+          Vector<double>&,
+          const Point<deal_II_dimension>&);
+
+      template
+        void point_difference<deal_II_dimension> (
+          const Mapping<deal_II_dimension>&,
+          const DoFHandler<deal_II_dimension>&,
+          const VEC&,
+          const Function<deal_II_dimension>&,
+          Vector<double>&,
+          const Point<deal_II_dimension>&);
+
+      template
+        void point_value<deal_II_dimension> (
+          const DoFHandler<deal_II_dimension>&,
+          const VEC&,
+          const Point<deal_II_dimension>&,
+          Vector<double>&);
+
+      template
+        double point_value<deal_II_dimension> (
+          const DoFHandler<deal_II_dimension>&,
+          const VEC&,
+          const Point<deal_II_dimension>&);
+
+      template
+        void point_value<deal_II_dimension> (
+          const Mapping<deal_II_dimension>&,
+          const DoFHandler<deal_II_dimension>&,
+          const VEC&,
+          const Point<deal_II_dimension>&,
+          Vector<double>&);
+
+      template
+        double point_value<deal_II_dimension> (
+          const Mapping<deal_II_dimension>&,
+          const DoFHandler<deal_II_dimension>&,
+          const VEC&,
+          const Point<deal_II_dimension>&);
+
+      \}
+#endif
+  }
+
+
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+    namespace VectorTools \{
+
+#if deal_II_dimension == deal_II_space_dimension
+
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const Mapping<deal_II_dimension>    &,
+         const DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const hp::MappingCollection<deal_II_dimension>    &,
+         const hp::DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const Mapping<deal_II_dimension>    &,
+         const DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const hp::MappingCollection<deal_II_dimension>    &,
+         const hp::DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+      template
+        void create_point_source_vector<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension> &,
+         const Point<deal_II_dimension>      &,
+         const Point<deal_II_dimension>      &,
+         Vector<double>                      &);
+#endif
+      \}
+  }
similarity index 95%
rename from deal.II/source/numerics/vector_tools.cc
rename to deal.II/source/numerics/vector_tools_project.cc
index fe9539c1d0f736331ccd26797e61dc0514f19426..cd5ba6fb7a19550c4a2ea1f355dd2078b94b3dce 100644 (file)
@@ -20,6 +20,6 @@
 DEAL_II_NAMESPACE_OPEN
 
 // ---------------------------- explicit instantiations --------------------
-#include "vector_tools.inst"
+#include "vector_tools_project.inst"
 
 DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_project.inst.in b/deal.II/source/numerics/vector_tools_project.inst.in
new file mode 100644 (file)
index 0000000..3dc5d6b
--- /dev/null
@@ -0,0 +1,70 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension <= deal_II_space_dimension
+    namespace VectorTools \{
+
+      template
+        void project
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>      &,
+         const DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
+         const ConstraintMatrix                &,
+         const Quadrature<deal_II_dimension>   &,
+         const Function<deal_II_space_dimension>     &,
+         VEC                                   &,
+         const bool,
+         const Quadrature<deal_II_dimension-1> &,
+         const bool);
+
+      template
+        void project
+        (const DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
+         const ConstraintMatrix                &,
+         const Quadrature<deal_II_dimension>   &,
+         const Function<deal_II_space_dimension>     &,
+         VEC                                   &,
+         const bool,
+         const Quadrature<deal_II_dimension-1> &,
+         const bool);
+
+      template
+        void project
+        (const hp::MappingCollection<deal_II_dimension,deal_II_space_dimension>      &,
+         const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
+         const ConstraintMatrix                &,
+         const hp::QCollection<deal_II_dimension>   &,
+         const Function<deal_II_space_dimension>     &,
+         VEC                                   &,
+         const bool,
+         const hp::QCollection<deal_II_dimension-1> &,
+         const bool);
+
+      template
+        void project
+        (const hp::DoFHandler<deal_II_dimension,deal_II_space_dimension>   &,
+         const ConstraintMatrix                &,
+         const hp::QCollection<deal_II_dimension>   &,
+         const Function<deal_II_space_dimension>     &,
+         VEC                                   &,
+         const bool,
+         const hp::QCollection<deal_II_dimension-1> &,
+         const bool);
+      \}
+#endif
+  }
diff --git a/deal.II/source/numerics/vector_tools_rhs.cc b/deal.II/source/numerics/vector_tools_rhs.cc
new file mode 100644 (file)
index 0000000..cb12d60
--- /dev/null
@@ -0,0 +1,86 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include <deal.II/numerics/vector_tools.templates.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+
+namespace VectorTools
+{
+
+// separate implementation for 1D because otherwise we get linker errors since
+// (hp::)FEFaceValues<1> is not compiled
+  template <>
+  void
+  create_boundary_right_hand_side (const Mapping<1,1> &,
+                                   const DoFHandler<1,1> &,
+                                   const Quadrature<0> &,
+                                   const Function<1> &,
+                                   Vector<double> &,
+                                   const std::set<types::boundary_id> &)
+  {
+    Assert (false, ExcImpossibleInDim(1));
+  }
+
+
+
+  template <>
+  void
+  create_boundary_right_hand_side (const Mapping<1,2> &,
+                                   const DoFHandler<1,2> &,
+                                   const Quadrature<0> &,
+                                   const Function<2> &,
+                                   Vector<double> &,
+                                   const std::set<types::boundary_id> &)
+  {
+    Assert (false, ExcImpossibleInDim(1));
+  }
+
+
+
+  template <>
+  void
+  create_boundary_right_hand_side (const hp::MappingCollection<1,1> &,
+                                   const hp::DoFHandler<1,1> &,
+                                   const hp::QCollection<0> &,
+                                   const Function<1> &,
+                                   Vector<double> &,
+                                   const std::set<types::boundary_id> &)
+  {
+    Assert (false, ExcImpossibleInDim(1));
+  }
+
+
+
+  template <>
+  void
+  create_boundary_right_hand_side (const hp::MappingCollection<1,2> &,
+                                   const hp::DoFHandler<1,2> &,
+                                   const hp::QCollection<0> &,
+                                   const Function<2> &,
+                                   Vector<double> &,
+                                   const std::set<types::boundary_id> &)
+  {
+    Assert (false, ExcImpossibleInDim(1));
+  }
+}
+
+// ---------------------------- explicit instantiations --------------------
+#include "vector_tools_rhs.inst"
+
+DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/numerics/vector_tools_rhs.inst.in b/deal.II/source/numerics/vector_tools_rhs.inst.in
new file mode 100644 (file)
index 0000000..aed42a7
--- /dev/null
@@ -0,0 +1,108 @@
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1998 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+#if deal_II_dimension <= deal_II_space_dimension
+    namespace VectorTools \{
+      template
+        void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
+        (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
+         const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+         const Quadrature<deal_II_dimension> &,
+         const Function<deal_II_space_dimension>   &,
+         Vector<double>                      &);
+
+      template
+        void create_right_hand_side<deal_II_dimension,deal_II_space_dimension>
+        (const DoFHandler<deal_II_dimension,deal_II_space_dimension> &,
+         const Quadrature<deal_II_dimension> &,
+         const Function<deal_II_space_dimension>   &,
+         Vector<double>  &);
+
+      \}
+#endif
+  }
+
+//TODO[SP]: replace <deal_II_dimension> by <deal_II_dimension, deal_II_space_dimension>
+// where applicable and move to codimension cases above also when applicable
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS)
+  {
+    namespace VectorTools \{
+
+#if deal_II_dimension == deal_II_space_dimension
+      template
+        void create_right_hand_side<deal_II_dimension>
+        (const hp::MappingCollection<deal_II_dimension>    &,
+         const hp::DoFHandler<deal_II_dimension> &,
+         const hp::QCollection<deal_II_dimension> &,
+         const Function<deal_II_dimension>   &,
+         Vector<double>                      &);
+
+      template
+        void create_right_hand_side<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension> &,
+         const hp::QCollection<deal_II_dimension> &,
+         const Function<deal_II_dimension>   &,
+         Vector<double>                      &);
+
+#if deal_II_dimension > 1
+      template
+        void
+        create_boundary_right_hand_side<deal_II_dimension>
+        (const Mapping<deal_II_dimension>    &,
+         const DoFHandler<deal_II_dimension> &,
+         const Quadrature<deal_II_dimension-1> &,
+         const Function<deal_II_dimension>   &,
+         Vector<double>                      &,
+         const std::set<types::boundary_id> &);
+#endif
+
+      template
+        void
+        create_boundary_right_hand_side<deal_II_dimension>
+        (const DoFHandler<deal_II_dimension> &,
+         const Quadrature<deal_II_dimension-1> &,
+         const Function<deal_II_dimension>   &,
+         Vector<double>                      &,
+         const std::set<types::boundary_id> &);
+
+#if deal_II_dimension > 1
+      template
+        void
+        create_boundary_right_hand_side<deal_II_dimension>
+        (const hp::MappingCollection<deal_II_dimension>    &,
+         const hp::DoFHandler<deal_II_dimension> &,
+         const hp::QCollection<deal_II_dimension-1> &,
+         const Function<deal_II_dimension>   &,
+         Vector<double>                      &,
+         const std::set<types::boundary_id> &);
+#endif
+
+      template
+        void
+        create_boundary_right_hand_side<deal_II_dimension>
+        (const hp::DoFHandler<deal_II_dimension> &,
+         const hp::QCollection<deal_II_dimension-1> &,
+         const Function<deal_II_dimension>   &,
+         Vector<double>                      &,
+         const std::set<types::boundary_id> &);
+
+
+#endif
+      \}
+  }

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.