From 1ec45a6ae99a8f7856dc3c4127052be5e2c2ccb0 Mon Sep 17 00:00:00 2001
From: Wolfgang Bangerth <bangerth@colostate.edu>
Date: Mon, 4 Dec 2017 10:59:38 -0700
Subject: [PATCH] Add more instantiations for complex arguments.

---
 source/numerics/vector_tools_boundary.cc      |  9 -------
 source/numerics/vector_tools_boundary.inst.in | 27 ++++++++++++-------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/source/numerics/vector_tools_boundary.cc b/source/numerics/vector_tools_boundary.cc
index 02b502563e..bb18eda7d7 100644
--- a/source/numerics/vector_tools_boundary.cc
+++ b/source/numerics/vector_tools_boundary.cc
@@ -21,13 +21,4 @@ DEAL_II_NAMESPACE_OPEN
 // ---------------------------- explicit instantiations --------------------
 #include "vector_tools_boundary.inst"
 
-// extra instantiations to make unit tests pass:
-template
-void VectorTools::interpolate_boundary_values (
-  const dealii::DoFHandler<2, 2> &,
-  const types::boundary_id,
-  const Function<2,float> &,
-  std::map<types::global_dof_index,float> &,
-  const ComponentMask &);
-
 DEAL_II_NAMESPACE_CLOSE
diff --git a/source/numerics/vector_tools_boundary.inst.in b/source/numerics/vector_tools_boundary.inst.in
index 674f78893a..dc07a99915 100644
--- a/source/numerics/vector_tools_boundary.inst.in
+++ b/source/numerics/vector_tools_boundary.inst.in
@@ -14,7 +14,7 @@
 // ---------------------------------------------------------------------
 
 
-for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES)
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS; DH : DOFHANDLER_TEMPLATES; number : REAL_AND_COMPLEX_SCALARS)
 {
 #if deal_II_dimension <= deal_II_space_dimension
     namespace VectorTools \{
@@ -22,8 +22,8 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS;
     void interpolate_boundary_values
     (const Mapping<deal_II_dimension,deal_II_space_dimension>    &,
      const DH<deal_II_dimension,deal_II_space_dimension> &,
-     const std::map<types::boundary_id, const Function<deal_II_space_dimension,double>*> &,
-     std::map<types::global_dof_index,double>       &,
+     const std::map<types::boundary_id, const Function<deal_II_space_dimension,number>*> &,
+     std::map<types::global_dof_index,number>       &,
      const ComponentMask    &);
 
     template
@@ -31,24 +31,33 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS;
     (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 Function<deal_II_space_dimension,number>   &,
+     std::map<types::global_dof_index,number>       &,
      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 Function<deal_II_space_dimension,number>   &,
+        std::map<types::global_dof_index,number>       &,
         const ComponentMask    &);
 
     template
     void interpolate_boundary_values
     (const DH<deal_II_dimension,deal_II_space_dimension> &,
-     const std::map<types::boundary_id, const Function<deal_II_space_dimension,double>*> &,
-     std::map<types::global_dof_index,double>       &,
+     const std::map<types::boundary_id, const Function<deal_II_space_dimension,number>*> &,
+     std::map<types::global_dof_index,number>       &,
      const ComponentMask    &);
+    \}
+#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 (
-- 
2.39.5