]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Bugfix: Add missing instantiations
authorDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Sun, 27 May 2018 15:30:35 +0000 (17:30 +0200)
committerMatthias Maier <tamiko@43-1.org>
Wed, 6 Jun 2018 15:19:38 +0000 (10:19 -0500)
source/lac/affine_constraints.cc
source/lac/affine_constraints.inst.in

index d318ac69a7886328114482a80e93bcbcfed4a61b..aef54fb03aae10fb76009256a53af2c3a3185c87 100644 (file)
@@ -21,6 +21,17 @@ DEAL_II_NAMESPACE_OPEN
 
 #include "affine_constraints.inst"
 
+/*
+ * FIXME: This mixed variant is needed by the multigrid - it currently only
+ * supports AffineConstraints<double>. If someone has the patience to
+ * templateify the 10 custom wrapper classes around AffineConstraints,
+ * please go ahead, fix the multigrid classes and remove this
+ * instantiation:
+ */
+template void
+dealii::AffineConstraints<double>::condense<dealii::BlockVector<float>>(
+  dealii::BlockVector<float> &) const;
+
 /*
  * Note: You probably do not want to add your custom instantiation down
  * here but use affine_constraints.inst.in instead. We use the following
@@ -31,6 +42,12 @@ DEAL_II_NAMESPACE_OPEN
 
 #define INSTANTIATE_DLTG_VECTOR(VectorType)                                    \
   template void                                                                \
+  AffineConstraints<VectorType::value_type>::condense<VectorType>(             \
+    const VectorType &, VectorType &) const;                                   \
+  template void                                                                \
+  AffineConstraints<VectorType::value_type>::condense<VectorType>(             \
+    VectorType &) const;                                                       \
+  template void                                                                \
   AffineConstraints<VectorType::value_type>::distribute_local_to_global<       \
     VectorType>(                                                               \
     const Vector<VectorType::value_type> &,                                    \
index 2c41b463e2e23476c0d540861e59cd36134cc164..5d47c6796dc2213c84053a3f9aa207450730ac2c 100644 (file)
@@ -300,11 +300,33 @@ for (S : REAL_AND_COMPLEX_SCALARS; T : DEAL_II_VEC_TEMPLATES)
       LinearAlgebra::distributed::T<S> &) const;
   }
 
+for (S : COMPLEX_SCALARS; T : DEAL_II_VEC_TEMPLATES)
+  {
+    template void AffineConstraints<S::value_type>::distribute<T<S>>(T<S> &)
+      const;
+
+    template void AffineConstraints<S::value_type>::distribute<
+      LinearAlgebra::distributed::T<S>>(LinearAlgebra::distributed::T<S> &)
+      const;
+
+    template void AffineConstraints<S::value_type>::set_zero<T<S>>(T<S> &)
+      const;
+
+    template void AffineConstraints<S::value_type>::set_zero<
+      LinearAlgebra::distributed::T<S>>(LinearAlgebra::distributed::T<S> &)
+      const;
+  }
 
 for (S : REAL_AND_COMPLEX_SCALARS)
+  {
+    template void AffineConstraints<S>::distribute<LinearAlgebra::Vector<S>>(
+      LinearAlgebra::Vector<S> &) const;
+  }
+
+for (S : COMPLEX_SCALARS)
   {
     template void
-    AffineConstraints<S>::distribute<LinearAlgebra::Vector<S>>(
+    AffineConstraints<S::value_type>::distribute<LinearAlgebra::Vector<S>>(
       LinearAlgebra::Vector<S> &) 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.