]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Generalize two more instantiations.
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 12 Mar 2013 13:39:51 +0000 (13:39 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 12 Mar 2013 13:39:51 +0000 (13:39 +0000)
git-svn-id: https://svn.dealii.org/trunk@28868 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/source/fe/fe_tools.cc
deal.II/source/fe/fe_tools.inst.in
deal.II/source/lac/CMakeLists.txt
deal.II/source/lac/solver.cc
deal.II/source/lac/solver.inst.in [new file with mode: 0644]

index 0c6e2c73c993b6baf6cb9efe4a7c8c868b194133..5347869b8223344bcf1af481be4f0d6761feb08d 100644 (file)
@@ -20,6 +20,7 @@
 #include <deal.II/lac/vector.h>
 #include <deal.II/lac/block_vector.h>
 #include <deal.II/lac/parallel_vector.h>
+#include <deal.II/lac/parallel_block_vector.h>
 #include <deal.II/lac/petsc_parallel_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/trilinos_block_vector.h>
index b78de54520bb78298aaf09a56e9e239aaeb81946..ab7eafa1838a97813c1f914d9ff1a347ccaf1368 100644 (file)
@@ -147,296 +147,6 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS
        (const FiniteElement<deal_II_dimension> &, FullMatrix<double> (&)[GeometryInfo<deal_II_dimension>::max_children_per_face],
         unsigned int, unsigned int);
 
-     template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<double> &,
-        const FiniteElement<deal_II_dimension> &, Vector<double> &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const Vector<double> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<double> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<double> &,
-        const FiniteElement<deal_II_dimension> &, Vector<double> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const Vector<double> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<double> &);
-      template
-       void project_dg<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<double> &,
-        const DoFHandler<deal_II_dimension> &, Vector<double> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<double> &,
-        const DoFHandler<deal_II_dimension> &, Vector<double> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<double> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<double> &);
-
-
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<float> &,
-        const FiniteElement<deal_II_dimension> &, Vector<float> &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const Vector<float> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<float> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<float> &,
-        const FiniteElement<deal_II_dimension> &, Vector<float> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const Vector<float> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<float> &);
-      template
-       void project_dg<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<float> &,
-        const DoFHandler<deal_II_dimension> &, Vector<float> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<float> &,
-        const DoFHandler<deal_II_dimension> &, Vector<float> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const Vector<float> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<float> &);
-
-
-#ifdef DEAL_II_WITH_PETSC
-
-      template
-       void interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const PETScWrappers::MPI::Vector &,
-        const DoFHandler<deal_II_dimension> &,  PETScWrappers::MPI::Vector &);
-      template
-       void interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const PETScWrappers::MPI::Vector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        PETScWrappers::MPI::Vector &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const PETScWrappers::MPI::Vector &,
-        const FiniteElement<deal_II_dimension> &,  PETScWrappers::MPI::Vector &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const PETScWrappers::MPI::Vector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        PETScWrappers::MPI::Vector &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const PETScWrappers::MPI::Vector &,
-        const FiniteElement<deal_II_dimension> &, PETScWrappers::MPI::Vector &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const PETScWrappers::MPI::Vector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        PETScWrappers::MPI::Vector &);
-
-#endif
-
-
-#ifdef DEAL_II_WITH_TRILINOS
-
-      template
-       void interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::Vector &,
-        const DoFHandler<deal_II_dimension> &,  TrilinosWrappers::Vector &);
-      template
-       void interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::Vector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::Vector &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::Vector &,
-        const FiniteElement<deal_II_dimension> &,  TrilinosWrappers::Vector &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const TrilinosWrappers::Vector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::Vector &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::Vector &,
-        const FiniteElement<deal_II_dimension> &, TrilinosWrappers::Vector &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const TrilinosWrappers::Vector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::Vector &);
-      template
-       void project_dg<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::Vector &,
-        const DoFHandler<deal_II_dimension> &, TrilinosWrappers::Vector &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::Vector &,
-        const DoFHandler<deal_II_dimension> &, TrilinosWrappers::Vector &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::Vector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::Vector &);
-
-#endif
-
-  
-
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<double> &,
-        const FiniteElement<deal_II_dimension> &, BlockVector<double> &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const BlockVector<double> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        BlockVector<double> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<double> &,
-        const FiniteElement<deal_II_dimension> &, BlockVector<double> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const BlockVector<double> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        BlockVector<double> &);
-      template
-       void project_dg<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<double> &,
-        const DoFHandler<deal_II_dimension> &, BlockVector<double> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<double> &,
-        const DoFHandler<deal_II_dimension> &, BlockVector<double> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<double> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        BlockVector<double> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<double> &,
-        const DoFHandler<deal_II_dimension> &, Vector<double> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<double> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<double> &);
-
-
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<float> &,
-        const FiniteElement<deal_II_dimension> &, BlockVector<float> &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const BlockVector<float> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        BlockVector<float> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<float> &,
-        const FiniteElement<deal_II_dimension> &, BlockVector<float> &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const BlockVector<float> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        BlockVector<float> &);
-      template
-       void project_dg<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<float> &,
-        const DoFHandler<deal_II_dimension> &, BlockVector<float> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<float> &,
-        const DoFHandler<deal_II_dimension> &, BlockVector<float> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<float> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        BlockVector<float> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<float> &,
-        const DoFHandler<deal_II_dimension> &, Vector<float> &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const BlockVector<float> &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        Vector<float> &);
-
-
-#ifdef DEAL_II_WITH_TRILINOS
-
-      template
-       void interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::BlockVector &,
-        const DoFHandler<deal_II_dimension> &,  TrilinosWrappers::BlockVector &);
-      template
-       void interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::BlockVector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::BlockVector &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::BlockVector &,
-        const FiniteElement<deal_II_dimension> &,  TrilinosWrappers::BlockVector &);
-      template
-       void back_interpolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const TrilinosWrappers::BlockVector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::BlockVector &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::BlockVector &,
-        const FiniteElement<deal_II_dimension> &, TrilinosWrappers::BlockVector &);
-      template
-       void interpolation_difference<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        const TrilinosWrappers::BlockVector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::BlockVector &);
-      template
-       void project_dg<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::BlockVector &,
-        const DoFHandler<deal_II_dimension> &, TrilinosWrappers::BlockVector &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::BlockVector &,
-        const DoFHandler<deal_II_dimension> &, TrilinosWrappers::BlockVector &);
-      template
-       void extrapolate<deal_II_dimension>
-       (const DoFHandler<deal_II_dimension> &, const TrilinosWrappers::BlockVector &,
-        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
-        TrilinosWrappers::BlockVector &);
-
-#endif
-
-
       template
        void interpolate<deal_II_dimension>
        (const hp::DoFHandler<deal_II_dimension> &, const Vector<double> &,
@@ -528,3 +238,44 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS
 
 
 
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension :  SPACE_DIMENSIONS; VEC : SERIAL_VECTORS)
+  {
+    namespace FETools
+      \{
+#if deal_II_dimension == deal_II_space_dimension
+     template
+       void back_interpolate<deal_II_dimension>
+       (const DoFHandler<deal_II_dimension> &, const VEC &,
+        const FiniteElement<deal_II_dimension> &, VEC &);
+      template
+       void back_interpolate<deal_II_dimension>
+       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
+        const VEC &,
+        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
+        VEC &);
+      template
+       void interpolation_difference<deal_II_dimension>
+       (const DoFHandler<deal_II_dimension> &, const VEC &,
+        const FiniteElement<deal_II_dimension> &, VEC &);
+      template
+       void interpolation_difference<deal_II_dimension>
+       (const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
+        const VEC &,
+        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
+        VEC &);
+      template
+       void project_dg<deal_II_dimension>
+       (const DoFHandler<deal_II_dimension> &, const VEC &,
+        const DoFHandler<deal_II_dimension> &, VEC &);
+      template
+       void extrapolate<deal_II_dimension>
+       (const DoFHandler<deal_II_dimension> &, const VEC &,
+        const DoFHandler<deal_II_dimension> &, VEC &);
+      template
+       void extrapolate<deal_II_dimension>
+       (const DoFHandler<deal_II_dimension> &, const VEC &,
+        const DoFHandler<deal_II_dimension> &, const ConstraintMatrix &,
+        VEC &);
+#endif
+      \}
+  }
index b460e66faa9ea1e4793b8a7655279baeb8c0fb3b..3c82807cd64a3f6a9822faba47a779da09fad4dc 100644 (file)
@@ -86,6 +86,7 @@ SET(inst_in_files
   parallel_vector.inst.in
   precondition_block.inst.in
   relaxation_block.inst.in
+  solver.inst.in
   sparse_matrix_ez.inst.in
   sparse_matrix.inst.in
   trilinos_sparse_matrix.inst.in
index 88e1e0ee781dc1eb9327eff8c4a7dc9f46f4e144..a5dd8a638467ebc3ad951cebd8bdf82529fa2987 100644 (file)
 #include <deal.II/lac/block_vector.h>
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/petsc_block_vector.h>
+#include <deal.II/lac/trilinos_vector.h>
+#include <deal.II/lac/trilinos_block_vector.h>
 
 #include <deal.II/lac/parallel_vector.h>
+#include <deal.II/lac/parallel_block_vector.h>
 
 DEAL_II_NAMESPACE_OPEN
 
-
-// a few instantiations of static members. Hope that we catch all that
-// are required
-
-template class Solver<Vector<double> >;
-template class Solver<BlockVector<double> >;
-template class Solver<parallel::distributed::Vector<double> >;
-
-template class Solver<Vector<float> >;
-template class Solver<BlockVector<float> >;
-template class Solver<parallel::distributed::Vector<float> >;
-
-#ifdef DEAL_II_WITH_PETSC
-template class Solver<PETScWrappers::Vector>;
-template class Solver<PETScWrappers::BlockVector>;
-#endif
+#include "solver.inst"
 
 DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/source/lac/solver.inst.in b/deal.II/source/lac/solver.inst.in
new file mode 100644 (file)
index 0000000..f01301a
--- /dev/null
@@ -0,0 +1,18 @@
+//---------------------------------------------------------------------------
+//    $Id$
+//    Version: $Name$
+//
+//    Copyright (C) 2013 by the deal.II authors
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//---------------------------------------------------------------------------
+
+
+for (S : SERIAL_VECTORS)
+  {
+    template class Solver<S>;
+  }

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.