]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
operator() and check for division by 0 in SparseILU
authorguido <guido@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 21 Jun 1999 15:40:30 +0000 (15:40 +0000)
committerguido <guido@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 21 Jun 1999 15:40:30 +0000 (15:40 +0000)
git-svn-id: https://svn.dealii.org/trunk@1426 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/sparse_ilu.h
deal.II/lac/include/lac/sparse_ilu.templates.h

index 8b0dfd6bb5f7bf6445a5a8cfbd52b80333c41ebf..4666a03683bebd950fc652202a6c2e40496291d8 100644 (file)
@@ -170,6 +170,13 @@ class SparseILU : protected SparseMatrix<number>
     void apply_decomposition (Vector<somenumber>       &dst,
                              const Vector<somenumber> &src) const;
 
+                                    /**
+                                     * Same as #apply_decomposition#, format for LAC.
+                                     */
+    template <typename somenumber>
+    void operator() (Vector<somenumber>       &dst,
+                    const Vector<somenumber> &src) const;
+
                                     /**
                                      * Exception
                                      */
@@ -190,7 +197,14 @@ class SparseILU : protected SparseMatrix<number>
                    << " is not greater or equal than zero!");
 };
 
-
+template <typename number>
+template <typename somenumber>
+void
+SparseILU<number>::operator() (Vector<somenumber>       &dst,
+                              const Vector<somenumber> &src) const
+{
+  apply_decomposition(dst, src);
+}
 
 
 
index 3b1de729f577e89df93b89552dfebcb0ab3a14bc..198697afb1f69aa7a4d814034de0351707d25b90 100644 (file)
@@ -139,6 +139,8 @@ void SparseILU<number>::decompose (const SparseMatrix<somenumber> &matrix,
                                       // and since it makes the backward
                                       // step when applying the decomposition
                                       // significantly faster
+      Assert((global_entry(rowstart_indices[row-1]) !=0), ExcDivideByZero());
+      
       global_entry (rowstart_indices[row-1])
        = 1./global_entry (rowstart_indices[row-1]);
 

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.