]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Rename a few arguments. Break out member functions.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 12 Feb 2006 02:33:09 +0000 (02:33 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 12 Feb 2006 02:33:09 +0000 (02:33 +0000)
git-svn-id: https://svn.dealii.org/trunk@12324 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/examples/step-20/step-20.cc

index f67e11a3f09847d85f20c5f42013d69ca97da92b..90e7a479e682c5d8f6308318db9ed30431ce96cd 100644 (file)
@@ -742,35 +742,31 @@ void MixedLaplaceProblem<dim>::assemble_system ()
 class InverseMatrix : public Subscriptor
 {
   public:
-    InverseMatrix (const SparseMatrix<double> &matrix);
+    InverseMatrix (const SparseMatrix<double> &m);
 
     void vmult (Vector<double>       &dst,
                 const Vector<double> &src) const;
 
   private:
-    const SmartPointer<const SparseMatrix<double> > mass_matrix;
+    const SmartPointer<const SparseMatrix<double> > matrix;
 
     mutable GrowingVectorMemory<> vector_memory;    
 };
 
 
-InverseMatrix::InverseMatrix (const SparseMatrix<double> &matrix)
+InverseMatrix::InverseMatrix (const SparseMatrix<double> &m)
                 :
-                mass_matrix (&matrix)
+                matrix (&m)
 {}
 
 
 void InverseMatrix::vmult (Vector<double>       &dst,
                            const Vector<double> &src) const
 {
-  SolverControl solver_control (mass_matrix->m(), 1e-8*src.l2_norm());
+  SolverControl solver_control (matrix->m(), 1e-8*src.l2_norm());
   SolverCG<>    cg (solver_control, vector_memory);
 
-  cg.solve (*mass_matrix, dst, src, PreconditionIdentity());        
-
-  std::cout << "     " << solver_control.last_step()
-            << " inner iterations needed to obtain convergence."
-            << std::endl;
+  cg.solve (*matrix, dst, src, PreconditionIdentity());        
 }
 
 
@@ -779,21 +775,10 @@ class SchurComplement
 {
   public:
     SchurComplement (const BlockSparseMatrix<double> &A,
-                     const InverseMatrix              &Minv)
-                    :
-                    system_matrix (&A),
-                    m_inverse (&Minv),
-                    tmp1 (A.block(0,0).m()),
-                    tmp2 (A.block(0,0).m())
-      {}
+                     const InverseMatrix             &Minv);
 
     void vmult (Vector<double>       &dst,
-                const Vector<double> &src) const
-      {
-        system_matrix->block(0,1).vmult (tmp1, src);
-        m_inverse->vmult (tmp2, tmp1);
-        system_matrix->block(1,0).vmult (dst, tmp2);
-      }
+                const Vector<double> &src) const;
 
   private:
     const SmartPointer<const BlockSparseMatrix<double> > system_matrix;
@@ -803,6 +788,24 @@ class SchurComplement
 };
 
 
+SchurComplement::SchurComplement (const BlockSparseMatrix<double> &A,
+                                  const InverseMatrix             &Minv)
+                :
+                system_matrix (&A),
+                m_inverse (&Minv),
+                tmp1 (A.block(0,0).m()),
+                tmp2 (A.block(0,0).m())
+{}
+
+
+void SchurComplement::vmult (Vector<double>       &dst,
+                             const Vector<double> &src) const
+{
+  system_matrix->block(0,1).vmult (tmp1, src);
+  m_inverse->vmult (tmp2, tmp1);
+  system_matrix->block(1,0).vmult (dst, tmp2);
+}
+
 
 template <int dim>
 void MixedLaplaceProblem<dim>::solve () 

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.