]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
make sure, condition numbers are only computed if there are at least two eigenvalues
authorkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 20 Sep 2006 19:19:01 +0000 (19:19 +0000)
committerkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 20 Sep 2006 19:19:01 +0000 (19:19 +0000)
git-svn-id: https://svn.dealii.org/trunk@13935 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/solver_cg.h

index af363505821b26208333945baf70ca8b12fe95b0..9a759a85d51abd033074ac4ec885975482c33596 100644 (file)
@@ -397,7 +397,7 @@ SolverCG<VECTOR>::solve (const MATRIX         &A,
            offdiagonal.push_back(std::sqrt(beta)/alpha);
          }
 
-       if (additional_data.compute_all_condition_numbers)
+       if (additional_data.compute_all_condition_numbers && (diagonal.size()>1))
          {
            TridiagonalMatrix<double> T(diagonal.size(), true);
            for (unsigned int i=0;i<diagonal.size();++i)
@@ -432,7 +432,8 @@ SolverCG<VECTOR>::solve (const MATRIX         &A,
         }
       T.compute_eigenvalues();
       if (additional_data.compute_condition_number
-          & ! additional_data.compute_all_condition_numbers)
+          && ! additional_data.compute_all_condition_numbers
+         && (diagonal.size() > 1))
         deallog << "Condition number estimate: " <<
           T.eigenvalue(T.n()-1)/T.eigenvalue(0) << std::endl;
       if (additional_data.compute_eigenvalues)

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.