]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Assertions generate more meaningful messages in SolverBase solve()
authorToby D. Young <tyoung@ippt.pan.pl>
Wed, 24 Feb 2010 09:14:30 +0000 (09:14 +0000)
committerToby D. Young <tyoung@ippt.pan.pl>
Wed, 24 Feb 2010 09:14:30 +0000 (09:14 +0000)
git-svn-id: https://svn.dealii.org/trunk@20681 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/slepc_solver.h

index 95457f2f75d17e581f22a98018e78db3791d5593..ecba728777ca805c20a134fc1655d7a6e7dcfb7b 100644 (file)
@@ -270,11 +270,17 @@ namespace SLEPcWrappers
                                     * Exceptions.
                                     */
       DeclException0 (ExcSLEPcWrappersUsageError);
+
       DeclException1 (ExcSLEPcError,
                      int,
-                     << "An error with error number " << arg1
+                     << "    An error with error number " << arg1
                      << " occured while calling a SLEPc function");
 
+      DeclException2 (ExcSLEPcEigenvectorConvergenceMismatchError,
+                     int, int,
+                     << "    The number of converged eigenvectors is " << arg1
+                     << " but " << arg2 << " were requested. ");
+
     protected:
 
                                    /**
@@ -534,7 +540,8 @@ namespace SLEPcWrappers
 
       if (n_converged > n_eigenvectors)
        n_converged = n_eigenvectors;
-      AssertThrow (n_converged == n_eigenvectors, ExcSLEPcWrappersUsageError());
+      AssertThrow (n_converged == n_eigenvectors, 
+                  ExcSLEPcEigenvectorConvergenceMismatchError(n_converged, n_eigenvectors));
 
       AssertThrow (vr.size() >= 1, ExcSLEPcWrappersUsageError());
       vr.resize (n_converged, vr.front());
@@ -561,8 +568,10 @@ namespace SLEPcWrappers
       if (n_converged >= n_eigenvectors)
        n_converged = n_eigenvectors;
 
-      AssertThrow (n_converged == n_eigenvectors, ExcSLEPcWrappersUsageError());
+      AssertThrow (n_converged == n_eigenvectors, 
+                  ExcSLEPcEigenvectorConvergenceMismatchError(n_converged, n_eigenvectors));
       AssertThrow (vr.size() >= 1, ExcSLEPcWrappersUsageError());
+
       vr.resize (n_converged, vr.front());
       kr.resize (n_converged);
 

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.