]> https://gitweb.dealii.org/ - dealii.git/commitdiff
More MATRIX -> MatrixType
authorDavid Wells <wellsd2@rpi.edu>
Sun, 1 Nov 2015 21:46:06 +0000 (16:46 -0500)
committerDavid Wells <wellsd2@rpi.edu>
Thu, 12 Nov 2015 19:26:43 +0000 (14:26 -0500)
60 files changed:
source/lac/sparse_direct.cc
tests/bits/deal_solver_04.cc
tests/bits/deal_solver_05.cc
tests/integrators/assembler_simple_matrix_01.cc
tests/integrators/assembler_simple_matrix_01m.cc
tests/integrators/assembler_simple_mgmatrix_01.cc
tests/lac/linear_operator_08.cc
tests/lac/solver.cc
tests/lac/solver_memorytest.cc
tests/lac/solver_monitor.cc
tests/lac/solver_monitor_disconnect.cc
tests/lac/solver_relaxation_01.cc
tests/lac/solver_relaxation_02.cc
tests/lac/solver_relaxation_03.cc
tests/lac/solver_selector_01.cc
tests/lac/solver_selector_02.cc
tests/lac/solver_signals.cc
tests/lac/sparse_matrices.cc
tests/lac/testmatrix.h
tests/lapack/solver_cg.cc
tests/matrix_free/parallel_multigrid.cc
tests/multigrid/smoother_block.cc
tests/petsc/deal_solver_01.cc
tests/petsc/deal_solver_02.cc
tests/petsc/deal_solver_03.cc
tests/petsc/deal_solver_04.cc
tests/petsc/deal_solver_05.cc
tests/petsc/solver_01.cc
tests/petsc/solver_02.cc
tests/petsc/solver_03.cc
tests/petsc/solver_03_mf.cc
tests/petsc/solver_03_precondition_boomeramg.cc
tests/petsc/solver_03_precondition_boomeramg_symmetric.cc
tests/petsc/solver_03_precondition_eisenstat.cc
tests/petsc/solver_03_precondition_icc.cc
tests/petsc/solver_03_precondition_ilu.cc
tests/petsc/solver_03_precondition_lu.cc
tests/petsc/solver_03_precondition_parasails.cc
tests/petsc/solver_03_precondition_sor.cc
tests/petsc/solver_03_precondition_ssor.cc
tests/petsc/solver_04.cc
tests/petsc/solver_05.cc
tests/petsc/solver_06.cc
tests/petsc/solver_07.cc
tests/petsc/solver_08.cc
tests/petsc/solver_09.cc
tests/petsc/solver_10.cc
tests/petsc/solver_11.cc
tests/petsc/solver_12.cc
tests/petsc/solver_13.cc
tests/trilinos/deal_solver_01.cc
tests/trilinos/deal_solver_02.cc
tests/trilinos/deal_solver_03.cc
tests/trilinos/deal_solver_04.cc
tests/trilinos/deal_solver_05.cc
tests/trilinos/deal_solver_06.cc
tests/trilinos/solver_03.cc
tests/trilinos/solver_05.cc
tests/trilinos/solver_07.cc
tests/umfpack/umfpack_04.cc

index a8641c30c5a3c905628a203e22ffa6883673350f..225b8d82d348a92e230bc784485e06f823ee5da6 100644 (file)
@@ -489,19 +489,19 @@ SparseDirectUMFPACK::n () const
 
 
 // explicit instantiations for SparseMatrixUMFPACK
-#define InstantiateUMFPACK(MATRIX)                        \
-  template                                                \
-  void SparseDirectUMFPACK::factorize (const MATRIX &);   \
-  template                                                \
-  void SparseDirectUMFPACK::solve (const MATRIX   &,      \
-                                   Vector<double> &,      \
-                                   bool);                 \
-  template                                                \
-  void SparseDirectUMFPACK::solve (const MATRIX   &,      \
-                                   BlockVector<double> &, \
-                                   bool);                 \
-  template                                                \
-  void SparseDirectUMFPACK::initialize (const MATRIX &,   \
+#define InstantiateUMFPACK(MatrixType)                      \
+  template                                                  \
+  void SparseDirectUMFPACK::factorize (const MatrixType &); \
+  template                                                  \
+  void SparseDirectUMFPACK::solve (const MatrixType &,      \
+                                   Vector<double> &,        \
+                                   bool);                   \
+  template                                                  \
+  void SparseDirectUMFPACK::solve (const MatrixType &,      \
+                                   BlockVector<double> &,   \
+                                   bool);                   \
+  template                                                  \
+  void SparseDirectUMFPACK::initialize (const MatrixType &, \
                                         const AdditionalData);
 
 InstantiateUMFPACK(SparseMatrix<double>)
index 4539b61f4cd7d6fe885fc633d85a43c7a1a1750e..c37e56426234641fff16a7691acf60c4e17ed052 100644 (file)
 #include <deal.II/lac/precondition.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 8c9268b8c84d5bee7c3316fd6493c2d617887c69..edfc14e2a2ab9f1e1418a4b8a5a78bb59c7bba06 100644 (file)
 #include <deal.II/lac/precondition.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 92629f7b66fc27f3102c49c384f522e0beab8682..8eca5a720da392816ecb99f1b09f09e7c57ba9a2 100644 (file)
@@ -35,8 +35,8 @@
 
 using namespace dealii;
 
-template <class DOFINFO, class MATRIX>
-void test(DOFINFO &info, MeshWorker::Assembler::MatrixSimple<MATRIX> &ass)
+template <class DOFINFO, typename MatrixType>
+void test(DOFINFO &info, MeshWorker::Assembler::MatrixSimple<MatrixType> &ass)
 {
   ass.initialize_info(info, false);
   deallog << "No faces" << std::endl;
index a23422ea03af7cf776c27fff4e965da3c6dec507..4132def1f014447f1775a1c1a104e322426ccb58 100644 (file)
@@ -35,8 +35,8 @@
 
 using namespace dealii;
 
-template <class DOFINFO, class MATRIX>
-void test(DOFINFO &info, MeshWorker::Assembler::MatrixSimple<MATRIX> &ass)
+template <class DOFINFO, typename MatrixType>
+void test(DOFINFO &info, MeshWorker::Assembler::MatrixSimple<MatrixType> &ass)
 {
   ass.initialize_info(info, false);
   deallog << "No faces" << std::endl;
index 5cbdc7579a17d3f56dabbced4d7944584ba8901b..8b2d9acc733d318e2b17a58e070cd6175ee17bbb 100644 (file)
@@ -35,8 +35,8 @@
 
 using namespace dealii;
 
-template <class DOFINFO, class MATRIX>
-void test(DOFINFO &info, MeshWorker::Assembler::MGMatrixSimple<MATRIX> &ass)
+template <class DOFINFO, typename MatrixType>
+void test(DOFINFO &info, MeshWorker::Assembler::MGMatrixSimple<MatrixType> &ass)
 {
   ass.initialize_info(info, false);
   deallog << "No faces" << std::endl;
index d3c5526097f70cff2dc09f133c325667800fd513..67214e79976bf11eba03ae75bcef2fa20cec340d 100644 (file)
 using namespace dealii;
 
 
-template<class PRECONDITIONER, class MATRIX, typename VectorType,
+template<class PRECONDITIONER, typename MatrixType, typename VectorType,
          class ADDITIONAL_DATA = typename PRECONDITIONER::AdditionalData>
 void
-test_preconditioner (const MATRIX &A,
+test_preconditioner (const MatrixType &A,
                      const VectorType &b,
                      const ADDITIONAL_DATA &data = ADDITIONAL_DATA())
 {
index b5da2d654162c33c93114a6440ce8783a908e197..d6573c9ed0781acbb2f9988f39a4852abe864c56 100644 (file)
 #include <deal.II/lac/solver_qmrs.h>
 #include <deal.II/lac/precondition.h>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER             &solver,
-             const MATRIX       &A,
+             const MatrixType   &A,
              VectorType         &u,
              VectorType         &f,
              const PRECONDITION &P)
@@ -53,10 +53,10 @@ check_solve (SOLVER             &solver,
     }
 }
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_Tsolve (SOLVER             &solver,
-              const MATRIX       &A,
+              const MatrixType   &A,
               VectorType         &u,
               VectorType         &f,
               const PRECONDITION &P)
index 935afb87429ed48b685c59f18f5dd2dce7cc8b7f..d4898feddfa0a1e89574323dbd38a8eaaaf313a2 100644 (file)
 #include <deal.II/lac/solver_qmrs.h>
 #include <deal.II/lac/precondition.h>
 
-template<class SOLVER, class MATRIX, typename VectorType>
+template<class SOLVER, typename MatrixType, typename VectorType>
 void
-check_solve (const MATRIX &A,
-             VectorType &u,
-             VectorType &f,
+check_solve (const MatrixType &A,
+             VectorType       &u,
+             VectorType       &f,
              const typename SOLVER::AdditionalData &additional_data = typename SOLVER::AdditionalData())
 {
   GrowingVectorMemory<> mem;
index b2a888f2dc7167f061b5bb6223d817e4fbeed86a..95117e362d511de08c8684b95beb10838c354c4d 100644 (file)
@@ -56,10 +56,10 @@ SolverControl::State monitor_mean (const unsigned int    iteration,
 
 
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER             &solver,
-             const MATRIX       &A,
+             const MatrixType   &A,
              VectorType         &u,
              VectorType         &f,
              const PRECONDITION &P)
index e95b7d7fd8e24ea7b2e1e408a2c39f2922617851..5f24c537ef045469ca41851bc30effa5d00e384a 100644 (file)
@@ -57,10 +57,10 @@ SolverControl::State monitor_mean (const unsigned int    iteration,
 
 
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER             &solver,
-             const MATRIX       &A,
+             const MatrixType   &A,
              VectorType         &u,
              VectorType         &f,
              const PRECONDITION &P)
index dbbe821f00b2ae4c690f22a26dd83e46d234814a..ed65e00f4a6e6f57149f4e70827b442497dcc80c 100644 (file)
 #include <deal.II/lac/solver_relaxation.h>
 #include <deal.II/lac/precondition.h>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 double
 check_solve (SOLVER             &solver,
-             const MATRIX       &A,
+             const MatrixType   &A,
              VectorType         &u,
              VectorType         &f,
              const PRECONDITION &P)
index 785c02deffb3dedca95f24445a3266ee831b118b..6dc2f2488d662f12c318313dcb25c1387fb42ed1 100644 (file)
 #include <deal.II/lac/precondition_block.h>
 #include <deal.II/lac/relaxation_block.h>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 double
 check_solve (SOLVER             &solver,
-             const MATRIX       &A,
+             const MatrixType   &A,
              VectorType         &u,
              VectorType         &f,
              const PRECONDITION &P)
index e332339d16da36355d498d98b38403f2641b907d..732025f8cf2fee034af114ed4274d0f7d57f6407 100644 (file)
 #include <deal.II/lac/precondition_block.h>
 #include <deal.II/lac/relaxation_block.h>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 double
 check_solve (SOLVER             &solver,
-             const MATRIX       &A,
+             const MatrixType   &A,
              VectorType         &u,
              VectorType         &f,
              const PRECONDITION &P)
index c3a5aab4f37ddbfb46aa67b4eaf71800d894fe9f..53e4249e44b49012d9ffeac46ca37df752c2f262 100644 (file)
@@ -26,9 +26,9 @@
 
 #include <fstream>
 
-template <class MATRIX, typename VectorType>
+template <typename MatrixType, typename VectorType>
 void
-check (const MATRIX &A, const VectorType &f)
+check (const MatrixType &A, const VectorType &f)
 {
   std::vector<std::string> names;
   names.push_back("cg");
index b92608e1993fcd9988bc6c113839773f9b6b031e..413eff8baba9506ccb1ab6f5fc03130a1e3e1aa1 100644 (file)
@@ -41,9 +41,9 @@ public:
 
 
 
-template <class MATRIX, typename VectorType>
+template <typename MatrixType, typename VectorType>
 void
-check(const MATRIX &A, const VectorType &f)
+check(const MatrixType &A, const VectorType &f)
 {
   std::vector<std::string> names;
   names.push_back("cg");
index 695ec589ae7bfb988af1e6a28438f38622ed92be..0a3403d57703dddae7b7941d5453218c4bbe1c56 100644 (file)
@@ -56,10 +56,10 @@ void output_eigenvalues(const std::vector<NUMBER> &eigenvalues,const std::string
   deallog << std::endl;
 }
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER             &solver,
-            const MATRIX       &A,
+            const MatrixType   &A,
             VectorType         &u,
             VectorType         &f,
             const PRECONDITION &P)
index 0a9ec57e3f4ad7592738ee7ee68ef34669834f80..e90a00b19b18fb19218e48484f5e37aea2953854 100644 (file)
   deallog.pop(); \
   residuals.push_back(control.last_value())
 
-template<class MATRIX>
+template<typename MatrixType>
 void
-check_vmult_quadratic(std::vector<double> &residuals,
-                      const MATRIX &A,
-                      const char *prefix)
+check_vmult_quadratic (std::vector<double> &residuals,
+                       const MatrixType    &A,
+                       const char          *prefix)
 {
   deallog.push(prefix);
 
@@ -60,7 +60,7 @@ check_vmult_quadratic(std::vector<double> &residuals,
   const types::global_dof_index block_size = (types::global_dof_index) std::sqrt(A.n()+.3);
   const unsigned int n_blocks = A.n()/block_size;
 
-  typename PreconditionBlock<MATRIX, float>::AdditionalData
+  typename PreconditionBlock<MatrixType, float>::AdditionalData
   data(block_size, 1.2);
   std::vector<types::global_dof_index> perm(A.n());
   std::vector<types::global_dof_index> iperm(A.n());
@@ -72,22 +72,22 @@ check_vmult_quadratic(std::vector<double> &residuals,
       }
 
   PreconditionIdentity identity;
-  PreconditionJacobi<MATRIX> jacobi;
+  PreconditionJacobi<MatrixType> jacobi;
   jacobi.initialize(A, .5);
-  PreconditionSOR<MATRIX> sor;
+  PreconditionSOR<MatrixType> sor;
   sor.initialize(A, 1.2);
-//   PreconditionPSOR<MATRIX> psor;
+//   PreconditionPSOR<MatrixType> psor;
 //   psor.initialize(A, perm, iperm, 1.2);
-  PreconditionSSOR<MATRIX> ssor;
+  PreconditionSSOR<MatrixType> ssor;
   ssor.initialize(A, 1.2);
 
-  PreconditionBlockJacobi<MATRIX, float> block_jacobi;
+  PreconditionBlockJacobi<MatrixType, float> block_jacobi;
   block_jacobi.initialize(A, data);
-  PreconditionBlockSSOR<MATRIX, float> block_ssor;
+  PreconditionBlockSSOR<MatrixType, float> block_ssor;
   block_ssor.initialize(A, data);
-  PreconditionBlockSOR<MATRIX, float> block_sor;
+  PreconditionBlockSOR<MatrixType, float> block_sor;
   block_sor.initialize(A, data);
-  PreconditionBlockSOR<MATRIX, float> block_psor;
+  PreconditionBlockSOR<MatrixType, float> block_psor;
   block_psor.set_permutation(perm, iperm);
   block_psor.initialize(A, data);
 
@@ -160,18 +160,18 @@ check_vmult_quadratic(std::vector<double> &residuals,
 }
 
 
-template <class MATRIX>
+template <typename MatrixType>
 void
-check_iterator (const MATRIX &A)
+check_iterator (const MatrixType &A)
 {
 //  deallog.push("it");
 
-  typename MATRIX::const_iterator E = A.end();
+  typename MatrixType::const_iterator E = A.end();
 
   if (A.m() < 10)
     for (unsigned int r=0; r<A.m(); ++r)
       {
-        typename MATRIX::const_iterator b = A.begin(r);
+        typename MatrixType::const_iterator b = A.begin(r);
         if (b == E)
           deallog << "Final" << std::endl;
         else
@@ -180,7 +180,7 @@ check_iterator (const MATRIX &A)
                   << '\t' << b->column()
                   << '\t' << b->value()
                   << std::endl;
-        typename MATRIX::const_iterator e = A.end(r);
+        typename MatrixType::const_iterator e = A.end(r);
         if (e == E)
           deallog << "Final" << std::endl;
         else
@@ -188,17 +188,17 @@ check_iterator (const MATRIX &A)
                   << std::endl;
         deallog << "cols:";
 
-        for (typename MATRIX::const_iterator i=b; i!=e; ++i)
+        for (typename MatrixType::const_iterator i=b; i!=e; ++i)
           deallog << '\t' << ',' << i->column();
         deallog << std::endl;
       }
-  for (typename MATRIX::const_iterator i = A.begin(); i!= A.end(); ++i)
+  for (typename MatrixType::const_iterator i = A.begin(); i!= A.end(); ++i)
     deallog << '\t' << i->row()
             << '\t' << i->column()
             << '\t' << i->value()
             << std::endl;
   deallog << "Repeat row 2" << std::endl;
-  for (typename MATRIX::const_iterator i = A.begin(2); i!= A.end(2); ++i)
+  for (typename MatrixType::const_iterator i = A.begin(2); i!= A.end(2); ++i)
     deallog << '\t' << i->row()
             << '\t' << i->column()
             << '\t' << i->value()
index 8f1e5dfa5dd6b20542a9446ebf47060e0158b716..54cb5e6b20bec1d27e3dab3c7820a8ea75986f19 100644 (file)
@@ -36,20 +36,20 @@ public:
   /**
    * Fill the matrix with values.
    */
-  template <typename MATRIX>
-  void five_point(MATRIX &, bool nonsymmetric = false) const;
+  template <typename MatrixType>
+  void five_point(MatrixType &, bool nonsymmetric = false) const;
 
   /**
    * Fill the matrix with values.
    */
-  template <typename MATRIX>
-  void nine_point(MATRIX &, bool nonsymmetric = false) const;
+  template <typename MatrixType>
+  void nine_point(MatrixType &, bool nonsymmetric = false) const;
 
   /**
    * Fill the matrix with values.
    */
-  template <typename MATRIX>
-  void upwind(MATRIX &, bool back = false) const;
+  template <typename MatrixType>
+  void upwind(MatrixType &, bool back = false) const;
 
   template <typename number>
   void gnuplot_print(std::ostream &, const Vector<number> &) const;
@@ -173,9 +173,9 @@ FDMatrix::nine_point_structure(SP &structure) const
 
 
 
-template<typename MATRIX>
+template<typename MatrixType>
 void
-FDMatrix::nine_point(MATRIX &A, bool) const
+FDMatrix::nine_point(MatrixType &A, bool) const
 {
   for (unsigned int i=0; i<=ny-2; i++)
     {
@@ -229,10 +229,10 @@ FDMatrix::nine_point(MATRIX &A, bool) const
     }
 }
 
-template<typename MATRIX>
+template<typename MatrixType>
 inline
 void
-FDMatrix::five_point(MATRIX &A, bool nonsymmetric) const
+FDMatrix::five_point(MatrixType &A, bool nonsymmetric) const
 {
   for (unsigned int i=0; i<=ny-2; i++)
     {
@@ -273,10 +273,10 @@ FDMatrix::five_point(MATRIX &A, bool nonsymmetric) const
 
 
 
-template<typename MATRIX>
+template<typename MatrixType>
 inline
 void
-FDMatrix::upwind(MATRIX &A, bool back) const
+FDMatrix::upwind(MatrixType &A, bool back) const
 {
   for (unsigned int i=0; i<=ny-2; i++)
     {
index e0ff8b84ae733e9785e3168057c1c8735a693e0b..6fd86f7f8f253f5c9d0022e9d7cd06254e1d323d 100644 (file)
 #include <deal.II/lac/solver_cg.h>
 #include <deal.II/lac/precondition.h>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER             &solver,
-             const MATRIX       &A,
+             const MatrixType   &A,
              VectorType         &u,
              VectorType         &f,
              const PRECONDITION &P)
@@ -51,10 +51,10 @@ check_solve (SOLVER             &solver,
     }
 }
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_Tsolve (SOLVER             &solver,
-              const MATRIX       &A,
+              const MatrixType   &A,
               VectorType         &u,
               VectorType         &f,
               const PRECONDITION &P)
index bb0b46328eb08bb681c575f8130b13ba88d09594..8ce6dfb96fe298b9d4ff54d39997df0c9a783b1e 100644 (file)
@@ -247,11 +247,11 @@ private:
 
 
 
-template <typename MATRIX>
+template <typename MatrixType>
 class MGTransferPrebuiltMF : public MGTransferPrebuilt<parallel::distributed::Vector<double> >
 {
 public:
-  MGTransferPrebuiltMF(const MGLevelObject<MATRIX> &laplace)
+  MGTransferPrebuiltMF(const MGLevelObject<MatrixType> &laplace)
     :
     laplace_operator (laplace)
   {};
@@ -273,18 +273,18 @@ public:
   }
 
 private:
-  const MGLevelObject<MATRIX> &laplace_operator;
+  const MGLevelObject<MatrixType> &laplace_operator;
 };
 
 
 
-template<typename MATRIX, typename Number>
+template<typename MatrixType, typename Number>
 class MGCoarseIterative : public MGCoarseGridBase<parallel::distributed::Vector<Number> >
 {
 public:
   MGCoarseIterative() {}
 
-  void initialize(const MATRIX &matrix)
+  void initialize(const MatrixType &matrix)
   {
     coarse_matrix = &matrix;
   }
@@ -298,7 +298,7 @@ public:
     solver_coarse.solve (*coarse_matrix, dst, src, PreconditionIdentity());
   }
 
-  const MATRIX *coarse_matrix;
+  const MatrixType *coarse_matrix;
 };
 
 
index d355e23ab74d8f1f965a151c940e079feb711342..dd7015f4c019b4c3adb4263f39dfea185a34b991 100644 (file)
@@ -121,12 +121,12 @@ ScalingMatrix<number>::Tvmult_add (VectorType &dst, const VectorType &src) const
 
 //----------------------------------------------------------------------//
 
-template<class MATRIX, class RELAX>
-void check_smoother(const MGLevelObject<MATRIX> &m,
+template<typename MatrixType, class RELAX>
+void check_smoother(const MGLevelObject<MatrixType> &m,
                     const MGLevelObject<RELAX> &r)
 {
   GrowingVectorMemory<BlockVector<double> > mem;
-  MGSmootherBlock<MATRIX, RELAX, double> smoother(mem);
+  MGSmootherBlock<MatrixType, RELAX, double> smoother(mem);
 
   smoother.initialize(m, r);
 
index b27301ef5ddba8e09af42c21126029be663b2f1d..9288c2ba7ebcb2b4077ecbc3792b3681b4524f8f 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 25b0b6f20e2390e83bc14b5c540ff68a9222f8b1..a14c05b22d90eaf678d7399e92350f78e4c56b0f 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 17f9d6b1b6792e61ffddbf03d9daf14c464d01a5..135450af6423e68f7d9601f4142d3a871f492e43 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 2664e59b73ee1d08ca7b11a858512c52bcf76fc9..e6445e3957a9f9cf856a2206f2d125e90f4a8eb5 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 25431fe39af3e5d246db1f97f90e590d90189bdb..140c05d79f882aeedfa6b9876240fdc64305224d 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index ffbdbc8807c7a67609abf9222114133c08ed317b..9d737150617102723ffd2bb4bed984a06f8ad809 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index cd67125cb33987b8b944ce3f457466fc57cc6c83..b6b5a3ea91e5c68138077f97ee911208c546806a 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 9b755dd4e50865deecbf5c5ee3d9be9d83512da7..1f59a77fd564066090f860608c2180980665969b 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 55035a5e666f52ae034d36662f607a05f647ad00..0d4830e4f84e020fc4f839fcef9f3130778d0161 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index c5e0027c62a81927964f7a9fd7c0b8fdeceb7936..b38ab3dc310896c1d948b42ba817e4895174b75e 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 45185e986ce5ea9169799e4e9f79313db90755aa..b8dc6220e6450fc1bbea1b35c49b0c4f51f0c135 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index e7012b8c0057194246b8d60515a2c4a558a794ae..87e4a88c0966cba8d4f1176a2c658687a9475ac5 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 18b0c2c72972e0760433363365716c5af634d691..928748450deee9ae07372b0f189568db66848798 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index c3e547d09a3d1f4bb3634acf0b5ff099fd54eeb5..b2f88152afb94f821a04aae58e41e39a1b786c8c 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index ff16420d6c86ce30e878d3e9a6f02b241a125d04..bb5f490185fc7d5248a4bae0675f4c9f2b170e87 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 4d8c6cc30825af8b4698ed3235eb437d1ebd9f7b..dc60da81192cb6786cb13e484a8437febd879639 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index d0b65f1a6a568d3f1bac1e44689ac60ff8849fd8..6981a6809390a2fe2e8b859bcdc689b9769a3c98 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 0efc13be8bd732db1268102b0164f71cbf41c1c7..7c74c68ded3c9189f2b0b658c56880fe499a5ce7 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 918a6dea254cb23c08d1722de76a2fe9607247d7..861040d33e1d4ab41fc0c448d50645bbaef721ef 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 51ee2cfcd84932b8d89f747a023f8473a8eb998a..4a545a36dad40a7b45f908b254f4606acd11a7a9 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 13ba418cc83926b60d6b2e25e6ee092b46b92f1b..c2936fd25c21f0365716d8bc55af743cee0c07ba 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 450203ac70511b19e03b3cd5b75e483140ba8907..f6ce5d2e741cfeabc5016998f03ad2687adfbaa3 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 6231bf9fe5baee558dc39e1cad9772080e61de29..be055d6900af1c606ae9e53cae83030f049c5f43 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 16ee77ca5237197725fd4252f7548368d6028c0a..537c67ebefc04f655f2dec540db99227564edef2 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 690fabdd7c7f44a0be1ac593828b4d2b8af43dd5..d81940bb01a4fa4e01fe468acd865e86251df9a9 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 958551aea67de0e68e79ae716cba06db7398e5df..4c4649b10a0068ad10a20acb48cf87ac68194299 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 9a248ce3d60251223776af738a386439c6410fd2..0c5d64f3b96b378b58d160f26823086152f5d351 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
-check_solve(SOLVER               &solver,
+check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index dd0f5ed124f8291acb0166a6a6a209875a8fd6ea..c1f17344c9f321a9d8d3e803ebc770b7334e5f76 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve(SOLVER              &solver,
             const SolverControl &solver_control,
-            const MATRIX        &A,
+            const MatrixType    &A,
             VectorType          &u,
             VectorType          &f,
             const PRECONDITION  &P)
index 65ecba6476d6de306320bfa4d31bf008baf60b9c..e2fa9b596d445acf71bd2c764f2dbe386f439a95 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index 67ac684037013543fb5286a208363094f5ee5a98..e44aadc644364d738136fa535914c0323bd12e18 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index 0f4b136d8a455adac063c16c2d0eb9ed29a71311..29eaab2da0ffdd0b5fba1ca702def38ae95e2ce0 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
-check_solve (SOLVER &solver,
+check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX &A,
-             VectorType &u,
-             VectorType &f,
-             const PRECONDITION &P)
+             const MatrixType    &A,
+             VectorType          &u,
+             VectorType          &f,
+             const PRECONDITION  &P)
 {
   deallog << "Solver type: " << typeid(solver).name() << std::endl;
 
index 044ef1ceeb7da091af4ff2ba9c6fa3eabba7e17e..094f169c06ca40a70b39d1c68530e4da6ecf999b 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index 6ebb71eef7f6107439aabcf8222ca5d9701a91d0..a617559f351df731a28207423d4aa4f5eb5160da 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index f53512a8ae0bc29490684a85fae3a21698fd14e3..8bc5610389c0efe5acb62089767c2b513c580e89 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index 300c0a235b0b405ff0f430f1d355541f108581b4..b4c138fa66df8e077edca3e98f6e9a84f09a0d02 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index 64c665545d2ebfc0395dba39dda3d286e8566e5b..17f1970d892cdb4c8ecffc467fdb5c9c73f6aced 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index 7b03471878db77c31c6feb639525432c7cca2f91..4777b9e381bcb5f7f09fc0854d42932c8122b358 100644 (file)
 #include <deal.II/lac/vector_memory.h>
 #include <typeinfo>
 
-template<class SOLVER, class MATRIX, typename VectorType, class PRECONDITION>
+template<class SOLVER, typename MatrixType, typename VectorType, class PRECONDITION>
 void
 check_solve (SOLVER              &solver,
              const SolverControl &solver_control,
-             const MATRIX        &A,
+             const MatrixType    &A,
              VectorType          &u,
              VectorType          &f,
              const PRECONDITION  &P)
index 51ca7d08af6ae106fc3150921dea95dc0b80fb79..d22641a7db0f6ccf3dce762db27930f30fa5c9ab 100644 (file)
 #include <deal.II/numerics/vector_tools.h>
 #include <deal.II/numerics/matrix_tools.h>
 
-template <int dim, typename MATRIX, typename VectorType>
-void assemble_laplace (MATRIX &B, VectorType &bb, DoFHandler<dim> &dof_handler, FiniteElement<dim> &fe)
+template <int dim, typename MatrixType, typename VectorType>
+void assemble_laplace (MatrixType         &B,
+                       VectorType         &bb,
+                       DoFHandler<dim>    &dof_handler,
+                       FiniteElement<dim> &fe)
 {
   QGauss<dim>  quadrature_formula(2);
   FEValues<dim> fe_values (fe, quadrature_formula,

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.