]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
remove PreconditionUMFPACK
authorguido <guido@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 10 May 2005 07:05:49 +0000 (07:05 +0000)
committerguido <guido@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 10 May 2005 07:05:49 +0000 (07:05 +0000)
git-svn-id: https://svn.dealii.org/trunk@10658 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/sparse_direct.h
deal.II/lac/source/sparse_direct.cc

index a20e9325b2c79ec4bc48a165d2e72448d2ad0da6..4c1f2f83a2f0e33640df70b477f4d7b86f97052d 100644 (file)
@@ -1005,6 +1005,15 @@ class SparseDirectMA47 : public Subscriptor
  * direct sparse LU factorization. Matrices may have symmetric or unsymmetrix
  * sparsity patterns, and may have unsymmetric entries.
  *
+ * This matrix class implements the usual interface of
+ * preconditioners, that is a function initialize(const
+ * SparseMatrix<double>&matrix,const AdditionalData) for initalizing
+ * and the whole set of vmult() functions common to all
+ * matrices. Implemented here are only vmult() and vmult_add(), which
+ * perform multiplication with the inverse matrix. Furthermore, this
+ * class provides an older interface, consisting of the functions
+ * factorize() and solve(). Both interfaces are interchangeable.
+ *
  * @note This class only exists if support for <a
  * href="http://www.cise.ufl.edu/research/sparse/umfpack">UMFPACK</a> was
  * enabled during configure and if the <a
@@ -1020,9 +1029,18 @@ class SparseDirectMA47 : public Subscriptor
  *
  * @author Wolfgang Bangerth, 2004
  */
-class SparseDirectUMFPACK : public virtual Subscriptor
+class SparseDirectUMFPACK : public Subscriptor
 {
   public:
+                                    /**
+                                     * Dummy class needed for the
+                                     * usual initalization interface
+                                     * of preconditioners.
+                                     */
+    class AdditionalData
+    {};
+    
+    
                                     /**
                                      * Constructor. See the
                                      * documentation of this class
@@ -1073,6 +1091,41 @@ class SparseDirectUMFPACK : public virtual Subscriptor
                                      */
     void factorize (const SparseMatrix<double> &matrix);
 
+                                    /**
+                                     * Initialize memory and call
+                                     * SparseDirectUMFPACK::factorize.
+                                     */
+    void initialize(const SparseMatrix<double> &matrix,
+                   const AdditionalData = AdditionalData());
+    
+                                    /**
+                                     * Preconditioner interface
+                                     * function. Given the source
+                                     * vector, returns the
+                                     * approximated solution of <i>Ax
+                                     * = b</i>.
+                                     */
+    void vmult (Vector<double>&, const Vector<double>&) const;
+
+                                    /**
+                                     * Not implemented but necessary
+                                     * for compiling.
+                                     */
+    void Tvmult (Vector<double>&, const Vector<double>&) const;
+    
+                                    /**
+                                     * Same as vmult(), but adding to
+                                     * the previous solution. Not
+                                     * implemented yet.
+                                     */
+    void vmult_add (Vector<double>&, const Vector<double>&) const;
+
+                                    /**
+                                     * Not implemented but necessary
+                                     * for compiling.
+                                     */
+    void Tvmult_add (Vector<double>&, const Vector<double>&) const;
+
                                     /**
                                      * Solve for a certain right hand
                                      * side vector. This function may
@@ -1157,61 +1210,6 @@ class SparseDirectUMFPACK : public virtual Subscriptor
 };
 
 
-/**
- * Wrapper for SparseDirectUMFPACK, implementing the usual
- * preconditioner interface with functions initialize() and vmult().
- */
-class PreconditionUMFPACK : public virtual Subscriptor,
-                           private SparseDirectUMFPACK
-{
-  public:
-                                    /**
-                                     * Dummy class needed for the
-                                     * usual initalization interface
-                                     * of preconditioners.
-                                     */
-    class AdditionalData
-    {};
-    
-    
-                                    /**
-                                     * Initialize memory and call
-                                     * SparseDirectUMFPACK::factorize.
-                                     */
-    void initialize(const SparseMatrix<double> &matrix,
-                   const AdditionalData = AdditionalData());
-    
-                                    /**
-                                     * Preconditioner interface
-                                     * function. Given the source
-                                     * vector, returns the
-                                     * approximated solution of <i>Ax
-                                     * = b</i>.
-                                     */
-    void vmult (Vector<double>&, const Vector<double>&) const;
-
-                                    /**
-                                     * Not implemented but necessary
-                                     * for compiling.
-                                     */
-    void Tvmult (Vector<double>&, const Vector<double>&) const;
-    
-                                    /**
-                                     * Same as vmult(), but adding to
-                                     * the previous solution. Not
-                                     * implemented yet.
-                                     */
-    void vmult_add (Vector<double>&, const Vector<double>&) const;
-
-                                    /**
-                                     * Not implemented but necessary
-                                     * for compiling.
-                                     */
-    void Tvmult_add (Vector<double>&, const Vector<double>&) const;
-};
-
-
-
 /*@}*/
 
 
index 68b5dc1a6a400448568e7995092485b78e54df4a..fa1960aebc8659f647bf0b641e0a3460edcbddcc 100644 (file)
@@ -1885,7 +1885,7 @@ SparseDirectUMFPACK::solve (const SparseMatrix<double> &,
 
 
 void
-PreconditionUMFPACK::initialize (const SparseMatrix<double>& M,
+SparseDirectUMFPACK::initialize (const SparseMatrix<double>& M,
                                 const AdditionalData)
 {
   this->factorize(M);
@@ -1893,7 +1893,7 @@ PreconditionUMFPACK::initialize (const SparseMatrix<double>& M,
 
 
 void
-PreconditionUMFPACK::vmult (
+SparseDirectUMFPACK::vmult (
   Vector<double>&       dst,
   const Vector<double>& src) const
 {
@@ -1903,7 +1903,7 @@ PreconditionUMFPACK::vmult (
 
 
 void
-PreconditionUMFPACK::Tvmult (
+SparseDirectUMFPACK::Tvmult (
   Vector<double>&,
   const Vector<double>&) const
 {
@@ -1912,7 +1912,7 @@ PreconditionUMFPACK::Tvmult (
 
 
 void
-PreconditionUMFPACK::vmult_add (
+SparseDirectUMFPACK::vmult_add (
   Vector<double>&,
   const Vector<double>&) const
 {
@@ -1921,7 +1921,7 @@ PreconditionUMFPACK::vmult_add (
 
 
 void
-PreconditionUMFPACK::Tvmult_add (
+SparseDirectUMFPACK::Tvmult_add (
   Vector<double>&,
   const Vector<double>&) const
 {

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.