]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Port the perl expand_instantiations macro to the cxx version
authormaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 17 Sep 2012 19:48:24 +0000 (19:48 +0000)
committermaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 17 Sep 2012 19:48:24 +0000 (19:48 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_cmake@26443 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/common/dealiitemplates.pm.in [deleted file]
deal.II/common/template-arguments.in
deal.II/source/lac/CMakeLists.txt
deal.II/source/lac/block_sparse_matrix.inst.pl [deleted file]
deal.II/source/lac/constraint_matrix.inst [deleted file]
deal.II/source/lac/constraint_matrix.inst.in [new file with mode: 0644]
deal.II/source/lac/constraint_matrix.inst.pl [deleted file]

diff --git a/deal.II/common/dealiitemplates.pm.in b/deal.II/common/dealiitemplates.pm.in
deleted file mode 100644 (file)
index 80b7a15..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-######################################################################
-# Definitions for vectors of common template instantiations
-######################################################################
-package dealiitemplates;
-
-use strict;
-use warnings;
-
-BEGIN {
-    use Exporter();
-    our @ISA = qw(Exporter);
-    our @EXPORT = qw(&multisubst
-                     @dimensions @codim1_dimensions @dofhandlers @dofhandler_templates
-                     @real_scalars @complex_scalars @all_scalars
-                     @deal_vector_templates @deal_vectors @deal_real_vectors @deal_complex_vectors @deal_parallel_vectors
-                     @trilinos_vectors @petsc_vectors
-                     @sequential_vectors @parallel_vectors
-                     @sparsity_patterns);
-}
-
-our @EXPORT;
-
-######################################################################
-# A function substituting multiple patterns in a string with all
-# combinations of values of the vectors provided and printing the result.
-#
-# Its arguments are
-#
-# 1. The text with patterns to be replaced
-# 2. A reference to an array with all the patterns
-# 3. For each pattern, a reference to an array with replacements
-#
-# The function will then loop through all vectors in lexicographical
-# order, first fastest, and replace globally all occurences of each
-# pattern. This is only done if the pattern is not part of a C++ token.
-#
-######################################################################
-# Usage example:
-######################################################################
-#
-# use strict;
-# use dealiitemplates;
-#
-# my $text = <<'EOT'
-#   template class Test<D,S1,V1>;
-#   template void Test<D,S1,V1>::Dimension();
-# EOT
-# ;
-# my @patterns = qw(D S1 V1);
-#
-# multisubst($text, \@patterns, \@dimensions, \@real_scalars, \@sequential_vectors)
-#
-######################################################################
-sub multisubst
-{
-    my $text = shift;
-    my $patterns = shift;
-    
-    my $npat = $#{$patterns}+1;
-    my $nvec = $#_+1;
-    ($nvec == $npat) ||
-       die "multisubst function received $npat replacement patterns, but $nvec vectors\n",
-       "Did you by chance use '\@vec' instead of '\\\@vec?";
-    
-    my @sizes = map { $#{$_} } @_;
-    my $n = 1;
-    grep { $n *= ($_+1); } @sizes;
-    my @index = map { 0 } @sizes;
-    
-    for (my $i=0;$i<$n;++$i)
-    {
-       my $t = $text;
-       for (my $j=0;$j<=$#sizes;++$j)
-       {
-           my $v = $patterns->[$j];
-           my $r = $_[$j]->[$index[$j]];
-           $t =~ s/(?<![\w_])$v(?![\w_])/$r /g;
-       }
-       print "$t\n";
-       for (my $j=0;$j<=$#sizes;++$j)
-       {
-           if ($index[$j] < $sizes[$j])
-           {
-               ++$index[$j];
-               last;
-           }
-           else
-           {
-               $index[$j] = 0;
-           }
-       }
-    }
-}
-
-
-
-
-our $t;
-
-# Dimensions
-our @dimensions       = (1,2,3);
-our @codim1_dimensions = (1,2);
-
-# DoFHandlers
-our @dofhandler_templates = qw(DoFHandler hp::DoFHandler MGDoFHandler);
-our @dofhandlers = map { $t = $_ ; map { "$_<$t>" } @dofhandler_templates } @dimensions;
-
-# All possible number types
-our @real_scalars = ('float', 'double', 'long double');
-our @complex_scalars = map { "std::complex<$_>" } @real_scalars;
-our @all_scalars = (@real_scalars, @complex_scalars);
-
-# The vectors built into deal.II
-our @deal_vector_templates = qw(Vector BlockVector);
-our @deal_real_vectors = map { $t = $_ ; map { "$_<$t >" } @deal_vector_templates } @real_scalars;
-our @deal_complex_vectors = map { $t = $_ ; map { "$_<$t >" } @deal_vector_templates } @complex_scalars;
-our @deal_vectors = (@deal_real_vectors, @deal_complex_vectors);
-
-### Array of all sequential vectors, which includes deal.II vectors.
-our @sequential_vectors = @deal_real_vectors;
-
-### Array of all parallel vectors.
-our @deal_parallel_vectors = map { $t = $_ ; map { "parallel::distributed::$_<$t >" } @deal_vector_templates } @real_scalars;
-our @parallel_vectors = (@deal_parallel_vectors);
-
-######################################################################
-# Configured arrays start here.
-######################################################################
-# For each of those, first set up a temporary array with parameters
-# replaced by autoconf. Then, copy into the actual array, omitting all
-# empty strings.
-######################################################################
-our @tmp;
-
-@tmp = ('@DEAL_II_EXPAND_TRILINOS_VECTOR@',
-       '@DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR@',
-       '');
-our @trilinos_vectors = grep {!/^$/} @tmp;
-push(@sequential_vectors, @trilinos_vectors);
-
-@tmp = ('@DEAL_II_EXPAND_TRILINOS_MPI_VECTOR@',
-       '@DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR@',
-       '');
-push (@trilinos_vectors, grep {!/^$/} @tmp);
-push (@parallel_vectors, grep {!/^$/} @tmp);
-
-######################################################################
-
-@tmp = ('@DEAL_II_EXPAND_PETSC_VECTOR@',
-       '@DEAL_II_EXPAND_PETSC_BLOCKVECTOR@',
-       '');
-our @petsc_vectors = grep {!/^$/} @tmp;
-push(@sequential_vectors, @petsc_vectors);
-
-@tmp = ('@DEAL_II_EXPAND_PETSC_MPI_VECTOR@',
-       '@DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@',
-       '');
-push (@petsc_vectors, grep {!/^$/} @tmp);
-push (@parallel_vectors, grep {!/^$/} @tmp);
-
-######################################################################
-
-@tmp = qw(SparsityPattern
-          CompressedSparsityPattern
-          CompressedSetSparsityPattern
-          CompressedSimpleSparsityPattern
-          @DEAL_II_EXPAND_TRILINOS_SPARSITY_PATTERN@
-          BlockSparsityPattern
-          BlockCompressedSparsityPattern
-          BlockCompressedSetSparsityPattern
-          BlockCompressedSimpleSparsityPattern
-          @DEAL_II_EXPAND_TRILINOS_BLOCK_SPARSITY_PATTERN@);
-our @sparsity_patterns = grep {!/^$/} @tmp;
index 09d4d3354dc1b44a29147f1924540882b4d18e31..745b3387c03ed761c830ced905778721450f3958 100644 (file)
@@ -36,6 +36,18 @@ SERIAL_VECTORS := { Vector<double>;
                    @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@;
                   }
 
+EXTERNAL_SEQUENTIAL_VECTORS := { @DEAL_II_EXPAND_TRILINOS_VECTOR@
+                                 @DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR@
+                                 @DEAL_II_EXPAND_PETSC_VECTOR@
+                                 @DEAL_II_EXPAND_PETSC_BLOCKVECTOR@
+                               }
+
+EXTERNAL_PARALLEL_VECTORS := { @DEAL_II_EXPAND_TRILINOS_MPI_VECTOR@
+                               @DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR@
+                               @DEAL_II_EXPAND_PETSC_MPI_VECTOR@
+                               @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@
+                             }
+
 DOFHANDLERS := { DoFHandler<deal_II_dimension>;
                  hp::DoFHandler<deal_II_dimension>;
                 MGDoFHandler<deal_II_dimension> }
index a5a668e65f2efde3b63e16175ea3cc3475c9d57e..56d059dbdfcddb02e96b6656a65fb8e13c8548da 100644 (file)
@@ -64,6 +64,7 @@ SET(inst_in_files
   block_sparse_matrix.inst.in
   block_vector.inst.in
   chunk_sparse_matrix.inst.in
+  constraint_matrix.inst.in
   full_matrix.inst.in
   operator.inst.in
   parallel_vector.inst.in
diff --git a/deal.II/source/lac/block_sparse_matrix.inst.pl b/deal.II/source/lac/block_sparse_matrix.inst.pl
deleted file mode 100644 (file)
index 33925a7..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-######################################################################
-# $Id$
-######################################################################
-#
-# Copyright (C) 2011 by the deal.II authors
-#
-######################################################################
-
-use strict;
-use warnings;
-
-use dealiitemplates;
-
-my $scalar_functions = <<'EOT'
-template class BlockSparseMatrix<S1>;
-EOT
-    ;
-
-######################################################################
-# End of definitions, now come the loops
-######################################################################
-
-foreach my $r1 (@real_scalars)
-{
-    my $t = $scalar_functions;
-    $t =~ s/S1/$r1/g;
-    print $t;
-}
diff --git a/deal.II/source/lac/constraint_matrix.inst b/deal.II/source/lac/constraint_matrix.inst
deleted file mode 100644 (file)
index 1c0c4cf..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-
-template void ConstraintMatrix::condense<Vector<float >  >(const Vector<float >  &, Vector<float > &) const;
-template void ConstraintMatrix::condense<Vector<float >  >(Vector<float >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<Vector<float >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, Vector<float > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<Vector<float >  >(const Vector<float >  &, Vector<float > &) const;
-template void ConstraintMatrix::distribute<Vector<float >  >(Vector<float >  &) const;
-
-
-template void ConstraintMatrix::condense<BlockVector<float >  >(const BlockVector<float >  &, BlockVector<float > &) const;
-template void ConstraintMatrix::condense<BlockVector<float >  >(BlockVector<float >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<BlockVector<float >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, BlockVector<float > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<BlockVector<float >  >(const BlockVector<float >  &, BlockVector<float > &) const;
-template void ConstraintMatrix::distribute<BlockVector<float >  >(BlockVector<float >  &) const;
-
-
-template void ConstraintMatrix::condense<Vector<double >  >(const Vector<double >  &, Vector<double > &) const;
-template void ConstraintMatrix::condense<Vector<double >  >(Vector<double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<Vector<double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, Vector<double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<Vector<double >  >(const Vector<double >  &, Vector<double > &) const;
-template void ConstraintMatrix::distribute<Vector<double >  >(Vector<double >  &) const;
-
-
-template void ConstraintMatrix::condense<BlockVector<double >  >(const BlockVector<double >  &, BlockVector<double > &) const;
-template void ConstraintMatrix::condense<BlockVector<double >  >(BlockVector<double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<BlockVector<double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, BlockVector<double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<BlockVector<double >  >(const BlockVector<double >  &, BlockVector<double > &) const;
-template void ConstraintMatrix::distribute<BlockVector<double >  >(BlockVector<double >  &) const;
-
-
-template void ConstraintMatrix::condense<Vector<long double >  >(const Vector<long double >  &, Vector<long double > &) const;
-template void ConstraintMatrix::condense<Vector<long double >  >(Vector<long double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<Vector<long double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, Vector<long double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<Vector<long double >  >(const Vector<long double >  &, Vector<long double > &) const;
-template void ConstraintMatrix::distribute<Vector<long double >  >(Vector<long double >  &) const;
-
-
-template void ConstraintMatrix::condense<BlockVector<long double >  >(const BlockVector<long double >  &, BlockVector<long double > &) const;
-template void ConstraintMatrix::condense<BlockVector<long double >  >(BlockVector<long double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<BlockVector<long double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, BlockVector<long double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<BlockVector<long double >  >(const BlockVector<long double >  &, BlockVector<long double > &) const;
-template void ConstraintMatrix::distribute<BlockVector<long double >  >(BlockVector<long double >  &) const;
-
-
-template void ConstraintMatrix::condense<parallel::distributed::Vector<float >  >(const parallel::distributed::Vector<float >  &, parallel::distributed::Vector<float > &) const;
-template void ConstraintMatrix::condense<parallel::distributed::Vector<float >  >(parallel::distributed::Vector<float >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<parallel::distributed::Vector<float >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, parallel::distributed::Vector<float > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<parallel::distributed::Vector<float >  >(const parallel::distributed::Vector<float >  &, parallel::distributed::Vector<float > &) const;
-template void ConstraintMatrix::distribute<parallel::distributed::Vector<float >  >(parallel::distributed::Vector<float >  &) const;
-
-
-template void ConstraintMatrix::condense<parallel::distributed::BlockVector<float >  >(const parallel::distributed::BlockVector<float >  &, parallel::distributed::BlockVector<float > &) const;
-template void ConstraintMatrix::condense<parallel::distributed::BlockVector<float >  >(parallel::distributed::BlockVector<float >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<parallel::distributed::BlockVector<float >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, parallel::distributed::BlockVector<float > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<parallel::distributed::BlockVector<float >  >(const parallel::distributed::BlockVector<float >  &, parallel::distributed::BlockVector<float > &) const;
-template void ConstraintMatrix::distribute<parallel::distributed::BlockVector<float >  >(parallel::distributed::BlockVector<float >  &) const;
-
-
-template void ConstraintMatrix::condense<parallel::distributed::Vector<double >  >(const parallel::distributed::Vector<double >  &, parallel::distributed::Vector<double > &) const;
-template void ConstraintMatrix::condense<parallel::distributed::Vector<double >  >(parallel::distributed::Vector<double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<parallel::distributed::Vector<double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, parallel::distributed::Vector<double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<parallel::distributed::Vector<double >  >(const parallel::distributed::Vector<double >  &, parallel::distributed::Vector<double > &) const;
-template void ConstraintMatrix::distribute<parallel::distributed::Vector<double >  >(parallel::distributed::Vector<double >  &) const;
-
-
-template void ConstraintMatrix::condense<parallel::distributed::BlockVector<double >  >(const parallel::distributed::BlockVector<double >  &, parallel::distributed::BlockVector<double > &) const;
-template void ConstraintMatrix::condense<parallel::distributed::BlockVector<double >  >(parallel::distributed::BlockVector<double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<parallel::distributed::BlockVector<double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, parallel::distributed::BlockVector<double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<parallel::distributed::BlockVector<double >  >(const parallel::distributed::BlockVector<double >  &, parallel::distributed::BlockVector<double > &) const;
-template void ConstraintMatrix::distribute<parallel::distributed::BlockVector<double >  >(parallel::distributed::BlockVector<double >  &) const;
-
-
-template void ConstraintMatrix::condense<parallel::distributed::Vector<long double >  >(const parallel::distributed::Vector<long double >  &, parallel::distributed::Vector<long double > &) const;
-template void ConstraintMatrix::condense<parallel::distributed::Vector<long double >  >(parallel::distributed::Vector<long double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<parallel::distributed::Vector<long double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, parallel::distributed::Vector<long double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<parallel::distributed::Vector<long double >  >(const parallel::distributed::Vector<long double >  &, parallel::distributed::Vector<long double > &) const;
-template void ConstraintMatrix::distribute<parallel::distributed::Vector<long double >  >(parallel::distributed::Vector<long double >  &) const;
-
-
-template void ConstraintMatrix::condense<parallel::distributed::BlockVector<long double >  >(const parallel::distributed::BlockVector<long double >  &, parallel::distributed::BlockVector<long double > &) const;
-template void ConstraintMatrix::condense<parallel::distributed::BlockVector<long double >  >(parallel::distributed::BlockVector<long double >  &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<parallel::distributed::BlockVector<long double >  > (
-    const Vector<double>&, const std::vector<unsigned int> &, parallel::distributed::BlockVector<long double > &, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<parallel::distributed::BlockVector<long double >  >(const parallel::distributed::BlockVector<long double >  &, parallel::distributed::BlockVector<long double > &) const;
-template void ConstraintMatrix::distribute<parallel::distributed::BlockVector<long double >  >(parallel::distributed::BlockVector<long double >  &) const;
-
-
-template void ConstraintMatrix::set_zero<Vector<float >  >(Vector<float > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<BlockVector<float >  >(BlockVector<float > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<Vector<double >  >(Vector<double > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<BlockVector<double >  >(BlockVector<double > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<Vector<long double >  >(Vector<long double > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<BlockVector<long double >  >(BlockVector<long double > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<parallel::distributed::Vector<float >  >(parallel::distributed::Vector<float > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<parallel::distributed::BlockVector<float >  >(parallel::distributed::BlockVector<float > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<parallel::distributed::Vector<double >  >(parallel::distributed::Vector<double > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<parallel::distributed::BlockVector<double >  >(parallel::distributed::BlockVector<double > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<parallel::distributed::Vector<long double >  >(parallel::distributed::Vector<long double > &) const;
-
-
-
-template void ConstraintMatrix::set_zero<parallel::distributed::BlockVector<long double >  >(parallel::distributed::BlockVector<long double > &) const;
-
-
-
-template void ConstraintMatrix::condense<float >(const SparseMatrix<float >&, SparseMatrix<float > &) const;
-template void ConstraintMatrix::condense<float >(SparseMatrix<float >&) const;
-template void ConstraintMatrix::condense<float >(BlockSparseMatrix<float >&) const;
-
-
-template void ConstraintMatrix::condense<double >(const SparseMatrix<double >&, SparseMatrix<double > &) const;
-template void ConstraintMatrix::condense<double >(SparseMatrix<double >&) const;
-template void ConstraintMatrix::condense<double >(BlockSparseMatrix<double >&) const;
-
-
-template void ConstraintMatrix::condense<long double >(const SparseMatrix<long double >&, SparseMatrix<long double > &) const;
-template void ConstraintMatrix::condense<long double >(SparseMatrix<long double >&) const;
-template void ConstraintMatrix::condense<long double >(BlockSparseMatrix<long double >&) const;
-
-template void ConstraintMatrix::condense<float ,Vector<float > >(SparseMatrix<float >&, Vector<float >&) const;
-template void ConstraintMatrix::condense<float ,BlockVector<float > >(BlockSparseMatrix<float >&, BlockVector<float >&) const;
-template void ConstraintMatrix::condense<float ,Vector<float > >(
-    const SparseMatrix<float >&, const Vector<float >&, SparseMatrix<float > &, Vector<float >&) const;
-template void ConstraintMatrix::condense<float ,BlockVector<float > >(
-    const SparseMatrix<float >&, const BlockVector<float >&, SparseMatrix<float > &, BlockVector<float >&) const;
-
-template void ConstraintMatrix::condense<double ,Vector<float > >(SparseMatrix<double >&, Vector<float >&) const;
-template void ConstraintMatrix::condense<double ,BlockVector<float > >(BlockSparseMatrix<double >&, BlockVector<float >&) const;
-template void ConstraintMatrix::condense<double ,Vector<float > >(
-    const SparseMatrix<double >&, const Vector<float >&, SparseMatrix<double > &, Vector<float >&) const;
-template void ConstraintMatrix::condense<double ,BlockVector<float > >(
-    const SparseMatrix<double >&, const BlockVector<float >&, SparseMatrix<double > &, BlockVector<float >&) const;
-
-template void ConstraintMatrix::condense<long double ,Vector<float > >(SparseMatrix<long double >&, Vector<float >&) const;
-template void ConstraintMatrix::condense<long double ,BlockVector<float > >(BlockSparseMatrix<long double >&, BlockVector<float >&) const;
-template void ConstraintMatrix::condense<long double ,Vector<float > >(
-    const SparseMatrix<long double >&, const Vector<float >&, SparseMatrix<long double > &, Vector<float >&) const;
-template void ConstraintMatrix::condense<long double ,BlockVector<float > >(
-    const SparseMatrix<long double >&, const BlockVector<float >&, SparseMatrix<long double > &, BlockVector<float >&) const;
-
-template void ConstraintMatrix::condense<float ,Vector<double > >(SparseMatrix<float >&, Vector<double >&) const;
-template void ConstraintMatrix::condense<float ,BlockVector<double > >(BlockSparseMatrix<float >&, BlockVector<double >&) const;
-template void ConstraintMatrix::condense<float ,Vector<double > >(
-    const SparseMatrix<float >&, const Vector<double >&, SparseMatrix<float > &, Vector<double >&) const;
-template void ConstraintMatrix::condense<float ,BlockVector<double > >(
-    const SparseMatrix<float >&, const BlockVector<double >&, SparseMatrix<float > &, BlockVector<double >&) const;
-
-template void ConstraintMatrix::condense<double ,Vector<double > >(SparseMatrix<double >&, Vector<double >&) const;
-template void ConstraintMatrix::condense<double ,BlockVector<double > >(BlockSparseMatrix<double >&, BlockVector<double >&) const;
-template void ConstraintMatrix::condense<double ,Vector<double > >(
-    const SparseMatrix<double >&, const Vector<double >&, SparseMatrix<double > &, Vector<double >&) const;
-template void ConstraintMatrix::condense<double ,BlockVector<double > >(
-    const SparseMatrix<double >&, const BlockVector<double >&, SparseMatrix<double > &, BlockVector<double >&) const;
-
-template void ConstraintMatrix::condense<long double ,Vector<double > >(SparseMatrix<long double >&, Vector<double >&) const;
-template void ConstraintMatrix::condense<long double ,BlockVector<double > >(BlockSparseMatrix<long double >&, BlockVector<double >&) const;
-template void ConstraintMatrix::condense<long double ,Vector<double > >(
-    const SparseMatrix<long double >&, const Vector<double >&, SparseMatrix<long double > &, Vector<double >&) const;
-template void ConstraintMatrix::condense<long double ,BlockVector<double > >(
-    const SparseMatrix<long double >&, const BlockVector<double >&, SparseMatrix<long double > &, BlockVector<double >&) const;
-
-template void ConstraintMatrix::condense<float ,Vector<long double > >(SparseMatrix<float >&, Vector<long double >&) const;
-template void ConstraintMatrix::condense<float ,BlockVector<long double > >(BlockSparseMatrix<float >&, BlockVector<long double >&) const;
-template void ConstraintMatrix::condense<float ,Vector<long double > >(
-    const SparseMatrix<float >&, const Vector<long double >&, SparseMatrix<float > &, Vector<long double >&) const;
-template void ConstraintMatrix::condense<float ,BlockVector<long double > >(
-    const SparseMatrix<float >&, const BlockVector<long double >&, SparseMatrix<float > &, BlockVector<long double >&) const;
-
-template void ConstraintMatrix::condense<double ,Vector<long double > >(SparseMatrix<double >&, Vector<long double >&) const;
-template void ConstraintMatrix::condense<double ,BlockVector<long double > >(BlockSparseMatrix<double >&, BlockVector<long double >&) const;
-template void ConstraintMatrix::condense<double ,Vector<long double > >(
-    const SparseMatrix<double >&, const Vector<long double >&, SparseMatrix<double > &, Vector<long double >&) const;
-template void ConstraintMatrix::condense<double ,BlockVector<long double > >(
-    const SparseMatrix<double >&, const BlockVector<long double >&, SparseMatrix<double > &, BlockVector<long double >&) const;
-
-template void ConstraintMatrix::condense<long double ,Vector<long double > >(SparseMatrix<long double >&, Vector<long double >&) const;
-template void ConstraintMatrix::condense<long double ,BlockVector<long double > >(BlockSparseMatrix<long double >&, BlockVector<long double >&) const;
-template void ConstraintMatrix::condense<long double ,Vector<long double > >(
-    const SparseMatrix<long double >&, const Vector<long double >&, SparseMatrix<long double > &, Vector<long double >&) const;
-template void ConstraintMatrix::condense<long double ,BlockVector<long double > >(
-    const SparseMatrix<long double >&, const BlockVector<long double >&, SparseMatrix<long double > &, BlockVector<long double >&) const;
-
diff --git a/deal.II/source/lac/constraint_matrix.inst.in b/deal.II/source/lac/constraint_matrix.inst.in
new file mode 100644 (file)
index 0000000..b457cfb
--- /dev/null
@@ -0,0 +1,59 @@
+for (S: REAL_SCALARS; T : DEAL_II_VEC_TEMPLATES)
+  {
+    template void ConstraintMatrix::condense<T<S> >(const T<S> &, T<S> &) const;
+    template void ConstraintMatrix::condense<T<S> >(T<S> &vec) const;
+    template void ConstraintMatrix::distribute_local_to_global<T<S> > (
+      const Vector<double>&, const std::vector<unsigned int> &, T<S> &, const FullMatrix<double>&) const;
+    template void ConstraintMatrix::distribute<T<S> >(const T<S> &, T<S> &) const;
+    template void ConstraintMatrix::distribute<T<S> >(T<S> &) const;
+    template void ConstraintMatrix::set_zero<T<S> >(T<S> &) const;
+  }
+
+
+for (S: REAL_SCALARS; T : DEAL_II_VEC_TEMPLATES)
+  {
+    template void ConstraintMatrix::condense<parallel::distributed::T<S> >(const parallel::distributed::T<S> &, parallel::distributed::T<S> &) const;
+    template void ConstraintMatrix::condense<parallel::distributed::T<S> >(parallel::distributed::T<S> &vec) const;
+    template void ConstraintMatrix::distribute_local_to_global<parallel::distributed::T<S> > (
+      const Vector<double>&, const std::vector<unsigned int> &, parallel::distributed::T<S> &, const FullMatrix<double>&) const;
+    template void ConstraintMatrix::distribute<parallel::distributed::T<S> >(const parallel::distributed::T<S> &, parallel::distributed::T<S> &) const;
+    template void ConstraintMatrix::distribute<parallel::distributed::T<S> >(parallel::distributed::T<S> &) const;
+    template void ConstraintMatrix::set_zero<parallel::distributed::T<S> >(parallel::distributed::T<S> &) const;
+  }
+
+
+for (V: EXTERNAL_SEQUENTIAL_VECTORS)
+  {
+    template void ConstraintMatrix::condense<V >(const V&, V&) const;
+    template void ConstraintMatrix::condense<V >(V&vec) const;
+    template void ConstraintMatrix::distribute_local_to_global<V > (
+      const Vector<double>&, const std::vector<unsigned int> &, V&, const FullMatrix<double>&) const;
+    template void ConstraintMatrix::distribute<V >(const V&, V&) const;
+    template void ConstraintMatrix::distribute<V >(V&) const;
+    template void ConstraintMatrix::set_zero<V >(V&) const;
+  }
+
+
+for (V: EXTERNAL_DISTRIBUTED_VECTORS)
+  {
+    template void ConstraintMatrix::set_zero<V >(V&) const;
+  }
+
+
+for (S : REAL_SCALARS)
+  {
+    template void ConstraintMatrix::condense<S>(const SparseMatrix<S>&, SparseMatrix<S> &) const;
+    template void ConstraintMatrix::condense<S>(SparseMatrix<S>&) const;
+    template void ConstraintMatrix::condense<S>(BlockSparseMatrix<S>&) const;
+  }
+
+
+for (S1 : REAL_SCALARS; S2 : REAL_SCALARS)
+  {
+    template void ConstraintMatrix::condense<S1,Vector<S2> >(SparseMatrix<S1>&, Vector<S2>&) const;
+    template void ConstraintMatrix::condense<S1,BlockVector<S2> >(BlockSparseMatrix<S1>&, BlockVector<S2>&) const;
+    template void ConstraintMatrix::condense<S1,Vector<S2> >(
+        const SparseMatrix<S1>&, const Vector<S2>&, SparseMatrix<S1> &, Vector<S2>&) const;
+    template void ConstraintMatrix::condense<S1,BlockVector<S2> >(
+        const SparseMatrix<S1>&, const BlockVector<S2>&, SparseMatrix<S1> &, BlockVector<S2>&) const;
+  }
diff --git a/deal.II/source/lac/constraint_matrix.inst.pl b/deal.II/source/lac/constraint_matrix.inst.pl
deleted file mode 100644 (file)
index 7e47773..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-######################################################################
-# $Id$
-######################################################################
-#
-# Copyright (C) 2011, 2012 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.
-#
-######################################################################
-
-use strict;
-use warnings;
-use dealiitemplates;
-
-my $vector_functions = <<'EOT'
-
-template void ConstraintMatrix::condense<V1 >(const V1 &, V1&) const;
-template void ConstraintMatrix::condense<V1 >(V1 &vec) const;
-template void ConstraintMatrix::distribute_local_to_global<V1 > (
-    const Vector<double>&, const std::vector<unsigned int> &, V1&, const FullMatrix<double>&) const;
-template void ConstraintMatrix::distribute<V1 >(const V1 &, V1&) const;
-template void ConstraintMatrix::distribute<V1 >(V1 &) const;
-EOT
-    ;
-
-my $vector_functions_also_parallel = <<'EOT'
-
-template void ConstraintMatrix::set_zero<V1 >(V1&) const;
-
-EOT
-    ;
-
-my $scalar_functions = <<'EOT'
-
-template void ConstraintMatrix::condense<S1>(const SparseMatrix<S1>&, SparseMatrix<S1> &) const;
-template void ConstraintMatrix::condense<S1>(SparseMatrix<S1>&) const;
-template void ConstraintMatrix::condense<S1>(BlockSparseMatrix<S1>&) const;
-EOT
-    ;
-
-my $scalar_scalar_functions = <<'EOT'
-template void ConstraintMatrix::condense<S1,Vector<S2> >(SparseMatrix<S1>&, Vector<S2>&) const;
-template void ConstraintMatrix::condense<S1,BlockVector<S2> >(BlockSparseMatrix<S1>&, BlockVector<S2>&) const;
-template void ConstraintMatrix::condense<S1,Vector<S2> >(
-    const SparseMatrix<S1>&, const Vector<S2>&, SparseMatrix<S1> &, Vector<S2>&) const;
-template void ConstraintMatrix::condense<S1,BlockVector<S2> >(
-    const SparseMatrix<S1>&, const BlockVector<S2>&, SparseMatrix<S1> &, BlockVector<S2>&) const;
-EOT
-    ;
-
-######################################################################
-# End of definitions, now come the loops
-######################################################################
-
-multisubst($vector_functions, ['V1'], \@sequential_vectors);
-multisubst($vector_functions, ['V1'], \@deal_parallel_vectors);
-multisubst($vector_functions_also_parallel, ['V1'], \@sequential_vectors);
-multisubst($vector_functions_also_parallel, ['V1'], \@parallel_vectors);
-multisubst($scalar_functions, ['S1'], \@real_scalars);
-multisubst($scalar_scalar_functions, ['S1','S2'], \@real_scalars, \@real_scalars);

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.